权限管理系统-03-1-casdoor部署

系统架构

系统架构.png

单点登录(SSO)

  • 单点登录(SSO)平台是一种身份验证和授权机制,允许用户使用一组凭据(例如用户名和密码)登录到多个相关但独立的软件系统或应用程序中。在没有SSO的情况下,用户需要为每个系统单独进行身份验证,这既增加了用户的负担,也增加了管理成本。SSO通过在用户首次登录时颁发令牌或票据,并在随后的登录中重复使用该令牌或票据,来解决这一问题。

  • SSO平台的关键优势包括提高用户体验、简化管理流程、增强安全性和降低成本。用户只需记住一个集中的凭据,就可以访问多个系统,而管理员可以更轻松地管理用户的访问权限和凭据。此外,SSO平台还可以通过集中的身份验证和访问控制,提高安全性,并减少了因密码遗忘和重置而产生的支持成本。

主流sso系统

  • Keycloak
  1. Keycloak是一个开源的身份和访问管理解决方案,由Red Hat维护。,提供了单点登录(SSO)、身份验证、授权以及身份管理等功能。
  2. Keycloak支持多种身份验证方法,包括用户名/密码、社交媒体账号、OpenID Connect、SAML等。它还提供了灵活的访问控制策略,可以根据用户角色、用户组、客户端等进行细粒度的访问权限管理。
  3. 使用Keycloak,组织可以实现单点登录,使用户只需一次登录即可访问多个应用程序,提高用户体验和便利性。同时,Keycloak还提供了用户管理功能,允许管理员管理用户账号、角色和权限等。
  • Casdoor
  1. Casdoor是一个开源的身份认证和授权解决方案,可用于管理云原生环境中的用户身份和访问控制。它可以提供单点登录(SSO)、OAuth2、OpenID Connect等多种身份验证和授权方式,同时还支持RBAC(基于角色的访问控制)。
  2. Casdoor使用Go语言编写,具有轻量级、高性能和易于部署,配置的特点。

部署文档(官网手册)

  • 参考 https://casdoor.org/zh/docs/overview
数据库部署
docker run -d \
    --name mysql \
    -e TZ=Asia/Shanghai \
    -p 3306:3306 \
    -e MYSQL_ROOT_PASSWORD='kvB/y9VcMRA=' \
    -v /data/docker/mysql8/mysql:/var/lib/mysql \
    --restart=always \
    mysql

mysql -h127.0.0.1  -uroot -pkvB/y9VcMRA=
mysql> create database casdoor;

casdoor部署
  • 配置文件模板 https://github.com/casbin/casdoor/blob/master/conf/app.conf
cat /data/docker/casdoor/conf/app.conf
    appname = casdoor
    httpport = 8000
    runmode = dev
    copyrequestbody = true
    driverName = mysql
    dataSourceName = root:kvB/y9VcMRA=@tcp(172.17.0.2: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
    languages = en,zh,es,fr,de,ja,ko,ru,vi
    quota = {"organization": -1, "user": -1, "application": -1, "provider": -1}
docker run -d \
    --name=casdoor \
    --restart=always \
    -p 8000:8000 \
    -v /etc/localtime:/etc/localtime \
    -v /data/docker/casdoor/conf/:/conf \
    casbin/casdoor:v1.351.0
登录验证
27/11/2023   16:48.15   /home/mobaxterm  curl -X POST\
>     --url http://10.37.2.114:8000/api/login\
>     --header 'Content-Type: application/json'\
>     --data '{"application":"app-built-in","organization":"built-in","username":"admin","password":"123","autoSignin":true,"type":"login"}'
{
  "status": "ok",
  "msg": "",
  "sub": "",
  "name": "",
  "data": "built-in/admin",
  "data2": null
} 

为什么使用casdoor

权限管理系统最开始是没有准备做的,最开始是为了解决统一授权问题,在Keycloak和Casdoor中选择了后者,前者虽说是红帽维护的,但是配置较为复杂,casdoor配置相对简单,而且支持多种语言,手册写的也比较详细,最终选择了Casdoor。经过长时间的摸索,目前可以通过casdoor配置的企业微信扫码登录认证confluence,gitlab,jenkins,jumpserver,等一些二开的支持cas认证的系统。
正因为多系统都支持企微扫码,权限管理系统应运而生。主要是为了解决密码账号问题,解决nginx白名单问题,解决动态授权问题,解决客户端IP管理问题。

GZH

  • 欢迎关注同名GZH"小红帽rh",获取更多最新分享。
  • 41
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值