教程 3:企业账号登录 EnOS 管理控制台 - OIDC

使用 SSO Server 内置的 Eniot 客户端,使用 ID broker 功能登录企业账号所在的远端认证源(比如 AAD,ADFS,GITLAB,KC)。

本篇文章以 Azure Active Directory 遵守 OIDC 协议通过SSO Server登录为例:

前提条件

步骤

步骤一:在 Azure Active Directory (AAD) 上为 SSO Server 配置客户端

  1. 登录 Azure portal,打开 Azure Active Directory 服务。

    ../_images/login_azure_portal.png
  2. 选择 应用注册,点击 新注册

    ../_images/new_register.png
  3. 输入注册的基本信息:

    ../_images/register_21.png
  4. 复制 应用程序(客户端)ID,存储到本地记事本用以备用。

    ../_images/client_id1.png
  5. 打开 证书和密码,点击 新客户端密码

    • 说明:aad-idp-for-sso-server

    • 截止期限:从不

    ../_images/client_password1.png
  6. 复制密码,存储到本地记事本用以备用。

    ../_images/client_password_21.png
  7. 打开 终结点,复制 OpenID Connect 元数据文档,并用浏览器打开,复制issuer,存储到本地记事本用以备用。

    ../_images/endpoint1.png
    {"token_endpoint":"https://login.microsoftonline.com/2151c7d1-a2f9-4fdb-9325-4d1ad1633565/oauth2/v2.0/token","token_endpoint_auth_methods_supported":["client_secret_post","private_key_jwt","client_secret_basic"],"jwks_uri":"https://login.microsoftonline.com/2151c7d1-a2f9-4fdb-9325-4d1ad1633565/discovery/v2.0/keys","response_modes_supported":["query","fragment","form_post"],"subject_types_supported":["pairwise"],"id_token_signing_alg_values_supported":["RS256"],"response_types_supported":["code","id_token","code id_token","id_token token"],"scopes_supported":["openid","profile","email","offline_access"],"issuer":"https://login.microsoftonline.com/2151c7d1-a2f9-4fdb-9325-4d1ad1633565/v2.0","request_uri_parameter_supported":false,"userinfo_endpoint":"https://graph.microsoft.com/oidc/userinfo","authorization_endpoint":"https://login.microsoftonline.com/2151c7d1-a2f9-4fdb-9325-4d1ad1633565/oauth2/v2.0/authorize","device_authorization_endpoint":"https://login.microsoftonline.com/2151c7d1-a2f9-4fdb-9325-4d1ad1633565/oauth2/v2.0/devicecode","http_logout_supported":true,"frontchannel_logout_supported":true,"end_session_endpoint":"https://login.microsoftonline.com/2151c7d1-a2f9-4fdb-9325-4d1ad1633565/oauth2/v2.0/logout","claims_supported":["sub","iss","cloud_instance_name","cloud_instance_host_name","cloud_graph_host_name","msgraph_host","aud","exp","iat","auth_time","acr","nonce","preferred_username","name","tid","ver","at_hash","c_hash","email"],"tenant_region_scope":"AS","cloud_instance_name":"microsoftonline.com","cloud_graph_host_name":"graph.windows.net","msgraph_host":"graph.microsoft.com","rbac_url":"https://pas.windows.net"}
    

步骤二:在SSO Server上注册远端认证源(以AAD为例)

  1. 在 EnOS 管理控制台中选择 单点登录 > 认证源

  2. 点击 新建认证源,填写如下信息:

    • 基本信息:

      • 名称:aad-idp

      • 类型:OIDC

      • 启用:不启用

    • OIDC配置

      • 认证地址

      • Token 地址

      • User Info 地址

      • User Info 认证方式:header

      • Issuer 地址https://login.microsoftonline.com/2151c7d1-a2f9-4fdb-9325-4d1ad1633565/v2.0 即步骤一中获取到的的 Issuer 地址。

      • jwkSet地址

      • IdP 默认 Logout URL

      • 客户端 ID:551e8f62-650e-47ef-b20a-73bc8bb51b62 即步骤一中获取到的的客户端ID

      • 客户端密钥:9d48b8cc-4259-4fc6-879d-0e7c7c74685e 即步骤一种获取客户端密钥

      • Client 认证方式:basic

      • 重定向地址:即步骤一中第3步配置的重定向URL: https://sso登录环境域名/ssoserver/sso/login/oauth2/code/aad-idp

      • Scope:选择 emailprofile

    • 属性映射:

      • user name:name

      • given name:name

      • family name:name

      • email:email

      • phone

      • nike name

  3. 点击 保存 ,新建认证源完成。

在远端认证源上为SSO Server配置客户端注意事项

如需配置其他企业账号,需注意:

  • OIDC 协议一般只用配 Issuer Url,其它项(Authorization URI,Token URI,User Info URI,jwkSet URI)都不用填(会从issuer metadata中自动提取)。

  • 对于OAuth2协议,因为没有issuer url,所以要分别配好其它三个uri(Authorization URI,Token URI,User Info URI)。

  • Redirect Uri一般配成 https://{ssoserver所在域名}/ssoserver/sso/login/oauth2/code/{idp名字}。

  • 属性映射根据远端认证源返回的用户信息字段名配置。

验证登录

登录 https://dev-portal域名/iam/api/idp/einot?destIdp=aad-idp,自动跳转到 AAD 登录页面,再此以 AAD 账号成功登录 dev-portal。