OAuth 2.0-Okta 单点登录配置示例
本文介绍基于 OAuth 2.0 协议,集成 Okta 与 DM Hub 的操作步骤,从而实现单点登录。DM Hub 单点登录配置整体流程请参阅单点登录。
Okta 单点登录配置分为以下几步:
- 在 Okta 上新建一个应用以获取所需配置信息
- 开启 DM Hub 单点登录功能
- 将获取的 Okta 应用信息填写至 DM Hub 对应配置项
- 将 DM Hub 回调地址返回给 Okta
- 新增单点登录用户
- 进行 SSO 登录
从 Okta 上需要获取以下信息:
- Issuer URI,请参阅获取 Okta Issuer URI,了解具体操作方法。
- 应用程序的 Client ID,请参阅获取 Client ID 和 Client Secret,了解具体操作方法。
- 应用程序的 Client Secret,请参阅获取 Client ID 和 Client Secret,了解具体操作方法。
DM Hub SSO 配置项与 Okta 应用信息对应关系如下:
DM Hub 配置项 | 对应的 Okta 应用程序信息 |
---|---|
Authorization URI | OAuth 2.0 授权端点的 URL。填写格式为:{Okta Issuer URI}/v1/authorize |
Token URI | 令牌端点的 URL,用于获取访问和 ID 令牌。填写格式为:{Okta Issuer URI}/v1/token |
UserInfo URI | 用于获取用户身份信息的地址。 填写格式为:{Okta Issuer URI}/v1/userinfo |
jwkSet URI | jwkSet (JSON Web Key Set)文件的地址。填写格式为:{Okta Issuer URI}/v1/keys |
Scopes | 选填,授权请求流程期间客户端请求的范围,如 openid ,email , profile |
Client ID | Okta 应用的 Client ID |
Client Secret | Okta 应用的 Client Secrets |
1. 在 Okta 上获取配置信息
1.1 获取 Okta 应用的 Client ID 和 Client Secret
1.1.1 在 Okta 上新建应用程序
在获取 Okta 应用程序的 Client ID 和 Client Secret 之前,需要在 Okta 上为 DM Hub 新建一个应用程序。
遵循以下步骤以创建 Okta 应用程序:
- 登入 Okta。
- 点击左侧导航栏上 Applications (应用)。
- 点击 Create App Integration 按钮,打开 Create a new app integration 对话框。
- Create a new app integration 的登陆方式(Sign-in method) 选
OIDC-OpenID Connect
。 - Create a new app integration 的应用类型(Application type) 选
Web Application
。 - 点击 Next。
- 在 New Web App Integration 页面设置以下信息:
- App integration name: 自定义
- Controlled access: 选择 Allow everyone in your organization to access.
- 点击 Save,Okta 会返回至新建的应用详情。
1.1.2 获取 Okta 应用的 Client ID 和 Client Secret
应用程序新建完成后,便可以获取应用程序的 Client ID 和 Client Secret:
- 打开新建的 Okta 应用的详情页。
- 复制 Client ID 和 Client Secret
1.2 获取 Okta Issuer URI
- 登入 Okta。
- 点击 Okta 左侧导航栏上 Security > API,进入 API 页面。
- 复制 Issuer URI。
2. 开启 DM Hub 上的单点登录功能
- 管理员进入 DM Hub 用户管理 > 单点登录 页面。
- 选择OAuth 2.0 认证协议。
- 打开单点登录功能开关。
3. 在 DM Hub 上填写 SSO 配置信息
将从 Okta 处获取的 Issuer URI, 应用 Client ID 和 Client Secret 填入 DM Hub 配置项中。
请参阅在 Okta 上获取信息,了解 Okta 的 Issuer URI, 应用 Client ID 和 Client Secret 的获取方法。
填写示例:
DM Hub SSO 配置项 | 填写示例 |
---|---|
Authorization URI | 填写格式:{Okta Issuer URI}/v1/authorize 示例: https://dev-3290755.okta.com/oauth2/default/v1/authorize |
Token URI | 填写格式:{Okta Issuer URI}/v1/token 示例: https://dev-3290755.okta.com/oauth2/default/v1/token |
UserInfo URI | 填写格式:{Okta Issuer URI}/v1/userinfo 示例: https://dev-3290755.okta.com/oauth2/default/v1/userinfo |
Authentication Method | POST |
jwkSet URI | 填写格式:{Okta Issuer URI}/v1/keys 示例: https://dev-3290755.okta.com/oauth2/default/v1/keys |
Scopes | email openid |
用户邮箱对应的参数 | email |
Client ID | 0oa43ffiywgntDcgA5d7 |
Client Secret | W1kkdfjfi5IySxy*****************sM |
你还可以这样获取 Authorization URI、Token URI、UserInfo URI、jwkSet URI
Okta 终结点数据 Authorization URI、Token URI、UserInfo URI、jwkSet URI,存储在 OpenID Connect 文档中。只需要打开 OpenID Connect 文档,即可一次获取所有数据。
OpenID Connect 文档地址格式:
https://${Okta域名}/.well-known/openid-configuration
在浏览器中打开 OpenID Connect 文档地址,浏览器会返回 JSON 格式的数据,复制所需字段即可。
4. 返回 DM Hub 的回调地址给 Okta
- 设置完配置信息后,复制 DM Hub 提供的回调地址。
- 打开新建的 Okta 应用详情页。
- 点击 Okta 应用详情页 Genearl Settings 右侧的 Edit 按钮。
- 定位至 Okta 应用详情页的 LOGIN 模块。
- 将 DM Hub 的回调地址填写至 Okta Sign-in redirect URIs 和 Initiate login URI 输入框中。
- 点击 Save。
5. 验证,新增单点登录用户
5.1 在 Okta 上新增单点登录用户
- 进入 Okta Directory > People 页面。
- 点击 Add person,输入邮箱等信息。
- 点击 Activate 激活用户,Okta 系统会向用户邮箱发送通知邮件。
5.2 在 DM Hub 上进行验证,新增单点登录用户
- 进入 DM Hub 用户管理 > 单点登录 > OAuth 2 页面,点击 开始验证。
- 点击 验证
- 验证通过后,点击 添加用户,输入邮箱等信息即可添加新SSO用户。 DM Hub 中的单点登录邮箱要和 Okta 中单点登录用户的邮箱保持一致。
6. SSO 登录
管理员将免登录地址告知单点登录用户,单点登录用户可以通过免登录地址直接进行登录。
单点登录用户也可以通过 DM Hub 登录页面的 SSO 登录(单点登录) 按钮登录。
参考
- Okta 帮助文档: Create OIDC app integrations using AIW