Casdoor + OAuth实现单点登录 SSO
Casdoor 是一个基于 OAuth 2.0 / OIDC 的中心化的单点登录(SSO)身份验证平台,简单来说,就是 Casdoor 可以帮你解决用户管理的难题,你无需开发用户登录、注册等与用户鉴权相关的一系列功能,只需几个步骤进行简单配置,与你的主应用配合,便可完全托管你的用户模块,简单省心,功能强大。Casdoor 目前作为 Casbin 社区项目统一使用的鉴权平台,并且项目已开源。
仓库地址:https://github.com/casbin/casdoor
演示地址:https://door.casbin.com/
官网文档:https://casdoor.org/
为什么要用 Casdoor?
用户管理一直是项目中非常令人头疼的一个问题,不仅要确保安全性,功能是否完整,方便使用也十分重要。目前大多数应用已从过去单一的账号密码登录,逐渐升级为允许通过第三方平台登录,例如 GitHub 、微信、QQ 等,但是这一套逻辑依然需要开发者去实现,大多数功能偏离了业务。
Casdoor 就是替开发者们解决这个难题,即提供一套统一的鉴权平台,只需要简单配置便可完全托管用户模块,功能完备,配置简单,上手难度低。它具有以下特性:
1. 前后端分离的架构,前端使用react,后端使用 Go 语言开发,Casdoor 支持高并发,提供基于Web的用户管理 UI,并支持中、英等多种语言
2. Casdoor 支持 Github, Google, QQ, WeChat, Facebook, Gitee 等第三方应用程序登录,并支持使用插件扩展第三方登录
3. 使用 Casbin 基于授权管理,Casdoor 支持 ACL, RBAC, ABAC, RESTful 等访问控制模型
4. 个性化的注册、登录和忘记密码页面。支持手机验证码、邮件验证码、找回密码等功能
5. 使用阿里云、腾讯云、七牛云提供的图片CDN云存储
6. Casdoor 支持使用 db 同步方法与现有系统的集成,用户可以顺利过渡到Casdoor
7. Casdoor 支持的主流数据库: MySQL, SQL Server, PostgreSQL 等, 并支持扩展插件的新数据库
工作原理
首先,Casdoor 的授权程序建立在 OAuth 2 的基础上:OAuth 2 是一个工业级别的开发授权协议,可以使用户授权第三方网站/应用访问他们在特定网站上的信息,而不必向第三方网站/应用提供密码。
整个过程如下图所示,一共分成六个步骤:向用户发送授权请求、获得授权认证、向授权服务器发送授权认证并验证、获取访问令牌、给资源服务器发送访问令牌、获得受保护的资源。
如何连接到Casdoor?
作为服务提供商(SP),Casdoor 支持两项认证协议:OAuth 2.0 (OIDC) 和 SAML;作为身份提供商 (Idp),Casdoor 也支持两个认证协议:OAuth 2.0 (OIDC) 和 CAS 2.0
因此,您的应用程序将通过 OAuth 2.0 (OIDC) 与 Casdoor 连接。具体而言,有三种方式:
1. 标准OIDC 客户端
Casdoor 完全实现了OIDC协议。如果您的应用程序已经运行了另一个 OAuth 2,那么 (OIDC) 身份提供商一般会通过标准的 OIDC 客户端库提供服务,如果您想要迁移到Casdoor, 使用 OIDC discovery会帮助您非常容易地切换到Casdoor。Casdoor's OIDC discovery URL 是
<your-casdoor-backend-host>/.well-known/openid-configuration
2. Casdoor SDK
与标准的 OIDC 协议相比,Casdoor 在 SDK 中提供了更多的功能,如用户管理、资源上传等。通过 Casdoor SDK 连接到 Casdoor 的成本比使用 OIDC 标准客户端库更高,并将提供灵活性最佳和最强大的 API。
Casdoor SDK可分为两类:前端sdk和后端sdk
前端sdk
源码地址
JS sdk
https://github.com/casdoor/casdoor-js-sdk
Vue sdk
https://github.com/casdoor/casdoor-vue-sdk
Android sdk
https://github.com/casdoor/casdoor-android-sdk
IOS sdk
https://github.com/casdoor/casdoor-ios-sdk
后端sdk
源码地址
GO sdk
https://github.com/casdoor/casdoor-go-sdk
Java sdk
https://github.com/casdoor/casdoor-java-sdk
Node.js sdk
https://github.com/casdoor/casdoor-nodejs-sdk
Python sdk
https://github.com/casdoor/casdoor-python-sdk
PHP sdk
https://github.com/casdoor/casdoor-php-sdk
Python sdk
https://github.com/casdoor/casdonet-sdk
前后端配置的详细方法请参考文档
https://casdoor.org/zh/docs/how-to-connect/sdk
3. Casdoor 插件:如果您的应用是建立在一个流行的平台上,并且Casdoor(或第三方) 已经为它提供了一个插件或中间件,那么就可以直接使用。它比手动使用 Casdoor SDK 更容易使用,因为前者是专门为平台制作的。
Casdoor为一些热门平台提供插件或中间件,例如Java的SpringBoot、PHP的WordPress、Python的Odoo等
效果演示
Casnode 是Casbin社区开发的官方论坛,它使用的就是 Casdoor 作为认证平台并管理成员。下面以 Casnode 的登录为例演示 Casdoor 的使用效果。
https://forum.casbin.com/
点击右上角的登录按钮
进入登录选择界面,可以选择一个你信任的或常用的平台进行授权
授权之后会进入登录页面,以 Google, Wechat, QQ, Gitee 为例
登录成功之后可以在设置里查看用户信息,并且可以绑定其他平台的账号,以便下次登陆
写在最后
我们希望 Casdoor 能帮助广大开发者们解决用户管理的难题,更专注主要业务,提高开发效率。同时作为一个开源项目,我们也非常希望获得大家的使用建议,帮助我们更好地改善项目质量,从功能、易用性等方面更好地满足大家的需求。
关注公众号:拾黑(shiheibook)了解更多
友情链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
安全、绿色软件下载就上极速下载站:https://www.yaorank.com/
- 《国宝》曝剧照 吉泽亮、横滨流星为歌舞伎献身!
- Steam禁止强制广告游戏 玩家:Steam上有这种游戏?
- 摩尔线程已完成股改:正筹备上市
- 《幻兽帕鲁》官宣在中国取得重大成功:人气远超其他国家
- 古尔曼:Apple Intelligence加持的全新苹果Siri有望明年 1 月到来
- 华为Pocket 2全系官降1000元!6499元起
- 理想L6提车9天电机故障!官方回应:不符合退换车规定
- 《地狱之刃2》现已正式发售!首发XGP免费玩
- 韩元汇率对人民币2023年8月9日
- 哪吒汽车6月交付12132台 哪吒GT拿下国内跑车销冠
- 王鹤棣泰国录制去了20多个站姐
- 别等体检结果出来了,才想起少盐少油少糖,OK?

随时掌握互联网精彩