跳转到内容
搜索文档

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 URLhttps://<your user pool domain>/oauth2/authorize
    • Token URL(令牌 URL)https://<your user pool domain>/oauth2/token
    • Certificate(密钥)URLhttps://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"
}

这篇文档对您有帮助吗?