使用 1panel 面板安装 Casdoor 身份认证单点登录平台
前言
Casdoor (https://casdoor.org/) 是一个开源的身份认证和授权系统,旨在为应用程序提供安全的用户身份验证和访问控制功能。它基于 OAuth 2.0 和 OpenID Connect 协议,并提供了多种身份验证方式和授权策略的支持。
Casdoor 具有以下主要功能和特点:
- 用户身份认证:Casdoor 支持多种身份认证方式,包括用户名密码、手机号码、电子邮件、第三方登录(如 GitHub、Google 等)等。
- 角色和权限管理:Casdoor 允许定义角色和权限策略,用于对用户进行授权和访问控制。可以基于角色和权限来限制用户对应用程序的操作和访问权限。
- 多租户支持:Casdoor 支持多租户架构,可以为不同的组织或应用程序提供独立的身份认证和授权服务。
- 可扩展性:Casdoor 提供了插件机制和丰富的 API,可以方便地扩展和定制身份认证和授权功能,以满足特定应用程序的需求。
- 安全性:Casdoor 实现了常见的安全措施,如密码哈希存储、防止 CSRF(跨站请求伪造)攻击、防止 XSS(跨站脚本)攻击等,以确保用户身份和数据的安全性。
Casdoor 的开源代码托管在 GitHub 上,您可以访问其官方网站或 GitHub 仓库获取更多详细信息、文档和示例。
– provided by ChatGPT
环境配置
1panel 版本:v1.5.3
Casdoor 使用 Docker 镜像:casbin/casdoor:latest
镜像版本:版本: v1.401.0
编写日期:2023-08-29
安装 Casdoor
由于 1panel 面板的特殊性,本次介绍的方法并非最优解,但是可以作为一种参考安装方式,如有更好的处理方法,欢迎留言指出。
一、创建数据库
在1panel面板,左侧的数据库,为casdoor创建一个数据库、用户名和密码
并且记下数据库的容器地址,例如 mysql:3306 这个
我们需要用到的资料:
- 容器连接地址 mysql:3306
- 数据库名称 casdoor
- 用户名 user001
- 密码 mysql_tnczBMTx
二、创建 Casdoor 配置文件
2-1、打开 SSH终端,创建一个目录,用来存放 Casdoor 的配置文件挂载到容器
以目录名casconf为例,位置在用户目录下:
进入用户home目录,并创建 casconf目录
cd home
mkdir casconf
2-2、创建数据库
2-3、在 casconf 目录下,创建 app.conf 这个文件,有关这个配置文件使用方法请查阅 https://casdoor.org/zh/docs/basic/server-installation/#via-ini-file
appname = casdoor
httpport = 8000
runmode = dev
copyrequestbody = true
driverName = mysql
dataSourceName = user001:mysql_tnczBMTx@tcp(mysql:3306)/
dbName = casdoor
tableNamePrefix =
showSql = false
redisEndpoint =
defaultStorageProvider =
isCloudIntranet = false
authState = "casdoor"
socks5Proxy = "127.0.0.1:10808"
verificationCodeTimeout = 10
initScore = 2000
logPostOnly = true
origin =
staticBaseUrl = "https://cdn.casbin.org"
isDemoMode = false
batchSize = 100
ldapServerPort = 389
quota = {"organization": -1, "user": -1, "application": -1, "provider": -1}
logConfig = {"filename": "logs/casdoor.log", "maxdays":99999, "perm":"0770"}
initDataFile = "./init_data.json"
需要修改的地方:
runmode 可以设置为 dev 开发模式或 prod 生产模式
driverName = mysql 我用的是mysql数据库
dataSourceName = user001:mysql_tnczBMTx@tcp(mysql:3306)/ 这里改为你的数据库容器名称和账号密码(参考步骤一、创建数据库)
dbName = casdoor 数据库名字
httpport = 8000 端口号,如果改了其他,在绑定域名时候请记得。
所以我的 app.conf 配置 完整路径是 /home/casconf/app.conf
三、部署 Casdoor
3-1、打开终端,部署镜像
docker run -p 8000:8000 -v /home/casconf:/conf casbin/casdoor:latest
注意这里的路径,在1panel,只需挂载 /home/casconf ,而不需要连同app.conf ,这里与Casdoor官网文档不一样。
因此你只需把 /home/casconf 改成你app.conf所在的目录即可。
等待镜像拉取完毕。
3-2、返回 1panel 面板,看看容器是否正常,如果正常,把容器改为一直重启、失败后重启,这样 Casdoor 容器可以自启动了
四、绑定域名
4-1、在 1panel 「创建网站」,选择「反向代理」
4-2、输入域名,并且把「代理地址」改为127.0.0.1:8000
4-3、给这个站点创建证书,并且绑定到这个域名。
五、完结
输入域名,默认账号是 admin 密码是 123 ,进入后自行更改。
有关 Casdoor 的设置,后续我可能再写个教程。