跳转到内容
搜索文档

Amazon Cognito

最后更新 查看 MarkdownAgent 设置

Amazon Cognito 为 Web 和移动应用的终端用户提供 SSO 身份管理。您可以将 Amazon Cognito 作为 Cloudflare One 的 OIDC 身份提供商进行集成。

前提条件

设置 Amazon Cognito (OIDC)

1. 获取 Amazon Cognito 设置

设置集成需要以下 Amazon Cognito 值:

  • 应用(客户端)ID
  • 客户端密钥
  • Auth URL
  • Token URL
  • Certificate(密钥)URL

获取这些值的步骤:

  1. 登录您的 Amazon Cognito 管理门户。

  2. 前往 User pools(用户池),选择您的用户池。

  3. 选择 App integration(应用集成) 选项卡。

  4. 在 Domain(域) 下,复制您的用户池域,或配置新域 ↗。

  5. 记录以下 Amazon Cognito OIDC 端点 ↗:

    • Auth URL:https://<your user pool domain>/oauth2/authorize
    • Token URL(令牌 URL):https://<your user pool domain>/oauth2/token
    • Certificate(密钥)URL:https://cognito-idp.<region>.amazonaws.com/<your user pool ID>/.well-known/jwks.json(即 User pool overview(用户池概览) 中显示的 Token signing key URL(令牌签名密钥 URL)。)
  6. 在 App clients(应用客户端列表) 下,选择 Create app client(创建应用客户端)。

  7. 对于 App type(应用类型),选择 Confidential client(机密客户端)。

  8. 为您的应用输入 App client name(应用客户端名称)。

  9. 确保已选中 Generate a client secret(生成客户端密钥)。

  10. 配置以下 Hosted UI settings(托管 UI 设置):

    1. 在 Allowed callback URLs(允许的回调 URL) 中,添加以下 URL:

      https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback

      您可以在 Cloudflare 仪表板 ↗ 的 Settings(设置)> Team name and domain(团队名称和域名)> **Team name(团队名称)**下找到您的团队名称。

    2. 选择与此应用客户端配合使用的 Identity providers(身份提供商)。至少启用 **Cognito user pool(Cognito 用户池)**作为提供商。

    3. 对于 OAuth 2.0 grant types(OAuth 2.0 授权类型),选择 Authorization code grant(授权码授权)。

    4. 对于 OpenID Connect scopes(OpenID Connect 范围),选择 OpenID、**Email(电子邮件)**和 Profile(个人资料)。

  11. 选择 Create app client(创建应用客户端)。

  12. 接下来,选择您刚创建的应用客户端。

  13. 复制其 Client ID(客户端 ID) 和 Client secret(客户端密钥)。

2. 将 Amazon Cognito 添加为身份提供商

  1. 在 Cloudflare 仪表板 ↗中,前往 Zero Trust > Integrations(集成) > Identity providers(身份提供商)。

  2. 在 Your identity providers(您的身份提供商) 下,选择 Add new identity provider(添加新的身份提供商)。

  3. 选择 OpenID Connect。

  4. 为您的身份提供商命名,并使用从 Amazon Cognito 获取的信息填写必填字段。

  5. (可选)如果您的 IdP 支持该协议,请启用密钥交换验证(PKCE) ↗。所有登录尝试都将执行 PKCE。

  6. (可选)在 Optional configurations(可选配置) 下,输入您希望添加到用户身份的自定义 OIDC 声明。

  7. 选择 Save(保存)。

要测试连接是否正常,请选择 Test(测试)。

API 配置示例

{
	"config": {
		"client_id": "<your client id>",
		"client_secret": "<your client secret>",
		"auth_url": "https://<your user pool domain>/oauth2/authorize",
		"token_url": "https://<your user pool domain>/oauth2/token",
		"certs_url": "https://cognito-idp.<region>.amazonaws.com/<your user pool ID>/.well-known/jwks.json",
		"scopes": ["openid", "email", "profile"],
		"claims": ["sub", "cognito:username", "name", "cognito:groups"]
	},
	"type": "oidc",
	"name": "Amazon Cognito example"
}

这篇文档对您有帮助吗?