当前位置: 首页 > 后端技术 > Node.js

Casdoor+OAuth实现单点登录SSO

时间:2023-04-03 14:16:00 Node.js

介绍Casdoor是一个基于OAuth2.0/OIDC的集中式单点登录(SSO)认证平台。简单来说,Casdoor可以帮您解决用户管理问题。无需开发用户登录、注册等一系列与用户认证相关的功能。只需几步配置,配合您的主应用,即可完整托管您的用户模块,简单省心,功能强大。Casdoor是目前Casbin社区项目使用的统一认证平台,项目已经开源。仓库地址:https://github.com/casbin/cas...Demo地址:https://door.casbin.com/官网文档:https://casdoor.org/为什么要用Casdoor?用户管理一直是项目中非常头疼的问题,不仅要保证安全,功能是否齐全,使用方便也很重要。目前大部分应用已经从过去的单一账号密码登录升级为允许通过第三方平台登录,比如GitHub、微信、QQ等,但是这套逻辑还是需要开发者去实现,大多数功能都偏离业务。Casdoor为开发者解决了这个问题,即提供了一个统一的认证平台,可以完整托管用户模块,配置简单,功能齐全,配置简单,上手难度低。具有以下特点:前后端分离架构,前端使用react,后端使用Go语言开发,Casdoor支持高并发,提供基于web的用户管理UI,支持中文、英文等语言Casdoor支持Github、Google、QQ、WeChat、Facebook、Gitee等第三方应用登录,并支持使用插件扩展第三方登录使用基于授权管理的Casbin,Casdoor支持ACL、RBAC、ABAC、RESTful等访问控制模型个性化的注册、登录和忘记密码页面。支持手机验证码、邮箱验证码、找回密码等功能。使用阿里云、腾讯云、七牛云Casdoor提供的图片CDN云存储,支持使用db同步方式与现有系统集成,用户可以平滑过渡toCasdoorCasdoor支持主流数据库:MySQL、SQLServer、PostgreSQL等,以及支持扩展插件的新型数据库用户授权第三方网站/应用程序访问他们在特定网站上的信息,而无需向第三方网站/应用程序提供密码。整个流程如下图所示,分为六个步骤:向用户发送授权请求、获取授权证书、向授权服务器发送授权证书并验证、获取访问令牌、发送访问权限token到资源服务器,并获得受保护的资源。如何连接到Casdoor?Casdoor作为服务提供商(SP),支持两种认证协议:OAuth2.0(OIDC)和SAML;作为身份提供者(Idp),Casdoor也支持两种认证协议:OAuth2.0(OIDC)和CAS2.0。因此,您的应用程序将通过OAuth2.0(OIDC)与Casdoor连接。具体有以下三种方式:1、标准的OIDC客户端Casdoor完全实现了OIDC协议。如果你的应用程序已经在运行另一个OAuth2,(OIDC)身份提供者通常会通过标准的OIDC客户端库提供服务,如果你想迁移到Casdoor,使用OIDC发现将帮助你非常轻松地切换到Casdoor。Casdoor的OIDC发现URL是/.well-known/openid-configuration2。与标准的OIDC协议相比,CasdoorSDK在SDK中提供了更多的功能,如用户管理、资源上传等。通过CasdoorSDK连接Casdoor比使用OIDC标准客户端库成本更高,并且提供最大的灵活性和最大的强大的API。CasdoorSDK可以分为前端sdk和后端sdk两大类前端sdk源码地址JavaScriptsdkhttps://github.com/casdoor/ca...Vuesdkhttps://github.com/casdoor/ca...Androidsdkhttps://github.com/casdoor/ca...IOSsdkhttps://github.com/casdoor/ca...后端sdk源地址Gosdkhttps://github.com/casdoor/ca...Javasdkhttps://github.com/casdoor/ca...Node.jssdkhttps://github.com/casdoor/ca...Pythonsdkhttps://github.com/casdoor/ca...PHPsdkhttps://github.com/casdoor/ca....NETsdkhttps://github.com/casdoor/ca...前后端配置的详细方法请参考文档https://casdoor.org/zh/docs/h...3.Casdoor插件如果你的应用是建立在一个流行的平台上,并且Casdoor(或第三方)已经为它提供了一个插件或中间件,那么你可以直接使用它。它比手动使用CasdoorSDK更容易使用,因为前者是专门为平台制作的。Casdoor提供一些流行平台的插件或中间件,如Java的SpringBoot、PHP的WordPress、Python的Odoo等效果演示。Casnode是由Casbin社区开发的官方论坛。它使用Casdoor作为认证平台并管理成员。下面以Casnode登录为例,演示使用Casdoor的效果。https://forum.casbin.com/点击右上角的登录按钮,进入登录选择界面。您可以选择您信任或常用的平台进行授权。授权后,您将进入登录页面。以Google、微信、QQ、Gitee为例登录成功后,可以在设置中查看用户信息,也可以绑定其他平台的账号,方便下次登录。写在最后。我们希望Casdoor能够帮助开发者解决用户管理问题,更加专注于主业,提高开发效率。.同时,作为一个开源项目,我们也非常希望得到您的使用建议,以帮助我们更好地提升项目质量,更好地满足您在功能和易用性方面的需求。如果您在使用过程中有任何问题,欢迎加入社区QQ群交流(QQ群:645200447)。也非常欢迎Issues和PR!