OAuth 2.0-Azure AD(中国版)单点登录配置示例
本文介绍基于 OAuth 2.0 协议,集成微软 Azure Active Directory 中国版 (以下简称 Azure AD) 与 DM Hub 的操作步骤,从而实现单点登录。DM Hub 单点登录配置整体流程请参阅单点登录。
在 DM Hub 中为 Azure AD 用户设置 OAuth 2.0 单点登录的操作步骤如下:
- 在 Azure AD 上注册新应用并获取所需配置信息
- 开启 DM Hub 中OAuth 2.0单点登录功能
- 将获取的 Azure AD 应用信息填写至 DM Hub 对应配置项
- 将 DM Hub 回调地址返回给 Azure AD
- 进行验证,新增单点登录用户
- 进行 SSO 登录
DM Hub SSO 配置项与 Azure AD 应用信息对应关系如下:
DM Hub 配置项 | 对应的 Azure AD 应用程序信息 |
---|---|
Authorization URI | Azure AD 应用程序终结点 OpenID Connect 元数据文档 里的 authorization_endpoint 。请参阅OpenID Connect 元数据文档,了解获取方法。 |
Token URI | Azure AD 应用程序终结点 OpenID Connect 元数据文档 里的 token_endpoint 。请参阅OpenID Connect 元数据文档,了解获取方法。 |
User Info URI | Azure AD 应用程序终结点 OpenID Connect 元数据文档 里的 userinfo_endpoint 。请参阅OpenID Connect 元数据文档,了解获取方法。 |
jwkSet URI | 选填,Azure AD 应用终结点 OpenID Connect 元数据文档 里的 jwks_uri 。请参阅OpenID Connect 元数据文档,了解获取方法。 |
Scopes | 选填,Azure AD 应用的 API 权限,如 openid,email, 或 profile。 请参阅设置 API 权限,了解操作方法。 |
Client ID | Azure AD 应用程序(客户端) ID。 请参阅获取 Azure AD 应用程序(客户端) ID,了解获取方法。 |
Client Secrete | Azure AD 应用程序的客户端密码值。 请参阅客户端密码值,了解获取方法。 |
1. 获取 Azure AD 应用信息
1.1. 在 Azure AD 上为 DM Hub 新建一个应用
- 登陆 Azure 中国版。
- 进入 Azure Active Directory 服务。
- 选择 应用注册。
- 点击 新注册。
- 在注册应用程序页面:
- 输入名称。
- 受支持的帐户类型:一般请保持默认的「仅此组织目录」。
- 重定向 URI:请填写临时任意值占位,例如
http://localhost:8080/
。 - 点击 注册。
新应用注册完成后,Azure AD 会自动跳转至新应用详情页。
1.2. 获取 Azure AD 应用程序(客户端) ID
复制保存新应用详情 概述 页面上的 应用程序(客户端) ID。
1.3. 获取 Azure AD 应用程序客户端密码值
- 点击新应用详情页左侧导航栏上 证书与密码。
- 点击 新客户端密码。
- 在添加客户端密码对话框内,输入说明和截止期限:
- 说明:可任意填写
- 截止期限长:推荐选择
24个月
,过期后需要更新
- 点击 添加。
- 新增客户端密码后,应用详情页会出现以下页面,注意复制保存 客户端密码值 备用。
注意
客户端密码 除了刚刚创建时,之后无法查看客户端密码值。请务必在创建时保存密码,然后再离开该页面。
1.4. 获取 Azure AD 应用的「OpenID Connect 元数据文档」数据
OpenID Connect 描述了元数据文档,该文档包含了应用执行登录所需的大部分信息。OpenID Connect 元数据文档里的信息与 DM Hub SSO 配置字段对应如下:
token_endpoint
: 对应 DM Hub SSO 配置项里的Token URI
jwks_uri
: 对应 DM Hub SSO 配置项里的jwkSet URI
userinfo_endpoint
: 对应 DM Hub SSO 配置项里的UserInfo URI
authorization_endpoint
: 对应 DM Hub SSO 配置项里的Authorization URI
遵循以下步骤以获取 OpenID Connect 元数据文档相关信息:
- 点击应用详情页上 概述 > 终结点。
- 复制 OpenID Connect 元数据文档 地址。
- 在新的浏览器窗口中打开 OpenID Connect 元数据文档地址。
- 浏览器会返回 JSON 格式的数据,里面包含了 SSO 配置所需的信息。复制以下字段的值信息:
token_endpoint
jwks_uri
userinfo_endpoint
authorization_endpoint
1.5. 设置 Azure AD 应用 API 权限
Azure AD 应用的 API 权限,对应 DM Hub SSO 配置项的 Scopes
字段。
- 点击应用详情页左侧导航栏上 API 权限。
- 点击 添加权限。
- 选择 Microsoft API > Microsoft Graph。
- 权限类型选择 委托的权限。
- 勾选 OpenId 权限里的 email,openid 和 profile。
- 点击 添加权限。
2. 开启 DM Hub 上的单点登录功能
- 管理员进入 DM Hub 用户管理 > 单点登录 页面。
- 选择OAuth 2.0 认证协议。
- 打开单点登录功能开关。
3. 在 DM Hub 上填写 SSO 配置信息
- 进入 DM Hub 单点登录 页面
- 点击 步骤1 在DMhub设置 右侧 编辑 按钮
- 将在 Azure AD 上获取的
应用程序(客户端) ID
、客户端密码值
、authorization_endpoint
、token_endpoint
userinfo_endpoint
和jwks_uri
,填入到对应的 DM Hub SSO 配置项目中。Azure AD 配置信息获取方法,请参阅获取 Azure AD 应用信息。
填写示例如下:
DM Hub 配置项 | 填写示例例 |
---|---|
Authorization URI | https://login.partner.microsoftonline.cn/856a38ec-36g8-5063-9617-ac77855e2d94/oauth2/v2.0/authorize |
Token URI | https://login.partner.microsoftonline.cn/856a38ec-36g8-5063-9617-ac77855e2d94/oauth2/v2.0/token |
UserInfo URI | https://microsoftgraph.chinacloudapi.cn/oidc/userinfo |
Authentication Method | POST |
jwkSet URI | https://login.partner.microsoftonline.cn/856a38ec-36g8-5063-9617-ac77855e2d94/oauth2/discovery/keys |
Scopes | email profile openid |
用户邮箱对应的参数 | email |
Client ID | f7072277-3697-5331-84g2-3041e773a6ca |
Client Secret | 111ZpgusGY~*****************sM |
4. 返回 DM Hub 的回调地址给 Azure AD
设置完配置信息后,需要将 DM Hub 单点登录里提供的回调地址,填到 Azure 的身份验证中:
- 设置完配置信息后,复制 DM Hub 提供的回调地址。
- 打开 Azure AD 应用详情的 身份验证 页面。
- 点击 Web 模块上的 添加 URI 按钮。
- 输入 DM Hub 提供的回调地址
- 点击 保存。
5. 进行验证,在 DM Hub 上新增单点登录用户
- 进入 DM Hub 用户管理 > 单点登录 > OAuth 2 页面,点击 开始验证。
- 点击 验证
- 验证通过后,点击 添加用户,输入邮箱等信息即可添加新SSO用户。
注意
DM Hub 中的单点登录邮箱要和 Azure 用户服务中用户的邮箱保持一致。
6. SSO 登录
管理员将免登录地址告知单点登录用户,单点登录用户可以通过免登录地址直接进行登录。
单点登录用户也可以通过 DM Hub 登录页面的 SSO 登录(单点登录) 按钮登录。