【问题标题】:AWS Cognito - createIdentityPool - Where to get ProviderName and ClientId?AWS Cognito - createIdentityPool - 从哪里获取 ProviderName 和 ClientId?
【发布时间】:2017-10-15 15:18:22
【问题描述】:

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

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

配置用户池

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

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

AWS 提供了一系列 API,您可以使用这些 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 为身份提供者的令牌启用。

我应该从哪里获得ProviderNameClientId

我有 vars 保存从 createUserPool()createUserPoolClient() 返回的值,但在其中看不到任何适合的值。

任何帮助表示赞赏。

【问题讨论】:

    标签: amazon-web-services aws-sdk amazon-cognito


    【解决方案1】:

    ClientId 只是您客户的唯一标识符。 ProviderName是上述格式的常量字符串,只要在合适的地方插入region和user pool id即可。

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

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

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

    【讨论】:

    • 关于 cognito 的这种设置有几点需要注意。首先,您的 UserPoolClients 是 Web 控制台 UI 中的应用程序客户端。 (这是您将获得客户端 ID 的地方)。通常,您会将您的客户端添加到您的用户池中,然后在身份池中配置您的客户端以在您的系统中承担身份验证和可选的 unathed 角色。
    猜你喜欢
    • 2019-02-03
    • 2021-11-19
    • 2018-10-08
    • 2020-09-21
    • 2021-12-09
    • 2019-10-18
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多