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

259849 次点击
所在节点    分享创造
360 条回复
IMengXin
2022-01-10 21:38:46 +08:00
@Casbin Page Not Found
Casbin
2022-01-11 00:18:07 +08:00
FakerLeung
2022-01-16 03:33:00 +08:00
一直想动手自己做一个,发现没这时间。
wongskay
2022-01-24 11:59:51 +08:00
准备打算用了
Casbin
2022-01-26 10:07:02 +08:00
@wongskay 感谢支持
mmrindextt
2022-01-26 10:43:28 +08:00
Ives
2022-01-27 13:29:00 +08:00
还阔以接入运营商一键登录
timpaik
2022-01-30 20:54:40 +08:00
很明显翻译还是缺乏校对、、
Casbin
2022-01-31 19:45:46 +08:00
duke807
2022-02-07 18:10:16 +08:00
對於網站來說,用第三方登錄風險還是挺大的,容易因為各種不可控因素導致用戶無法登錄,很多網站中過招

對於用戶來説,因為有很多第三方平台登錄,經常忘記自己之前是用哪個平台登陸的了

對於小網站,用無需登陸的方式更好,不用註冊,免密碼,用郵箱收認證碼,驗證一次 N 天免驗證,具體形式:
https://blog.d-l.io/about-zh
Casbin
2022-02-08 10:56:38 +08:00
@duke807 Casdoor 支持通过 Web 后台配置来关闭其他登录方式,只采用验证码登录(手机或邮箱或都有),所以你说的这种方式是支持的
wangxiaoaer
2022-02-08 11:16:12 +08:00
支持开发者自己进行定制然后增加新的第三方登录体系吗?
Casbin
2022-02-08 14:54:35 +08:00
@wangxiaoaer 支持,实现这个 IdProvider 接口即可: https://github.com/casdoor/casdoor/blob/bd38552db5ffef1ed209b23922018a3493b80c5f/idp/provider.go#L32-L36 实现好了欢迎给我们提 PR ,也可以你自己留着用
wangxiaoaer
2022-02-08 16:29:05 +08:00
@Casbin #93 上午看了下,貌似支持,但不是我以为的那种,笑哭。看来在实现了一个 provider 后还要改动 provider.go 这个工厂的代码以注册进去。可能是受 java 影响较多吧,我理想的插件机制是带有自动发现或者自动注册那种。不过这个项目是我一直在苦苦寻找的那种,之前找来找去好像 Keycloak 最接近,但是定制麻烦,casdoor 貌似简单很多。

对了,你们有没有做过调研对比,有没有其他实现 OIDC 的库推荐?
archxm
2022-02-10 09:31:10 +08:00
@duke807 这个想法挺好的。
Casbin
2022-02-11 18:31:06 +08:00
@wangxiaoaer 自动注册可能需要借助反射,代码稳定性和性能都受一定影响,所以其实必要性不大。我们应该是 Keycloak 比较好的替代品了
pagepan
2022-02-19 16:38:02 +08:00
已关注,不错,之前没有想到要找这样的项目,就自己一个个集成登录,以后更换上。
iiusky
2022-02-20 17:30:16 +08:00
这个能设置接入后网站的菜单权限吗?
Casbin
2022-02-21 12:04:49 +08:00
@pagepan 感谢支持
Casbin
2022-02-21 13:30:54 +08:00
@iiusky 可以的

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

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

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

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

© 2021 V2EX