通过Python SDK更改AWS Cognitio“已启用的身份提供程序”

时间:2018-10-18 20:23:48

标签: amazon-web-services boto3 amazon-cognito

我想通过Python SDK恢复AWS Cognito来更改一个设置。我可以通过“ Cognito->用户池-> App Client设置-> Cognito用户池”在AWS Web Console中更改设置(参见图片)

这是我的代码

client = boto3.client('cognito-idp')

client.update_user_pool_client(
    UserPoolId=USER_POOL_ID,
    ClientId=user_pool_client_id,
    SupportedIdentityProviders=[
        'CognitoUserPool'
    ]
)

我收到的错误是

An error occurred (InvalidParameterException) when calling the
UpdateUserPoolClient operation: The provider CognitoUserPool
does not exist for User Pool xxxxxx

目前尚不清楚我应该为SupportedIdentityProviders传递哪些字符串值。我看到的唯一提示是来自https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-app-idp-settings.html

--supported-identity-providers '["MySAMLIdP", "LoginWithAmazon"]'

我什至不能100%地确定SupportedIdentityProviders是否与我要更改的设置有关,但是在文档中找不到任何说明。

1 个答案:

答案 0 :(得分:0)

要传递的正确值为COGNITO

client.update_user_pool_client(
    UserPoolId=USER_POOL_ID,
    ClientId=user_pool_client_id,
    SupportedIdentityProviders=[
        'COGNITO'
    ]
)

我只是通过查看其他人的CloudFormation自定义资源https://github.com/rosberglinhares/CloudFormationCognitoCustomResources/blob/master/SampleInfrastructure.template.yaml#L105

的源代码发现了这一点

我从官方的AWS Docs / Boto3文档中找不到正确的解决方案。如果有人知道SupportedIdentityProviders的可能值记录在何处,请发表评论。