Saltar al contenido

Cloudformation Cognito: cómo configurar la configuración del cliente de la aplicación, el dominio y las identidades federadas a través de la plantilla SAM

Solución:

He creado dos recursos personalizados de CloudFormation para aplicar la configuración del cliente de la aplicación Cognito y el nombre de dominio. Con estos recursos, puede tener un script como este:

UserPoolTestClient:
  Type: 'AWS::Cognito::UserPoolClient'
  Properties:
    ClientName: UserPoolTestClient
    GenerateSecret: true
    UserPoolId: !Ref UserPoolTest
UserPoolTestClientSettings:
  Type: 'Custom::CognitoUserPoolClientSettings'
  Properties:
    ServiceToken: !GetAtt CloudFormationCognitoUserPoolClientSettings.Arn
    UserPoolId: !Ref UserPoolTest
    UserPoolClientId: !Ref UserPoolTestClient
    SupportedIdentityProviders:
      - COGNITO
    CallbackURL: 'https://www.amazon.com'
    LogoutURL: 'https://www.google.com'
    AllowedOAuthFlowsUserPoolClient: true
    AllowedOAuthFlows:
      - code
    AllowedOAuthScopes:
      - openid
UserPoolTestDomain:
  Type: 'Custom::CognitoUserPoolDomain'
  Properties:
    ServiceToken: !GetAtt CloudFormationCognitoUserPoolDomain.Arn
    UserPoolId: !Ref UserPoolTest
    Domain: 'userpool-test-01'

El código completo está aquí.

Parece que no hay forma de proporcionar Integración de la aplicación -> Nombre de dominio y Federación -> Proveedores de identidad a través de CloudFormation.

Encontré solo referencia para Cliente de grupo de usuarios (Configuración general -> Clientes de aplicaciones) pero no configurará Integración de la aplicación -> Configuración del cliente de la aplicación.

Si necesita automatizar el proceso de proporcionar Nombre de dominio, Proveedores de identidad y Configuración del cliente de la aplicación para el grupo de usuarios, puede hacerlo creando un script personalizado (AWS CLI) o Lambda (AWS SDK) que debe realizarse después de la implementación de la pila.

ACTUALIZAR

Verificar excelente ejemplo (respuesta a continuación) que muestra el uso de recursos personalizados de CloudFormation con Lambda.

CloudFormation ha agregado el recurso AWS :: Cognito :: UserPoolDomain para administrar el dominio del grupo de usuarios:

Type: AWS::Cognito::UserPoolDomain
Properties: 
  CustomDomainConfig: 
     CertificateArn: !Ref CertificateArn
  Domain: "your.custom.domain.com"
  UserPoolId: !Ref UserPool

Además, se ha agregado una configuración a AWS :: Cognito :: UserPoolClient:

Type: AWS::Cognito::UserPoolClient
Properties: 
  AllowedOAuthFlows: 
    - String
  AllowedOAuthFlowsUserPoolClient: Boolean
  AllowedOAuthScopes: 
    - String
  AnalyticsConfiguration: 
    AnalyticsConfiguration
  CallbackURLs: 
    - String
  ClientName: String
  DefaultRedirectURI: String
  ExplicitAuthFlows: 
    - String
  GenerateSecret: Boolean
  LogoutURLs: 
    - String
  ReadAttributes: 
    - String
  RefreshTokenValidity: Integer
  SupportedIdentityProviders: 
    - String
  UserPoolId: String
  WriteAttributes: 
    - String
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *