文章目录[隐藏]
前言
一直对单点登录相关的挺感兴趣,想着搭建一个玩玩。看见学校用的是CAS,搜来发现部署很麻烦(我菜)就被吓跑了,昨天在看Alist后台的时候发现了Casdoor这个项目,感觉很好搭建也很满足我的好奇心,就搭建实操了一下,并且接入了Alist和WordPress。
官方介绍
Casdoor是一个基于OAuth 2.0、OIDC、SAML 和 CAS 的,UI-first的身份和访问管理(IAM)/单点登录(SSO)平台。
Doker部署CASdoor
官方可以直接运行编译好的二进制文件,但是为了方便我还是用了Doker,我的环境是Linux+宝塔面板,在面板的Doker管理里面先下载镜像casbin/casdoor:latest
下载好了之后,先写配置文件,配置文件模板在https://github.com/casdoor/casdoor/blob/master/conf/app.conf
我新建了/data/doker_data/casdoor/app.conf
作为配置文件,按照上面模板配置好之后保存即可。
之后配置Doker,按我这样写就行,我是用Nginx反代1031端口到域名的,所以从容器里的8000端口桥接到1031端口
添加好之后做一下反代,新建一个网站,开启ssl(可有可无),反代配置如图
这时候你访问刚刚添加的域名,不出意外的话,就能看到Casdoor的登录界面了。
这是官方的文档,可以了解一些概念https://casdoor.org/zh/docs/basic/core-concepts
默认的用户名密码是admin/123
,登录进去之后,分别新建一下组织,证书,应用,用户。
Alist对接Casdoor
Alist官方教程,写的很详细很具体https://alist.nn.ci/zh/guide/advanced/sso.html#single-sign-on-client-secrets
搭建对接完成之后,先正常登录Alist后台,之后点绑定单点登录平台,在弹出的窗口里输入你新建的用户,就绑定成功了。之后在Alist登录的右下角就多了个图标,点开就能单点登录了。
建议在Casdoor的应用界面把保持登录会话
和启用自动登录
给打开,这样体验会好很多,登录过就不用再登录了。
WordPress对接Casdoor
先在Casdoor里面新建一个应用,然后下载Casdoor的WordPress插件https://github.com/casdoor/wordpress-casdoor-plugin,下载后解压到/wp-content/plugins
目录里,你就能在后台看到WordPress Casdoor Plugin
插件了,启用它,在设置-Casdoor SSO
里配置一下,如下表
Activate Casdoor | 是否启用Casdoor接管Wordpress登录 |
Client ID | Casdoor应用里面的Client ID |
Client Secret | Casdoor应用里面的Client Secret |
Backend URL | 你部署Casdoor的域名 |
Organization | Casdoor这个应用对应的组织 |
Redirect to the dashboard after signing in | 登录后是否重定向到仪表板 |
Restrict flow to log in only | 勾选后在WordPress中没有账户的人将无法登录 |
Auto SSO for users that are not logged in | 勾选后用户将被重定向到登录页面,即使访问的页面不需要登录 |
配置好后点击保存就ok了,记得先在对应的组织下创建一个用户,把电子邮箱写成你的,不然你自己都登录不上去了(
最后配一张登录界面的图