教程 3:企业账号登录 EnOS 管理控制台 - OIDC¶
使用 SSO Server 内置的 Eniot 客户端,使用 ID broker 功能登录企业账号所在的远端认证源(比如 AAD,ADFS,GITLAB,KC)。
本篇文章以 Azure Active Directory 遵守 OIDC 协议通过SSO Server登录为例:
前提条件¶
步骤¶
步骤一:在 Azure Active Directory (AAD) 上为 SSO Server 配置客户端¶
登录 Azure portal,打开 Azure Active Directory 服务。
选择 应用注册,点击 新注册。
输入注册的基本信息:
名称:aad-idp-for-sso-server
受支持的账户类型:仅此组织目录(仅envision - 单一租户)中的账户
重定向URL(可选):此url的用途是AAD验证完用户名密码后,该重定向到应用的地址。
对应的url格式是:https://sso登录环境域名/ssoserver/sso/login/oauth2/code/aad-idp
例如:https://alpha-enos-authz-service-cn4.eniot.io/ssoserver/sso/login/oauth2/code/aad-idp
复制 应用程序(客户端)ID,存储到本地记事本用以备用。
打开 证书和密码,点击 新客户端密码。
说明:aad-idp-for-sso-server
截止期限:从不
复制密码,存储到本地记事本用以备用。
打开 终结点,复制 OpenID Connect 元数据文档,并用浏览器打开,复制issuer,存储到本地记事本用以备用。
{"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为例)¶
在 EnOS 管理控制台中选择 单点登录 > 认证源。
点击 新建认证源,填写如下信息:
基本信息:
名称: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:选择 email 和 profile。
属性映射:
user name:name
given name:name
family name:name
email:email
phone:
nike name:
点击 保存 ,新建认证源完成。
在远端认证源上为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。