UserPoolIdentityProvider se agregó en octubre de 2019, documentos oficiales .
Su CloudFormation entonces se vería algo así como
CognitoUserPoolIdentityProvider: Type: AWS::Cognito::UserPoolIdentityProvider Properties: ProviderName: Google AttributeMapping: email: emailAddress ProviderDetails: client_id: <yourclientid>.apps.googleusercontent.com client_secret: <yourclientsecret> authorize_scopes: email openid ProviderType: Google UserPoolId: Ref: CognitoUserPoolParece que muchos detalles de Cognito no son compatibles con Cloudformation en este momento, pero hay formas de lograr lo que desea después de que la pila se activa, por ejemplo, usando Lambdas.
Vea las siguientes respuestas:
Puede lograr esto usando la función Lambda como recursos personalizados de Cloudformation. He creado recursos personalizados para permitir la creación de dominios de grupos de usuarios, configuraciones de clientes y proveedores de identidad en este repositorio .
Tendrá algo como esto para crear un proveedor de identidad, por ejemplo, Facebook
FacebookIdp: Type: 'Custom::${self:service}-${self:provider.stage}-CUPIdentityProvider' DependsOn: - CFNSendResponseLambdaFunction - CUPIdentityProviderLambdaFunction Properties: ServiceToken: Fn::GetAtt: [CUPIdentityProviderLambdaFunction, Arn] UserPoolId: Ref: AppUserPool ProviderName: Facebook ProviderType: Facebook Client_id: 'YourFacebookAppID' Client_secret: 'YourFacebookAppSecert' Authorize_scopes: 'public_profile,email'Y luego habilite ese proveedor de identidad en la configuración del cliente del grupo de usuarios
AppUserPoolClientSettings: Type: 'Custom::${self:service}-${self:provider.stage}-CUPClientSettings' DependsOn: - CFNSendResponseLambdaFunction - CUPClientSettingsLambdaFunction - FacebookIdp Properties: ServiceToken: Fn::GetAtt: [ CUPClientSettingsLambdaFunction, Arn] UserPoolId: Ref: AppUserPool UserPoolClientId: Ref: AppUserPoolClient SupportedIdentityProviders: - COGNITO - Facebook CallbackURL: 'https://www.yourdomain.com/callback' ##Replace this with your app callback url LogoutURL: 'https://www.yourdomain.com/logout' ##Replace this with your app logout url AllowedOAuthFlowsUserPoolClient: true AllowedOAuthFlows: - code AllowedOAuthScopes: - openidTenga en cuenta que este repositorio se crea con un marco sin servidor ; si desea crearlo con pilas puras de formación en la nube, utilice el código del archivo CUPIdentityProvider.js para crear su propio recurso personalizado.