文档

绑定 OIDC 身份提供方

本文介绍使用企业级身份提供方(Okta、Azure AD、自研系统等)通过 OIDC 协议登录到 IDaaS EIAM 用户门户的配置方式。

基础介绍

通过绑定 OIDC 身份提供方,您可以使用 Okta、Azure AD、自研系统等账号登录 IDaaS EIAM。

基本概念

概念

说明

OIDC

OIDC 协议是 OAuth 协议的升级版,在 OAuth2.0 协议之上建立了用户身份层,常用配置说明请参考OIDC SSO 配置

IdP

Identity Provider,身份提供方,在当前场景中,即是 Okta、Azure AD。源自于 SAML 协议中定义,IdP 为进行用户认证、鉴权,并返回 SAML Response 结果信息给 SP 的身份提供方,后通用化指统一身份管理平台。

SP

Service Provider,服务提供方,在当前场景中,即是 IDaaS EIAM。源自于 SAML 协议中定义,SP 为接收 IdP 返回结果的解析方,后通用化指接入 IdP 的应用。

联邦认证

Federated Authentication,指 SP 信任并使用 IdP 的认证结果,在当前场景中,即是 IDaaS EIAM 信任 Okta、Azure AD 等身份提供方的认证结果,实现 IDaaS EIAM 账户的登录。联邦认证常被用于支持单点登录。

绑定通用的 OIDC 身份提供方

IDaaS EIAM 采用标准的 OIDC 授权码模式实现联邦认证,因此理论上只要您的身份提供方(如 Okta、Azure AD、自研系统)支持标准的 OIDC 授权码模式的单点登录,即可作为 IDaaS EIAM 的身份提供方,使用其中的账号登录到 IDaaS EIAM。

说明

目前仅支持在 IDaaS EIAM 页面中发起单点登录(SP 发起),即身份提供方为 IDaaS EIAM 登录页中的一种登录方式。暂不支持从身份提供方中发起单点登录(IdP 发起)。

在绑定通用的 OIDC 身份提供方时,本质上是 IDaaS 和身份提供方相建立信任的过程。您需要在两边获取和填写配置信息。

第一步:填写基本配置

在 IDaaS 中获取配置

1、进入 IDaaS EIAM 实例,在【身份提供方】菜单中点击【其他身份提供方 - OIDC 身份提供方】,开始绑定流程。

image.png

2、在表单最下方复制【IDaaS 授权回调 Redirect URI】,在第二步中填入到您的身份提供方,该地址用于发送认证请求和 ID token。

image.png

在身份提供方获取配置

1、您需要在您的身份提供方中创建一个支持 OIDC 协议的应用,将第一步复制的【IDaaS 授权回调 Redirect URI】作为应用的重定向地址。

2、您需要获取下列信息,填写到 IDaaS EIAM 的表单中。

  • Client ID:向 IDaaS EIAM 发起请求的标识信息,即您的身份提供方中应用的标识。

  • Client Secret:向 IDaaS EIAM 发起请求的密钥信息,即您的身份提供方中应用的密钥。

  • Issuer:OIDC Issuer 发现端点。

3、在 IDaaS 表单中点击【解析】Issuer,即可自动填充各端点信息。

image.png

4、确认无误后,点击【下一步】,进入选择场景流程。

第二步:选择场景

在【选择场景】中,您可以选择需要使用的能力。

image

  • 联邦认证:开启后,用户可以使用 OIDC 登录方式登录到 IDaaS。

  • 手动绑定账户:开启后,用户使用 OIDC 登录 IDaaS 时,如果当前 OIDC 账户未绑定 IDaaS 账户,可手动使用其他登录方式验证 IDaaS 账户。绑定成功后,之后可使用该 OIDC 账户登录 IDaaS。

  • 自动绑定账户:开启后,用户使用 OIDC 登录 IDaaS 时,如果当前 OIDC 账户未绑定 IDaaS 账户,且 IDaaS 字段与 OIDC 账户字段的值相同,则自动绑定账户。您可以使用【选择字段】,直接选择 id_token 里的某个字段,也可以使用表达式自定义字段(详情参考高级:账户字段表达式)。绑定成功后,之后可使用该 OIDC 账户登录 IDaaS。

  • 自动创建账户通过 OIDC 登录时,如果 OIDC 账户未绑定 IDaaS 账户,可自动创建 IDaaS 账户。每次通过 OIDC 登录都将更新账户信息。

  • 指定账户的组织: 通过 OIDC 登录时,没有所属组织的 IDaaS 账户将自动归属于该组织。该字段在配置时默认选择根组织,您可搜索或下拉选择组织。

  • 自动更新信息:用户使用 OIDC 登录时,根据字段映射自动更新 IDaaS 账户信息。

说明

如果同时开启了手动绑定账户和自动绑定账户,将优先进行自动绑定。自动绑定账户能力仅【试用版】和【企业版】实例可使用,如有需要请提前升级 IDaaS 实例。

确认无误后,点击【确定】,即可创建 OIDC 身份提供方。

第三步:字段映射(可选)

说明

开启【自动创建账户】或【自动更新信息】后,创建流程出现【字段映射】步骤,否则无此步骤。

image

重要

如果 IDaaS 账户由其他身份提供方同步创建(例如钉钉、AD),账户数据将以其他身份提供方为准,无法在此处自动更新。

开启自动创建账户后,用户通过 OIDC 登录时可以使用 id_token 中的字段数据作为 IDaaS 账户的字段值,实现 IDaaS 账户字段值的自动修改。例如将 id_token 中的 name 作为 IDaaS 账户的显示名。

说明

账户登录的优先级是:已绑定>自动绑定>手动绑定=自动创建

如果 OIDC 无绑定关系且无法自动绑定,用户登录流程出现选择弹窗,由用户选择手动绑定或者手动创建。

image

绑定其他 OIDC 身份提供方

本节介绍常用的身份提供方的配置流程。

绑定 Okta

第一步:开始绑定流程

1、进入 IDaaS EIAM 实例,在【身份提供方】菜单中点击【其他身份提供方 - OIDC 身份提供方】,开始绑定流程。

image.png

2、填写【显示名称】,【认证模式】选择任意一个均可。【PKCE】是额外的安全验证,您可以选择性勾选,Okta PKCE 的 Code Challenge 生成方式仅支持 SHA256。

image.png

3、在表单最下方复制【IDaaS 授权回调 Redirect URI】。Okta 将向该地址发送认证请求和 ID token。

image.png

第二步:创建 Okta 应用

1、在 Okta 中登录管理门户(admin)。

2、在【应用(Applications)】菜单中,点击【创建应用集成(Create App Integration)】。

3、【单点登录方式(Sign-in method)】选择【OIDC - OpenID Connect】,【应用类型(Application type)】选择【网页应用(Web Application)】。

4、修改【应用名称(App integration name )】。

5、在【登录重定向地址(Sign-in redirect URIs)】中,填入第一步中复制的【IDaaS 授权回调 Redirect URI】。

6、在【访问控制(Controlled access)】中设置应用的访问权限,如果用于测试或无特殊的管控需求,可选择【所有人均可访问(Allow everyone in your organization to access)】。如果选择其他选项,则需要为用户或组授权。

7、确认无误后,点击【保存(Save)】。保存后将自动进入应用详情页。

第三步:填写 OIDC 身份提供方信息

1、您需要在 Okta 应用详情页中获取如下信息,填入到【绑定 OIDC 身份提供方】表单中。

  • Client ID:在【通用(General)】选项卡中,点击复制【Client ID】,填写到 IDaaS 表单中。如果在第一步中勾选了【PKCE】,则需要在 Okta 中勾选【Require PKCE as additional verification】。image.png

  • Client Secret:依然在【通用(General)】选项卡中,点击复制【Client Secret】,填写到 IDaaS 表单中。image.png

  • Issuer:在【登录(Sign On)】选项卡中,下滑找到【OpenID Connect ID Token】,点击【编辑(Edit)】,将【Issuer】修改为【Okta URL】,并复制该地址,填写到 IDaaS 表单中。image.png

说明

Okta 中的【Issuer】也可以使用【Dynamic】模式,您需要在【Security - API】菜单使用【授权服务(Authorization Servers)】中的【Issuer URI 】。如果使用自建的授权服务,需要在授权服务中为 Okta 应用增加【访问策略(Access Policies)】。

2、在 IDaaS 表单中点击【解析】Issuer,即可自动填充各端点信息。

image.png

3、IDaaS 将以 ID token 中 sub 字段的值作为用户的身份标识绑定 IDaaS 账户,用户在 Okta 认证通过后,将登录绑定该标识的 IDaaS 账户。该字段配置暂不支持修改。

image.png

4、确认无误后,点击【下一步】,进入选择场景流程,具体配置请参考第二步:选择场景

用户登录流程

以下展示 Okta 用户的登录流程。

1、用户访问 IDaaS EIAM 用户门户时,可见到该登录方式。

image.png

2、点击登录方式后,将前往 Okta 进行验证。如果 Okta 账号未登录,则出现登录页面;如果已登录,则重定向至 IDaaS。

image.png

3、如果该 Okta 账号已绑定 IDaaS 账户,则可直接登录 IDaaS 账户;如果未绑定 IDaaS 账户,会有优先进行自动绑定,自定绑定失败则需要您进行手动绑定或者自动创建账户,绑定逻辑请参考第二步:选择场景

绑定Azure AD

第一步:开始绑定流程

1、进入 IDaaS EIAM 实例,在【身份提供方】菜单中点击【其他身份提供方 - OIDC 身份提供方】,开始绑定流程。

image.png

2、填写【显示名称】,【认证模式】选择任意一个均可。【PKCE】是额外的安全验证,您可以选择性勾选。

image

3、在表单最下方复制【IDaaS 授权回调 Redirect URI】。Azure AD 将向该地址发送认证请求和 ID token。

image.png

第二步:创建 Azure AD 应用

1、在 Microsoft 门户创建一个 Azure 账号。

进入Azure Active Directory 管理中心,点击管理 Azure Active Directory 下的查看 > 应用注册image

应用注册页面,点击新注册

image

2、创建新的应用程序

注册应用程序页面输入名称,受支持的账户类型需选择任何组织目录,重定向 URI 选择Web。点击注册,即可创建一个新的应用程序。如下图,定义该应用名称为 “IDaaS”。image

重定向URI为上面第一步添加OIDC身份提供方时,步骤3中获取的“IDaaS 授权回调 Redirect URI”

3、完成新应用程序基本配置

(1)创建新应用程序后,默认进入概述页面。您可以在应用注册 > 所有应用程序下查看您所创建的应用程序。

image

注意此处的应用程序(客户端) ID即为 OIDC 客户端配置中的 Client ID

(2)添加客户端凭据:

image

image

image

说明

此处列表中的即为 OIDC 客户端配置中的 clientSecret 值,请立即保存。

(3)进入令牌配置 > 添加可选声明页面,添加组声明。添加完毕之后,会产生一个groups记录。

image

同时分别对令牌类型ID访问选择图示声明,使登录的客户端能够拿到相关令牌数据。

image

image

(4)添加 API 的作用域。进入公开 API,分别添加作用域:User.ReadUser.Read.AllGroupMember.Read.AllGroup.Read.All。点击添加范围,为当前这个应用客户端公开图示四个权限:

image

image

(5)继上一步添加完毕四个作用域后,为客户端应用程序添加授权。进入API 权限

image

  • 再选择应用需要对应的权限:

image

需代表当前租户管理员同意授权:

image

注意:客户端 ID 即为应用程序(客户端) ID

4、获取应用的 OIDC 协议端点访问地址信息

应用注册 > 终结点,OIDC 客户端配置中的 Issuer 取值通过访问OpenID Connect 元数据文档 获取:

https://login.microsoftonline.com/common/v2.0

image

关于 OpenID 配置文档 URI 更多相关信息,可前往Microsoft 标识平台上的 OpenID Connect

至此,三项关键配置信息已获取完毕。

第三步:填写 OIDC 身份提供方信息

1、您需要在 Azure AD 应用概述页中获取如下信息,填入到【绑定 OIDC 身份提供方】表单中。

  • Client ID:在【概述】选项卡中,点击复制【应用程序(客户端) ID】,填写到 IDaaS 表单中。image

  • Client Secret:依然在【概述】选项卡中,点击【客户端凭据】,跳转到【证书和密码】进行客户端密码添加,将添加的密码填写到 IDaaS 表单中。imageimage

  • Issuer:在【概述】选项卡中,通过访问【终结点-OpenID Connect 元数据文档】,获取【Issuer】的地址,并复制该地址,填写到 IDaaS 表单中。

image

2、在 IDaaS 表单中点击【解析】Issuer,即可自动填充各端点信息。

image

3、确认无误后,点击【下一步】,进入选择场景流程,具体配置请参考第二步:选择场景

用户登录流程

以下展示 Azure AD 用户的登录流程。

1、用户访问 IDaaS EIAM 用户门户时,可见到该登录方式。

image

2、点击登录方式后,将前往 Azure AD 进行验证。如果 Azure AD账号未登录,则出现登录页面;如果已登录,则重定向至 IDaaS。

image

3、如果该 Azure AD 账号已绑定 IDaaS 账户,则可直接登录 IDaaS 账户;如果未绑定 IDaaS 账户,会有优先进行自动绑定,自定绑定失败则需要您进行手动绑定或者自动创建账户第二步:选择场景

删除 OIDC 身份提供方

您可在【身份提供方】中删除【OIDC 身份提供方】,删除后各项配置将立即删除,不可找回;相关功能将不可使用。

  • 本页导读 (0)
文档反馈