AWS Cognito - createIdentityPool - 在哪里获取 ProviderName 和 ClientId?

问题描述 投票:0回答:2

我正在尝试使用 AWS Cognito 来帮助支持我的应用程序中的多租户。

https://aws.amazon.com/blogs/apn/managing-saas-users-with-amazon-cognito/

配置用户池

假设您要将单个用户池与每个租户关联, 您需要引入配置自动化,这将创建 注册过程中租户的用户池。这也将 需要自动化配置所有其他移动部件 Amazon Cognito 声明用户池并将其与其他用户池关联 Amazon Cognito 构造和安全策略。

这里的基本步骤是首先为 租户并应用任何特定于租户的自定义或策略(这些 对于所有租户来说通常都是相同的)。然后,你需要你的 自动化配置和配置身份池。最后,你会 必须将身份池与新创建的用户池关联。 这个过程比这更复杂一些,但这些是关键 当您考虑如何添加此内容时需要牢记的概念 租户创建生命周期的自动化。

AWS 提供了一系列 API,您可以使用它们来实施您的 配置自动化模型。这些 API 可用于许多 不同的语言和环境。

到目前为止,我已经能够使用 SDK 创建许多零碎的东西,但我正在努力解决

createIdentityPool ()
特别是
CognitoIdentityProviders
该文档指出 CognitoIdentityProviders 应包含...

ProviderName —(字符串)Amazon Cognito 的提供商名称 身份用户池。例如, cognito-idp.us-east-1.amazonaws.com/us-east-1_123456789.

ClientId —(字符串)Amazon Cognito 身份用户的客户端 ID 泳池。

ServerSideTokenCheck —(布尔值)如果服务器端令牌验证则为 TRUE 已为身份提供商的令牌启用。

我应该从哪里获取

ProviderName
ClientId

我有变量保存从

createUserPool()
createUserPoolClient()
返回的值,但看不到其中任何适合的内容。

任何帮助表示赞赏。

amazon-web-services aws-sdk amazon-cognito
2个回答
3
投票

ClientId 只是您客户的唯一标识符。 ProviderName 是上述格式的常量字符串,只需在适当的地方插入区域和用户池 id 即可。

最简单的方法是通过 Cognito 联合身份控制台。它只接受用户池 ID 和客户端 ID,这是您在 Cognito 用户池控制台中创建它们时获得的。

如果必须从 SDK 创建身份池,您可以从 Cognito 用户池控制台获取这些值。只需查找有问题的池和客户端即可。

如果无法使用控制台,您可以调用 ListUserPools 和 ListUserPoolClients 来获取正确的 id。


1
投票

我进行了搜索,但找不到找到或格式化

ProviderName
的明确方法。

我最终从

CloudFormation
示例中弄清楚了这里

ProviderName
Cognito
的情况下具有以下简单的结构:

cognito-idp.{region}.amazonaws.com/{user_pool_id}

我还发现有必要附加用户池客户端 ID 的情况,如下所示:

cognito-idp.{region}.amazonaws.com/{user_pool_id}:{user_pool_client_id}

© www.soinside.com 2019 - 2024. All rights reserved.