OIDC

  1. 创建配置文件

    {数据目录,默认/data/mingdao}/script/volume/sso/sso.json,内容如下:

    {
      "mode": "common-oidc",
      "name": "oidc",
      "oidc": { 
        "oidcDomain": "oidc 域名",                         // 如:http://localhost:6060
        "oidcUrl": "oidc 服务器地址",        
        "clientId": "应用Id",                              // 分发给应用的客户端Id
        "clientSecret": "应用密钥",                        // 分发给应用的客户端密钥   
        "redirectUrl": "明道云系统地址/oidc-redirect",      // 回调地址
        "authorizePath": "/auth",                          // authorize 访问地址,实际对应 oidcDomain + authorizePath (例:http://localhost:6060/auth)
        "tokenPath": "/token",                             // 获取token地址,实际对应 oidcDomain + tokenPath(例:http://localhost:6060/token)
        "userInfoUrl": "/me",                              // 获得用户信息接口,实际对应 oidcDomain + userInfoUrl,请求时需要携带access_token (例:http://localhost:6060/me?access_token=B0vjI9UKBsOzbgCeGYH-XyHqSedcI9ssA4UUt_TKPTl)
        "responseTypes": "code",
        "params": {
          "UserId": "sub",                                 // 用户唯一标识
          "Name": "name",                                  // 用户的姓名(仅 autoRegister 为 false 时可空)
          "Email": "email",                                // Email、Mobile 不能同时为空 (仅 autoRegister 为 false 时均可空)
          "Mobile": "phone_number"
        },
        "autoRegister": true,                              // 当账号不存在时,是否自动创建账号
        "projectId": "明道云组织编号"                       // 从 组织管理 > 组织信息 页面获取
      }
    }
    

    当 autoRegister 设置为 false 时,创建 {数据目录,默认/data/mingdao}/script/volume/sso/extend.json,内容如下:

    {
      "relation": true
    }
    

    获取访问令牌的接口需要满足以下要求:

    1. 支持 POST 方式调用(请求参数通过 URL 传递)

    2. 需要先获得服务端 authorizePath 授权

    3. 返回值为 JSON 格式,且需满足如下格式:

      {
        "access_token": "SlAV32hkKG",
        "token_type": "Bearer",
        "refresh_token": "8xLOxBtZp8",
        "expires_in": 3600,
        "id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjFlOWdkazcifQ..."
      }
      

    获取用户信息的接口需要满足以下要求:

    1. 支持 GET 方式调用(参考 userInfoUrl 参数说明)

    2. 需要先获得服务端 authorizePath 授权

    3. 返回值为 JSON 格式,且需满足如下格式:

      {
        "sub": "248289761001",
        "name": "Jane Doe",
        "email": "janedoe@example.com",
        "phone_number": "123"
      }
      

      如以上返回值,则 params 的配置为:

      "params": {
        "UserId": "sub",
        "Name": "name",
        "Email": "email",
        "Mobile": "phone_number"
      }
      
  2. 挂载配置文件

    修改微服务应用对应的 docker-compose.yaml,在 volumes 中增加文件挂载并重启微服务应用。

    - ./volume/sso/sso.json:/usr/local/MDPrivateDeployment/sso/OptionFile/sso.json
    - ./volume/sso/extend.json:/usr/local/MDPrivateDeployment/sso/extend.json  # 仅 autoRegister 为 false 时需要添加此行
    
  3. 最后可通过 明道云系统访问地址/orgsso/oidc?returnUrl={登录成功跳转地址,可空} 来进行单点登录

results matching ""

    No results matching ""