如何通过terraform在应用程序客户端设置中启用“认知用户池”选项?

Kar*_*han 4 amazon-web-services terraform aws-cognito

我可以在“ supported_identity_providers”参数中指定“ Facebook”,并且可以正常工作。我尝试为支持的身份提供者参数指定名称,id和单词“ Cognito用户池”,但它始终抛出验证错误。

在此处输入图片说明

我想要由Terraform启用的箭头所指向的选项。我应将什么值传递给“ supported_identity_providers”参数?

Rav*_*car 7

简短答案

resource "aws_cognito_user_pool_client" "<name>" {
  ...
  supported_identity_providers = ["COGNITO", ...]
  ...
{
Run Code Online (Sandbox Code Playgroud)

细节

可在此处找到用于创建用户池客户端的AWS API,并在此处找到terraform文档。

两者都缺少标准提供程序(Cognito,Amazon,Google,Facebook)的默认名称。

我无法找到有关用户池客户端SupportedIdentityProviders值的默认名称的任何Amazon文档,仅是此处的AWS API文档中的一个模式。

在编写terraform代码时,我必须在AWS控制台中切换值,然后使用CLI检索值:

aws cognito-idp describe-user-pool-client --user-pool-id <pool-id> --client-id <client-id>

对于cognito该还给COGNITO社会提供商GoogleFacebookLoginWithAmazon。如果您使用的是OIDC / SAML,则它是provider name您已配置的。

  • 尽管此代码可以回答问题,但是提供有关_how_和/或_why_的其他[上下文](https://meta.stackexchange.com/q/114762),它可以解决问题,从而可以提高答案的长期价值。请记住,您将来会为读者回答问题,而不仅仅是现在问的人!请[编辑]您的答案以添加解释,并指出适用的限制和假设。在说明的地方添加文档链接也没有什么坏处。我也认为结尾应该是一个“}”。 (3认同)