使用外部身份提供者进行用户管理

本主题介绍了如何将 IDCS 配置为 Oracle Blockchain Platform Enterprise Edition 的外部 OpenID Connect (OIDC) 身份提供者。

先决条件

在 Oracle Blockchain Platform Enterprise Edition 中创建实例之前:

  • 在所选身份提供者中创建管理员账户。
  • 创建 Oracle Blockchain Platform Enterprise Edition 管理和区块链访问所需的用户和组。
  • 注册机密 OIDC 客户机应用程序。
  • 获取客户端 ID、客户端密钥、发布者、授权、令牌、JWKS 和撤销端点。
  • 确定用于用户名、客户机 ID 和组成员资格的声明名称。

配置 IDCS

配置机密客户机

  1. 登录 IDCS 身份域。创建域,
  2. 为 Oracle Blockchain Platform Enterprise Edition 控制层创建机密客户端应用。
    1. 依次导航到配置文件、身份域和集成的应用程序。
    2. 依次选择“添加应用程序”按钮、“机密应用程序”和“启动工作流”,并在提交以创建机密应用程序之前提供名称。
    3. 创建应用程序后,选择应用程序并导航到“OAuth 配置”选项卡。选择编辑 OAuth 配置。
    4. 选择以下资源服务器配置选项:
      • 立即将此应用程序配置为资源服务器
      • 允许令牌刷新
      • 主要受众:obpee-cp
    5. 选择以下客户端配置选项:
      • 立即将此应用程序配置为客户端
      • 对于允许的授权类型的,选择
        • 资源所有者
        • 刷新令牌
        • 授权代码
      • 客户类型:机密
    6. 证书:
      • 选择略过同意
      • 客户端 IP 地址:任意位置
    7. 令牌颁发策略:
      • 已授权资源:全部
  3. 在域中创建组和用户。依次导航到配置文件、身份域和用户管理。

    有关这些组及其使用方式的详细信息,请参见 User Groups and Roles 。

  4. 为 Oracle Blockchain Platform Enterprise Edition 控制层和服务控制台配置所需的重定向 URI。
  5. 将用户和组分配给机密客户机应用程序。依次导航到 Confidential Application(机密应用程序)、 Users(用户)和 Confidential Application(机密应用程序),然后导航到 Groups(组)以执行此操作。

配置组声明

要在访问令牌中包括组成员资格:

  1. 打开机密客户端的 OAuth 配置。
  2. 添加 Identity Domain Administrator 应用程序角色。
  3. 使用管理员帐户通过令牌端点获取访问令牌。管理员必须属于 IDCS_Administrators 组和 OCI_Administrators 组(如果适用)。
  4. 使用访问令牌创建定制访问令牌声明。
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 提供程序配置中输入身份提供者值。
  1. Open Blockchain Platform Manager,网址为 https://controlplane.domainname/console/index.html。您的浏览器可能会警告您自签名证书。
  2. 使用 obpadmin 用户名和您在安装期间提供的密码登录到 Blockchain Platform Manager。
  3. 在 Configuration(配置)页面上,选择 Authentication Servers(验证服务器)。
  4. 选择添加身份提供者
  5. 填写添加身份提供者页上的以下配置字段:
  6. 根据需要填写组名称字段。可以在以下位置找到:组
  7. 填充所有字段后,单击保存并设置有效。

确保域设置已启用配置客户端访问

确保域设置启用了“Configure Client Access(配置客户端访问)”。要验证或启用此功能,请执行以下操作:
  1. 访问 IDCS 控制台,网址为:
    <Domain-URL>/ui/v1/adminconsole
  2. 使用具有身份域管理员角色(或等效的租户/域管理员权限)的用户登录。
  3. 导航到“设置”选项卡,然后导航到域设置 - 访问签名证书,并确保启用了配置客户机访问。
  4. 如果已禁用,请使用编辑域设置启用它。

为区块链平台管理器添加重定向 URL

从 Blockchain Platform Manager 注销后,当您尝试重新登录时,它将通过新的身份提供者。这要求您添加重定向 URL。

例如,如果您使用的是 IDCS,请完成以下步骤:
  1. 登录到 OCI 并转到 Identity and Security。
  2. 选择 Integrated Applications 。
  3. 选择您创建的机密应用程序。
  4. 选择 OAuth 配置,然后单击编辑 OAuth 配置。
  5. 使用区块链平台管理器 URL 的 URL 将重定向 URL 添加到列表。单击提交。

注意:

  • 创建实例后,您需要为区块链平台控制台 URL 添加另一个重定向。它是特定于实例的,在创建实例后才能添加。
  • 如果部署示例应用程序,则需要为示例应用程序 URL 添加另一个重定向。