IBM Cloud Docs
定制

定制

身份验证时,您可以使用自定义身份提供程序。 您的身份提供者可遵循 IBM Cloud® App ID 没有明确支持的任何认证机制,包括专有认证机制。

App ID 未提供对特定身份提供者的直接支持时,您可以使用定制身份流程将认证协议桥接到 App ID 的现有认证流程。 例如,您希望使用 GitHub 或 LinkedIn 来允许用户登录。 可以使用身份提供者的现有 SDK 来方便地提供用户认证信息,然后打包这些信息,并将其与 App ID 进行交换。 在许多企业场景中,原有身份提供者可能使用其自己的定制认证协议,但您仍然希望利用 App ID 的功能。 对于此类型的场景,定制身份流程提供了分离的方法,以在不公开用户凭证的情况下安全地认证用户。

配置定制身份

您可以使用以下步骤将定制身份提供者配置为使用 App ID。

准备工作

要在 App ID 和定制身份提供者之间建立信任,您必须具有最小长度为 2048 的 RSA PEM 密钥对。 确保安全备份用于生产的任何密钥。

如何使用这些密钥?

  • 专用密钥在应用程序或身份提供者中用于对 JWT 签名。
  • App ID 使用公用密钥来验证包含用户信息的 JWT。

要使用 Open SSL 来生成 RSA PEM 密钥对,请运行以下命令:

openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -pubout -in private_key.pem -out public_key.pem

使用 GUI 进行配置

  1. 登录到您的 IBM Cloud 帐户,并导航至 App ID 实例。

  2. 管理选项卡中,将定制身份提供者设置为开启

  3. 向 App ID 注册公用密钥。

    1. 导航至定制身份提供者选项卡。
    2. 公用密钥框中粘贴公用密钥,然后单击保存

使用 API 进行配置

通过向管理 API 端点发出 PUT 请求来注册密钥。

Put <managementURI>/config/idps/custom
Content-Type: application/json
{
    isActive: true,
    config: {
        publicKey: Your newline separated (\n) PEM public key
    }
}

测试您的配置

使用有效的公用密钥配置 App ID 实例后,可以使用服务所提供的测试应用程序来验证是否正确设置了配置。 在示例应用程序中,可以查看在执行标准登录流程期间返回的 App ID 访问令牌和身份令牌有效内容。

  1. 定制身份提供者选项卡中,单击测试以打开测试应用程序。

  2. 创建遵循定制身份协议示例 JWT

  3. 将 JWT 粘贴到标注为 JSON Web 令牌的框中,然后单击测试以执行样本认证。

如果成功,现在可以在标准登录流程中看到可用于应用程序的已解码 App ID 身份令牌和访问令牌。

后续步骤

既然已配置了定制身份提供者,请将其添加到应用程序