翼度科技»论坛 编程开发 .net 查看内容

AgileConfig-1.7.0 发布,支持 SSO

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
AgileConfig 已经好久好久没有更新过比较大的功能了。一是 AgileConfig 本身的定位就是比较轻量,不想集成太多的功能。二是比较忙(懒)。但是本次升级给大家带来了一个比较有用的功能 SSO。

SSO 嘛大家都懂,单点登录,稍微上点规模的公司内部都会有统一的单点登录服务。
目前 SSO 主流协议基本上就是两种:

  • OIDC(OAuth2.0) - OpenID Connect
  • SAML 2.0 - Security Assertion Markup Language
本次 SSO 的实现采用了基于 OIDC 协议的 Code Flow 模式来实现,可以说这是目前市面上最流行的集成方案。
由于这次不是讨论 OIDC 的具体实现,关于 OIDC 相关的知识就不多说了。

图片出处:https://docs.walt.id/v/idpkit/concepts/oidc-recap
如何使用


  • 升级 AgileConfig 到最新版本或者 tag:1.7.0 以上
  • 在配置文件或者环境变量中配置 SSO 相关信息
以下对配置的参数进行详细说明:
参数说明

参数说明示例SSO:enabled是否开启 ssotrueSSO:loginButtonText自定义 SSO 跳转按钮的文字Azure SSOSSO:OIDC:clientIdOIDC 客户端 ID2bb823b7-f1ad-48c7-a9a1-713e9a885a5dSSO:OIDC:clientSecretOIDC 客户端 密钥6B29FC40-CA47-1067-B31D-00DD010662DASSO:OIDC:redirectUriOIDC Server 授权成功后的回调地址, 默认为服务部署域名(或者ip+port)+ /ssohttp://localhost:5000/ssoSSO:OIDC:tokenEndpointcode 获取 token 的地址,这个地址一般在 OIDC 服务商那里会明确告知https://login.microsoftonline.com/7aa25791-9a8c-4be4-872f-289bfec8cddb/oauth2/v2.0/tokenSSO:OIDC:tokenEndpointAuthMethod获取 token 接口的认证方案,目前支持:client_secret_post, client_secret_basic, none 三种方案,默认为:client_secret_postclient_secret_postSSO:OIDC:authorizationEndpointOIDC Server 授权地址,通常是 OIDC 服务商会明确告知。本地服务会加上 response_type,redirect_uri 等参数,构造出完整的授权 URLhttps://login.microsoftonline.com/7aa25791-9a8c-4be4-872f-289bfec8cddb/oauth2/v2.0/authorizeSSO:OIDC:userIdClaimID token 中用户 ID 的 claim key,默认为 subsubSSO:OIDC:userNameClaimID token 中用户 name 的 claim key,默认为 namenameSSO:OIDC:scopetoken 携带的 claim 的范围,默认 openid profileopenid profile如果使用源码运行请对 appsettings.json 进行修改,示例如下:
  1.   "SSO": {
  2.     "enabled": true,
  3.     "loginButtonText": "SSO",
  4.     "OIDC": {
  5.       "clientId": "2bb823b7-f1ad-48c7-a9a1-713e9a885a5d",
  6.       "clientSecret": "",
  7.       "redirectUri": "http://localhost:5000/sso",
  8.       "tokenEndpoint": "https://login.microsoftonline.com/7aa25791-9a8c-4be4-872f-289bfec8cddb/oauth2/v2.0/token",
  9.       "tokenEndpointAuthMethod": "client_secret_post", client_secret_post, client_secret_basic, none. default=client_secret_post.
  10.       "authorizationEndpoint": "https://login.microsoftonline.com/7aa25791-9a8c-4be4-872f-289bfec8cddb/oauth2/v2.0/authorize",
  11.       "userIdClaim": "sub",
  12.       "userNameClaim": "name",
  13.       "scope": "openid profile"
  14.     }
  15.   }
复制代码
如果使用 docker compose 运行请使用环境变量修改配置:
  1.   agile_config:
  2.     image: "kklldog/agile_config:latest"
  3.     ports:
  4.       - "15000:5000"
  5.     networks:
  6.       - net0
  7.     volumes:
  8.       - /etc/localtime:/etc/localtime
  9.     environment:
  10.       - TZ=Asia/Shanghai
  11.       - adminConsole=true
  12.       - db:provider=mysql
  13.       - db:conn= Allow User Variables=true;database=agile_config_preview;data source=mysql8;User Id=root;password=1;
  14.       - SSO:enabled=true
  15.       - SSO:loginButtonText=Azure SSO
  16.       - SSO:OIDC:clientId=2bb823b7-f1ad-48c7-a9a1-713e9a885a5d
  17.       - SSO:OIDC:clientSecret=1
  18.       - SSO:OIDC:redirectUri=https://agileconfig-server.xbaby.xyz/sso
  19.       - SSO:OIDC:tokenEndpoint=https://login.microsoftonline.com/7aa25791-9a8c-4be4-872f-289bfec8cddb/oauth2/v2.0/token
  20.       - SSO:OIDC:authorizationEndpoint=https://login.microsoftonline.com/7aa25791-9a8c-4be4-872f-289bfec8cddb/oauth2/v2.0/authorize
复制代码
数据库表更新

本次发布对 agc_user 表进行了修改,如是从低版本升级上来的请手动调整数据库:

  • id 长度增加到 50
  • 新增一个字段source ,mysql的类型为 enum(Normal, SSO),sql server 的类型为 int
后续

目前 SSO、OIDC 的相关配置通过配置文件或者环境变量来配置略显麻烦,后面如有时间会新增相关界面来进行配置,敬请期待。如果同学你有时间,那么可以给我 PR ,让我们一起为 .NET 的生态尽一份力。
最后

✨✨✨ Github地址:https://github.com/dotnetcore/AgileConfig  开源不易,欢迎 star ✨✨✨
演示地址:http://agileconfig-server.xbaby.xyz/  超管账号:admin 密码:123456
关注我的公众号一起玩转技术



来源:https://www.cnblogs.com/kklldog/archive/2023/08/27/agileconfig-170.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具