Casdoor: 具有 Web UI 界面的开源身份认证、单点登录平台,支持 GitHub、Gitee、QQ、微信、钉钉登录等

2021-09-23 15:24:06 +08:00
 Casbin

UI 优先的统一身份认证系统 Casdoor

Casdoor 是什么?

Casdoor 是一个基于 OAuth 2.0 / OIDC 的 UI 优先集中认证 / 单点登录 (SSO) 平台,简单点说,就是 Casdoor 可以帮你解决 用户管理 的难题,你无需开发用户登录注册等与用户鉴权相关的一系列功能,只需几个步骤,简单配置,与你的主应用配合,便可完全托管你的用户模块,简单省心,功能强大。

仓库地址: https://github.com/casbin/casdoor

演示地址: https://door.casbin.com/

官网文档: https://casdoor.org/

Casdoor 目前作为 Casbin 社区项目统一使用的鉴权平台,项目已开源,希望得到大家的一些建议和 Star~,我们会及时跟进反馈并改正问题哒。

为什么要用 Casdoor ?

用户管理一直是项目中非常令人头疼的一个问题,不仅要确保安全性,功能是否完整,方便使用也十分重要。目前大多数应用已从过去单一的账号密码登录,逐渐升级为允许通过第三方平台登录,例如 GitHub 、微信、QQ 等。但是这一套逻辑依然需要开发者去实现,大多数功能偏离了业务。

Casdoor 就是替开发者们解决这个难题,即 提供一套统一的鉴权平台,只需要简单配置便可完全托管用户模块

使用的理由也非常简单,总结概括为三句话:

  • 功能完备,操作简单。作为一个需要完全托管用户模块的项目,功能完备必不可少,Casdoor 支持常见用户模块所需要的各种功能。并且配置简单,上手难度低。
  • 开源可控,社区活跃。能否快速得到社区的反馈,解决实际应用中出现的问题也十分重要,否则出了 Bug 没人管岂不是尴尬? Casdoor 有自己的讨论社区 Casnode,也有 QQ 群,均可及时活跃地解决实际应用中的问题。
  • 性能强大,耦合良好。采用 Golang 开发,并发性支持良好,并且内部模块耦合度低,代码易懂,热插拔性好。

Casdoor 又有哪些特性?

  • 支持普通的账户密码注册登录,也支持各种常见的第三方认证,例如 GitHub 、Facebook 、Google 、Wechat 、QQ 、LinkedIn 等等,截止目前共 9 个平台,并在不断听取用户建议对更多的平台提供支持。
  • 管理方便。Casdoor 内部将模块分为了 5 大类,Organization 、User 、Application 、Token 和 Provider 。可以同时接入多个组织,组织下有不同应用,用户可以通过应用或组织分类,单独管理任何组织、应用或用户的 Token 令牌,轻松管理复杂系统,目前已部署在 Casbin 社区各种系统当作鉴权平台。
  • 自定义程度高。Casdoor 可以随意修改登录方式,例如是否允许密码或第三方登录,自定义应用的注册项数量,是否启用两步验证,以及是否允许各个 Provider 登录、注册等等,高度可插拔。
  • 具备 Swagger API 文档。清晰的 API 介绍,无需阅读源代码即可直接方便调用各个 API 接口,提供定制化功能。
  • 前后端分离架构,部署简单。作为统一认证平台,除了性能,稳定性,新特性之外,易用性也是考量的重要标准,Casdoor 后端使用 Golang 语言开发,前端使用 React.js 框架,使用者只需启动后端服务,并将前端工程文件打包,即可直接使用,操作简单,上手难度低。
  • ...

总结

我们希望 Casdoor 能帮助广大开发者们解决用户管理的难题,更专注主要业务,提高开发效率。

同时作为一个开源项目,我们也非常希望获得大家的使用建议,帮助我们更好地改善项目质量,从功能、易用性等方面更好地满足大家的需求。

如果使用过程中有任何疑问,欢迎加入社区 QQ 群交流,提 Issues 。当然,提 PR 也是十分欢迎的!

  • QQ 群:645200447

259998 次点击
所在节点    分享创造
360 条回复
Hawy
2022-03-17 09:47:40 +08:00
@Casbin 还有一个问题是对无法访问外网的 Air-gapped 环境部署不太友好,docker 镜像里面很多静态资源都在 cdn.casbin.com
samondlee
2022-03-17 10:39:34 +08:00
已经推荐给 gametools.network 社区使用
star7th
2022-03-17 14:40:08 +08:00
关于 docker 部署生产环境,建议把数据库配置信息做成环境变量。这样的话,我只需要跑一个 docker 容器,然后设置数据库链接环境变量即可访问,而不需要改配置文件。
star7th
2022-03-17 15:52:54 +08:00
已经通过 configmap 解决。其实感觉还是环境变量会更方便一点。毕竟要改的配置不多,做成单项环境变量也挺好。
Yoehson
2022-03-21 09:22:24 +08:00
售价如何?
Casbin
2022-03-21 09:54:06 +08:00
@Hawy #120 可以加群了解~

@Hawy #121 可以在 github 提个英文 issue 吗?

@samondlee #122 感谢推荐,有链接么?

@star7th #123 现在已经支持环境变量来修改配置信息: https://casdoor.org/docs/basic/server-installation#via-environment-variables

@Yoehson #125 可以加群了解~
willgogogo
2022-03-21 09:55:35 +08:00
基于 CAS 做的?
Casbin
2022-03-22 14:43:30 +08:00
@willgogogo #127 只是名字有点像哈,与 CAS 代码层面没有任何关系,但是支持 CAS 认证协议
samondlee
2022-03-25 10:39:47 +08:00
@Casbin 一个用于替代 bfban.com 的举报系统,不过还没做完 https://bfreport.com/
dalongs
2022-03-29 01:09:40 +08:00
学习学习
RangerWolf
2022-04-02 15:03:37 +08:00
不知道大佬有什么商业化的打算吗?还是暂时不着急,等以后再说?
Casbin
2022-04-02 18:59:13 +08:00
@RangerWolf #131 我们有企业版,可以加群咨询
axina
2022-04-05 17:29:55 +08:00
请问下支持 flutter 吗
zhouchijian
2022-04-11 16:00:47 +08:00
redisEndpoint 要怎么配置才行?

redis://:password@127.0.0.1:6379

:password@127.0.0.1:6379

全都报错

panic: dial tcp: address redis://:password@127.0.0.1:6379: too many colons in address
zhouchijian
2022-04-11 16:15:24 +08:00
@zhouchijian 翻了下文档没查到怎么配置 redis 。全局搜了 README 也没查到。。。
Casbin
2022-04-11 16:39:11 +08:00
@zhouchijian Redis session 是由 Beego 提供的功能,格式也是 Beego 的格式,可查看 Beego 文档: https://beego.vip/docs/module/session.md#saving-provider-config 。例子格式是:127.0.0.1:6379,100,astaxie
cfu18
2022-04-14 11:14:47 +08:00
@Casbin 试用了一下,casdoor 没有 session 管理吗?看文档,sdk 里用的 Beego 的功能,是每一个应用的服务自己去管理 session ?
masterclock
2022-04-15 21:52:48 +08:00
试用了一下
1. 默认的用户密码是明文保存的
2. 自带的 UI 默认的密码保存方式也是明文
明文有什么意义呢?
3. 密码 hash 方式可以修改,但似乎没法改 hash 时的参数
3. 改了 hash 方式后,原有用户的密码就失效了
4. 自带的 UI 无法登录非 built-in orgnization 的用户吗?

总的来说,比较担心,不太敢上船
Casbin
2022-04-21 09:27:23 +08:00
@masterclock

1, 2. 自带的演示站只是演示一个例子,自己部署的时候可以第一时间修改为其他密码保存算法的。默认 Plain 的原因是,方便回头修改为其他方式,如果比如已经用了 bcrypt ,再改成别的 md5-salt 就没有机会了,因为已有的密码不可逆为明文再用另一种形式加密
3. 在组织编辑页面( https://door.casdoor.com/organizations/casbin )有一项“密码 Salt 值”可以作为参数修改
4. 那肯定失效了呀,见 2 ,已有密码不可逆为明文
5. 不同组织的登录地址不同,见文档: https://casdoor.org/zh/docs/basic/core-concepts#application
hoythan
2022-04-25 10:44:44 +08:00
好家伙半年了还能置顶

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/803669

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX