Skip to main content

OIDC 提供商设置

本节介绍如何创建 OIDC IdP 客户端和在 OIDC IdP 中创建 Service Workbench 根用户。

更多关于OIDC的信息,请参考 OIDC

创建 OIDC IdP 客户端和用户

OpenID Connect (OIDC) IdP 是 Cognito User Pool 的替代方案,用于对 Service Workbench 进行身份验证。在使用 OIDC IdP 部署 Service Workbench 之前,您必须在外部 OIDC 服务中创建您的 OIDC 提供程序。

以下是在 Authing、Keycloak 和 Okta 中创建 OIDC 提供程序的示例过程,以供参考。您也可以使用其他 OIDC 提供程序。

  • (选项1: Authing) Authing 是第三方认证提供者的一个例子。
  • (选项2: Keycloak on AWS) Keycloak on AWS 是 AWS 维护的解决方案,可以作为身份验证提供者。
  • (选项3: Okta)Okta 是一个值得信赖的平台,可以保护从客户到您的员工的所有身份信息。

按照以下步骤创建 OIDC 客户端,并获取client_id, issuer, user_name, first_namelast_name

Authing

创建 Authing.cn OIDC 客户端

  1. 登录认证控制台

  2. 如果您没有用户池,请创建一个用户池。请选择 To C 类型,如果想使用长期免费的用户池,请不要勾选 “开启体验期,30 天体验所有功能。体验到期未升级,用户池将不能访问。”选项。单击 创建用户池 按钮创建用户池。

  3. 选择用户池。

  4. 在左侧导航栏,选择Applications下的Self-built App

  5. 单击Create按钮。

  6. 输入Application NameSubdomain,选择Regular Web APP,单击Create 创建应用.

  7. App ID(即client_id)和Issuer保存到Endpoint Information中的一个文本文件中,后面会用到。

  8. Login Callback URLLogout Callback URL更新为您的ICP记录的域名。 例如,假设 Service Workbench 域名是 www.swb-example.com,请在 Login Callback URLLogout Callback URL 中输入 https://www.swb-example.com/

    tip

    请确保填入的URL以 "/" 结尾。

    如果不为 Service Workbench 使用自定义域,Service Workbench 会提供CloudFront域名来访问,所以需要将部署的Service Workbench CloudFront域名配置为Login Callback URLLogout Callback URL。在部署Service Workbench之前,可以保留Login Callback URLLogout Callback URL*。 Service Workbench部署完成后,需要获取cloudfront domain并再次将其输入到Login Callback URLLogout Callback URL中。

    • 获取CloudFront域名 CloudFormationStacksxxx-infrastructureOutputsWebsiteUrl,如下所示:
  1. 设置授权配置。请在Other configuration的配置选项中按下图所示进行配置

您已经成功创建了一个身份验证自建应用程序。 更多信息请访问authing文档

在Authing.cn创建用户

  1. 登录认证控制台

  2. 选择Users & Roles, Users中单击Create User,选择 Email,输入EmailPassword,点击Confirm创建用户。

  3. 选择进入创建的用户,展开Personal Info,填写EmailGiven NameFamily Name后保存。

    tip

    如果在Personal Info 中没有Given NameFamily Name,请选择边栏的SettingField Management,将 Given NameFamily Name 设定 Visible from ConsoleYes,之后再次进入Personal Info进行编辑

Keycloak on AWS

创建 Keycloak OIDC 客户端

  1. 按照本指南在AWS中国区域部署Keycloak解决方案。

  2. 确保您可以登录 Keycloak 控制台。

  3. 在左侧导航栏,选择添加领域。如果您已经有一个领域,请跳过此步骤。

  4. 进入领域设置页面。选择 Endpoints,然后从列表中选择 OpenID Endpoint Configuration

  5. 在浏览器打开的 JSON 文件中,记录 issuer 值,稍后将使用该值。

  6. 回到Keycloak控制台,在左侧导航栏选择Clients,然后选择Create

  7. 输入客户 ID,必须包含 24 个字母(不区分大小写)或数字。记录后面会用到的Client ID

  8. 更改客户端设置。在 Valid Redirect URIsWeb Origins 中输入您的ICP记录的域名。 例如,假设 Service Workbench 域名是 www.swb-example.com,请在 Valid Redirect URIsWeb Origins 中输入 https://www.swb-example.com/

    tip

    请确保填入的URL以 "/" 结尾。

    如果不为 Service Workbench 使用自定义域,Service Workbench 会提供CloudFront来访问,所以需要将部署的Service WorkbenchCloudFront配置为Valid Redirect URIsWeb Origins。在部署Service Workbench之前,可以保留Valid Redirect URIsWeb Origins*。部署 Service Workbench 后,需要获取 cloudfront 域并再次将其输入到 Valid Redirect URIsWeb Origins 中。

    • 获取CloudFront域名 CloudFormationStacksxxx-infrastructureOutputsWebsiteUrl,如下所示:

颁发者值为https://<KEYCLOAK_DOMAIN_NAME>/auth/realms/<REALM_NAME>

在 Keycloak 中创建用户

  1. 登录您部署的 Keycloak 管理控制台并选择您之前创建的 realm

  2. 选择UserAdd user,输入UsernameEmailFirst NameLast Name,然后点击Save创建用户。

  3. 创建用户后,选择Credentials 设置密码。

您已成功在 keycloak 中创建了一个用户。

Okta

创建 Okta OIDC 客户端

  1. 登录Okta 控制台

  2. 如果您没有账户,请创建一个账户。

  3. 访问开发者管理控制台。

  4. 如果没有应用,创建应用,选择Applications -> Application -> Create App Integration -> OIDC - OpenID Connect单页应用程序->单击下一步按钮。

  5. 单击创建按钮。

  6. 输入App集成名称,设置Grant typeAuthorization Code

  7. 将“登录重定向 URI”和“退出重定向 URI”更新为您的 ICP 记录的域名。 例如,假设 Service Workbench 域名是 www.swb-example.com,请为 Sign-in redirect URIsSign-out redirect 输入 https://www.swb-example.com/ URI。

    tip

    请确保填入的URL以 "/" 结尾。

    如果不为 Service Workbench 使用自定义域,Service Workbench 会提供CloudFront域名来访问,所以需要将部署的Service Workbench CloudFront域名配置为Sign-in redirect URIsSign-out redirect URIs。在部署Service Workbench之前,可以保留Sign-in redirect URIsSign-out redirect URIs作为*。部署 Service Workbench 后,需要获取 cloudfront 域并再次将其输入到 Sign-in redirect URIsSign-out redirect URIs 中。

    • 获取Cloudfront域名 CloudFormationStacksxxx-infrastructureOutputsWebsiteUrl,如下所示:
  8. 创建应用程序后,您可以获得Client ID(即client_id文本)和Issuer(即您的Okta URL,例如:https://xxx.okta.com)。请保存它们以供以后使用。

在 Okta 中创建用户

  1. 登录 Okta 控制台 管理控制台。
  2. 选择Directory, People and Add person, 然后输入First name, Last name, Username and Primary email, 选择I will set password设置密码,然后点击保存

您已在 Okta 中成功创建用户。