使用外部身份提供者进行用户管理
本主题介绍了如何将 IDCS 配置为 Oracle Blockchain Platform Enterprise Edition 的外部 OpenID Connect (OIDC) 身份提供者。
先决条件
在 Oracle Blockchain Platform Enterprise Edition 中创建实例之前:
- 在所选身份提供者中创建管理员账户。
- 创建 Oracle Blockchain Platform Enterprise Edition 管理和区块链访问所需的用户和组。
- 注册机密 OIDC 客户机应用程序。
- 获取客户端 ID、客户端密钥、发布者、授权、令牌、JWKS 和撤销端点。
- 确定用于用户名、客户机 ID 和组成员资格的声明名称。
配置 IDCS
配置机密客户机
- 登录 IDCS 身份域。创建域,
- 为 Oracle Blockchain Platform Enterprise Edition 控制层创建机密客户端应用。
- 依次导航到。
- 依次选择,并在提交以创建机密应用程序之前提供名称。
- 创建应用程序后,选择应用程序并导航到“OAuth 配置”选项卡。选择编辑 OAuth 配置。
- 选择以下资源服务器配置选项:
- 立即将此应用程序配置为资源服务器
- 允许令牌刷新
- 主要受众:
obpee-cp
- 选择以下客户端配置选项:
- 立即将此应用程序配置为客户端
- 对于允许的授权类型的,选择
- 资源所有者
- 刷新令牌
- 授权代码
- 客户类型:机密
- 证书:
- 选择略过同意
- 客户端 IP 地址:任意位置
- 令牌颁发策略:
- 已授权资源:全部
- 在域中创建组和用户。依次导航到。
有关这些组及其使用方式的详细信息,请参见 User Groups and Roles 。
- 为 Oracle Blockchain Platform Enterprise Edition 控制层和服务控制台配置所需的重定向 URI。
- 将用户和组分配给机密客户机应用程序。依次导航到 和 以执行此操作。
配置组声明
要在访问令牌中包括组成员资格:
- 打开机密客户端的 OAuth 配置。
- 添加 Identity Domain Administrator 应用程序角色。
- 使用管理员帐户通过令牌端点获取访问令牌。管理员必须属于
IDCS_Administrators组和OCI_Administrators组(如果适用)。 - 使用访问令牌创建定制访问令牌声明。
curl -sS -X POST "https://<identity-domain-host>/admin/v1/CustomClaims" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--data-binary '{
"schemas": ["urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim"],
"name": "group_roles",
"value": "$user.groups.*.display",
"expression": true,
"mode": "always",
"tokenType": "AT",
"allScopes": true
}'使用 group_roles 作为 Oracle Blockchain Platform Enterprise Edition 配置中的组声明名称。
配置 Oracle Blockchain Platform Enterprise Edition
在 Oracle Blockchain Platform Enterprise Edition 外部 OIDC 提供程序配置中输入身份提供者值。
- Open Blockchain Platform Manager,网址为
https://controlplane.domainname/console/index.html。您的浏览器可能会警告您自签名证书。 - 使用
obpadmin用户名和您在安装期间提供的密码登录到 Blockchain Platform Manager。 - 在 Configuration(配置)页面上,选择 Authentication Servers(验证服务器)。
- 选择添加身份提供者
- 填写添加身份提供者页上的以下配置字段:
字段 必需 说明 众所周知的配置 URI 是 身份提供者的 OIDC 搜索 URL。这是 Domain URL/.well-known/openid-configuration可以在 中找到域 URL
发布者 URL 否 用于验证令牌源的发布者。 JWKS URL 否 用于验证令牌签名的端点。 授权端点 否 用于基于浏览器的验证的端点。 标记端点 否 用于交换令牌授权代码的端点。 吊销端点 否 用于撤销刷新令牌的端点。 范围 是 OIDC 范围,例如 openid email profile offline_access。客户索赔名称 是 包含客户标识符(例如 cid或azp)的声明。客户索赔价值 是 客户标识符索赔的预期值。 客户端 ID 是 机密客户标识符。 客户端密钥 是 机密客户秘密。 用户索赔名称 是 用户标识符声明,例如 preferred_username或email。Blockchain Platform Manager (BPM) 管理员 是 映射到区块链平台管理器管理员的提供程序组。 组索赔名称 是 包含组成员资格的声明,例如 groups或group_roles。 - 根据需要填写组名称字段。可以在以下位置找到:组
- 填充所有字段后,单击保存并设置有效。
确保域设置已启用配置客户端访问
确保域设置启用了“Configure Client Access(配置客户端访问)”。要验证或启用此功能,请执行以下操作:
- 访问 IDCS 控制台,网址为:
<Domain-URL>/ui/v1/adminconsole - 使用具有身份域管理员角色(或等效的租户/域管理员权限)的用户登录。
- 导航到,并确保启用了配置客户机访问。
- 如果已禁用,请使用编辑域设置启用它。
为区块链平台管理器添加重定向 URL
从 Blockchain Platform Manager 注销后,当您尝试重新登录时,它将通过新的身份提供者。这要求您添加重定向 URL。
例如,如果您使用的是 IDCS,请完成以下步骤:
- 登录到 OCI 并转到 Identity and Security。
- 选择 Integrated Applications 。
- 选择您创建的机密应用程序。
- 选择 OAuth 配置,然后单击编辑 OAuth 配置。
- 使用区块链平台管理器 URL 的 URL 将重定向 URL 添加到列表。单击提交。
注意:
- 创建实例后,您需要为区块链平台控制台 URL 添加另一个重定向。它是特定于实例的,在创建实例后才能添加。
- 如果部署示例应用程序,则需要为示例应用程序 URL 添加另一个重定向。