3

CloudFormationの構文を使用してUserPoolを作成しようとしていますが、メールアドレスを登録してプールを作成するために設定する必要のあるプロパティを見つけることができません。これをどのように指定するのですか?AWS Cognito - CloudFormationを使用してメールアドレスを登録できるプールを作成するにはどうすればいいですか?

enter image description here

あなたはプールがユーザー名で作成され、デフォルトでは、スクリーンショットで見ることができるように。

ここに私の現在のプール設定があります。

MyPool: 
    Type: "AWS::Cognito::UserPool" 
    Properties: 
    Schema: 
     - Name: sub 
     StringAttributeConstraints: 
      MinLength: '1' 
      MaxLength: '2048' 
     DeveloperOnlyAttribute: false 
     Required: true 
     AttributeDataType: String 
     Mutable: false 
     - Name: name 
     StringAttributeConstraints: 
      MinLength: '0' 
      MaxLength: '2048' 
     DeveloperOnlyAttribute: false 
     Required: false 
     AttributeDataType: String 
     Mutable: true 
     - Name: updated_at 
     NumberAttributeConstraints: 
      MinValue: '0' 
     DeveloperOnlyAttribute: false 
     Required: false 
     AttributeDataType: Number 
     Mutable: true 
    UserPoolName: ${self:provider.environment.PARTNER_POOL} 
    EmailVerificationMessage: 'Please click the link below to verify your email address. 
     {####} ' 
    EmailVerificationSubject: Your verification link 
    SmsAuthenticationMessage: 'Your authentication code is {####}. ' 
    DeviceConfiguration: 
     ChallengeRequiredOnNewDevice: false 
     DeviceOnlyRememberedOnUserPrompt: false 
    AdminCreateUserConfig: 
     InviteMessageTemplate: 
     EmailMessage: 'Your username is {username} and temporary password is {####}. ' 
     EmailSubject: Your temporary password 
     SMSMessage: 'Your username is {username} and temporary password is {####}. ' 
     UnusedAccountValidityDays: 7 
     AllowAdminCreateUserOnly: false 
    EmailConfiguration: {} 
    AutoVerifiedAttributes: 
     - email 
    Policies: 
     PasswordPolicy: 
     RequireLowercase: false 
     RequireSymbols: false 
     RequireNumbers: true 
     MinimumLength: 8 
     RequireUppercase: false 
    AliasAttributes: 
     - email 
+0

これを行うには2通りの方法があります。 1つは代理ユーザー名(uuidsとして)を作成し、エイリアスとして電子メールを使用することです。もう1つの方法は、電子メールアドレスをユーザー名として入力し、Cognitoがその名前を解決する方法です。あなたはどちらを試みていますか? –

+1

ユーザー名としてのメールは最良のアプローチのように思えます。ありがとう! –

答えて

5

新しいサインアップフローオプションで、ユーザのプールを設定する機能はまだCloudFormationを介してサポートされていません。電子メールまたは電話番号のみのオプションを指定するためのパラメータはUsernameAttributesです。

CloudFormationでこれをサポートする機能リクエストに+1を追加します。

+3

これに関するアップデートはありますか?周りにはない? Serverless CLIを使用してCloudformを使用して自分のユーザープールを処理しようとしています。 – tallen11

-1

AliasAttributesを設定する必要があります。ここではサンプルCloudFormationテンプレート

AWS::Cognito::UserPool -> AliasAttributes

AWSTemplateFormatVersion: '2010-09-09' 
Resources: 
    UserPool: 
    Type: AWS::Cognito::UserPool 
    Properties: 
     AliasAttributes: 
     - email 
     UserPoolName: 
     Ref: AWS::StackName 
+0

私はこのプロパティが設定されており、サインアップ時に設定することができますが、プールが「電子メールまたはモバイル番号サインアップ」モードになることはなく、サインアップ時にユーザー名が必要です。現在のところ、私はユーザー名としてuuidを提供していますが、私はベストプラクティスを確信していません。 –

+0

次に、電子メールが「AutoVerifiedAttributes」の1つであることを指定する必要があります。 –

+0

@TrentBartlemすでに設定されています。私は使用している設定でOPを更新しました。 –