使用Amazon Cognito来实现Amazon Quicksight的MFA和SSO功能。
代码示例:
1.使用Amazon Cognito创建用户池和应用客户端
import boto3
client = boto3.client('cognito-idp')
response = client.create_user_pool( PoolName='my_user_pool' )
user_pool_id = response['UserPool']['Id']
response = client.create_user_pool_client( UserPoolId=user_pool_id, ClientName='my_app_client', GenerateSecret=True, SupportedIdentityProviders=['COGNITO'], AllowedOAuthFlows=['code'], AllowedOAuthScopes=['openid'], )
app_client_id = response['UserPoolClient']['ClientId']
2.将Amazon Cognito的MFA和SSO配置应用到Amazon Quicksight
import botocore.session
session = botocore.session.Session() quicksight = session.create_client('quicksight')
response = quicksight.update_account_settings( AccountSettings={ 'AccountName': 'My Account Name', 'DefaultNamespace': 'default', 'EmailAddress': '[email protected]', 'NotificationEmail': '[email protected]', 'AwsAccountId': '123456789012', 'NamespaceInfo': { 'Name': 'default', 'CapacityRegion': 'us-east-1', }, 'QuicksightIamArn': 'arn:aws:iam::123456789012:role/MyQuicksightIAMRole', 'SessionLifetimeInMinutes': 60, 'UserId': '12345678-1234-1234-1234-123456789012', 'SSOConfiguration': { 'Enabled': True, 'IdentityProviderType': 'COGNITO', 'IdentityProviderDetails': { 'UserPoolId': user_pool_id, 'UserPoolArn': 'arn:aws:cognito-idp:us-east-1:123456789012:userpool/{}'.format(user_pool_id), 'AppClientId': app_client_id } } } )
print(response)