首页 > 其他分享 >AgileConfig-1.7.0 发布,支持 SSO

AgileConfig-1.7.0 发布,支持 SSO

时间:2023-08-27 23:34:13浏览次数:51  
标签:1.7 secret SSO token client https AgileConfig OIDC

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

如何使用

  1. 升级 AgileConfig 到最新版本或者 tag:1.7.0 以上
  2. 在配置文件或者环境变量中配置 SSO 相关信息

以下对配置的参数进行详细说明:

参数说明

参数 说明 示例
SSO:enabled 是否开启 sso true
SSO:loginButtonText 自定义 SSO 跳转按钮的文字 Azure SSO
SSO:OIDC:clientId OIDC 客户端 ID 2bb823b7-f1ad-48c7-a9a1-713e9a885a5d
SSO:OIDC:clientSecret OIDC 客户端 密钥 6B29FC40-CA47-1067-B31D-00DD010662DA
SSO:OIDC:redirectUri OIDC Server 授权成功后的回调地址, 默认为服务部署域名(或者ip+port)+ /sso http://localhost:5000/sso
SSO:OIDC:tokenEndpoint code 获取 token 的地址,这个地址一般在 OIDC 服务商那里会明确告知 https://login.microsoftonline.com/7aa25791-9a8c-4be4-872f-289bfec8cddb/oauth2/v2.0/token
SSO:OIDC:tokenEndpointAuthMethod 获取 token 接口的认证方案,目前支持:client_secret_post, client_secret_basic, none 三种方案,默认为:client_secret_post client_secret_post
SSO:OIDC:authorizationEndpoint OIDC Server 授权地址,通常是 OIDC 服务商会明确告知。本地服务会加上 response_type,redirect_uri 等参数,构造出完整的授权 URL https://login.microsoftonline.com/7aa25791-9a8c-4be4-872f-289bfec8cddb/oauth2/v2.0/authorize
SSO:OIDC:userIdClaim ID token 中用户 ID 的 claim key,默认为 sub sub
SSO:OIDC:userNameClaim ID token 中用户 name 的 claim key,默认为 name name
SSO:OIDC:scope token 携带的 claim 的范围,默认 openid profile openid profile

如果使用源码运行请对 appsettings.json 进行修改,示例如下:

  "SSO": {
    "enabled": true, 
    "loginButtonText": "SSO",
    "OIDC": {
      "clientId": "2bb823b7-f1ad-48c7-a9a1-713e9a885a5d",
      "clientSecret": "", 
      "redirectUri": "http://localhost:5000/sso", 
      "tokenEndpoint": "https://login.microsoftonline.com/7aa25791-9a8c-4be4-872f-289bfec8cddb/oauth2/v2.0/token",
      "tokenEndpointAuthMethod": "client_secret_post", client_secret_post, client_secret_basic, none. default=client_secret_post.
      "authorizationEndpoint": "https://login.microsoftonline.com/7aa25791-9a8c-4be4-872f-289bfec8cddb/oauth2/v2.0/authorize", 
      "userIdClaim": "sub", 
      "userNameClaim": "name", 
      "scope": "openid profile" 
    }
  }

如果使用 docker compose 运行请使用环境变量修改配置:


  agile_config:
    image: "kklldog/agile_config:latest"
    ports:
      - "15000:5000"
    networks:
      - net0
    volumes:
      - /etc/localtime:/etc/localtime
    environment:
      - TZ=Asia/Shanghai
      - adminConsole=true
      - db:provider=mysql
      - db:conn= Allow User Variables=true;database=agile_config_preview;data source=mysql8;User Id=root;password=1;

      - SSO:enabled=true
      - SSO:loginButtonText=Azure SSO
      - SSO:OIDC:clientId=2bb823b7-f1ad-48c7-a9a1-713e9a885a5d
      - SSO:OIDC:clientSecret=1
      - SSO:OIDC:redirectUri=https://agileconfig-server.xbaby.xyz/sso
      - SSO:OIDC:tokenEndpoint=https://login.microsoftonline.com/7aa25791-9a8c-4be4-872f-289bfec8cddb/oauth2/v2.0/token
      - 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

关注我的公众号一起玩转技术

标签:1.7,secret,SSO,token,client,https,AgileConfig,OIDC
From: https://www.cnblogs.com/kklldog/p/agileconfig-170.html

相关文章

  • Struts2标签错误:using Struts tags without the associat解决
    <filter-mapping><filter-name>struts2</filter-name><url-pattern>*.jsp</url-pattern></filter-mapping> struts,在使用标签的时候,出现了这样一个问题。    原本使用标签,引用方法是默认配置:    web.xml:<filter><filter-name&......
  • CrossOver 23 功能抢先看 CrossOver 23 版本更新了哪些功能
    本次发布的CrossOver23为用户带来了许多令人期待的新功能和优化,特别是对游戏方面的支持,更是让广大Mac游戏玩家兴奋。CrossOver23包括对Wine8.0.1的更新,带来了5000多处改动,对各种应用程序进行了改进。该版本还包括WineMono7.4.0、vkd3d1.8、DXVK1.10.3和MoltenVK1.2.3的......
  • jetty报错: Open quote is expected for attribute "{1}" associated with an element
    这个错误是使用jetty作为容器,但是java代码中,servlet是使用注解的形式标记一个类为servlet的,可能是版本不兼容吧,会报这个莫名其妙的错,解决方法是将这个servlet类配置到web.xml文件中,不要用注解的形式。......
  • Spring BeanPostProcessor : MethodValidationPostProcessor
    概述MethodValidationPostProcessor处理bean中的JSR-303方法验证注解。比如某个bean方法使用了JSR-303注解如下:public@NotNullObjectmyValidMethod(@NotNullStringarg1,@Max(10)intarg2)当该bean的类上再使用了Spring的注解@Validated时,上面的这些方法就会是MethodValida......
  • 源支付5.1.7前端+后台+云端协议2.0打造更专业的聚合免签支付系统
    下载资料自取:  提取码:2jmv推荐系统为:CentOS7.6Linux系统环境:Nginx1.20.1+MySQL5.6.50+PHP-7.2+Redis将商户后台源码上传运行目录为Public伪静态为thinkphp访问域名傻瓜模式安装sudorpm-Uvhhttps://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm......
  • 源支付5.1.7前端+后台+云端协议2.0打造更专业的聚合免签支付系统
    推荐系统为:CentOS7.6Linux系统环境:Nginx1.20.1+MySQL5.6.50+PHP-7.2+Redis将商户后台源码上传运行目录为Public伪静态为thinkphp访问域名傻瓜模式安装sudorpm-Uvhhttps://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm完成后输入:sudoyuminstalld......
  • 什么是 SAP CDS view 中的 Exposed Association with filter 技术
    在SAPS/4HANA中,CDS(CoreDataServices)是一种强大的数据建模和查询语言,而“ExposedAssociationwithfilter”是其功能之一。下图是一个具体的例子。这里我们使用_bookings[class='C']的语法来给association指定一个过滤条件,然后暴露成_business_flights给外部消费者......
  • 模拟集成电路设计系列博客——1.1.7 带有输出阻抗增强的宽摆幅电流镜
    1.1.7带有输出阻抗增强的宽摆幅电流镜下图的结构在[Gatti,1990],[Coban,1994;Martin,1994]中被提出和使用,与[Säckinger,1990]的输出阻抗电流镜结构很像,除了一个二极管接法的晶体管被加在共源级增强放大器前作为电压转换器。在输出光,电平转换器是通过\(I_{bias}\)偏置的二......
  • 深入探讨安全验证:OAuth2.0、Cookie与Session、JWT令牌、SSO与开放授权平台设计
    什么是认证和授权?如何设计一个权限认证框架?认证和授权是安全验证中的两个重要概念。认证是确认身份的过程,用于建立双方之间的信任关系。只有在认证成功的情况下,双方才可以进行后续的授权操作。授权则是在认证的基础上,确定用户或系统对资源的访问权限。在设计一个权限认证框架时,......
  • R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化
    全文链接:https://tecdat.cn/?p=33462原文出处:拓端数据部落公众号本文将关注R语言中的LASSO(LeastAbsoluteShrinkageandSelectionOperator)惩罚稀疏加法模型(SparseAdditiveModel,简称SPAM)。SPAM是一种用于拟合非线性数据的强大工具,它可以通过估计非线性函数的加法组件来捕捉......