UserPoolProps Struct
Props for the UserPool construct.
Example
new cognito.UserPool(this, 'myuserpool', {
signInPolicy: {
allowedFirstAuthFactors: { password: true, passkey: true },
},
passkeyRelyingPartyId: 'auth.example.com',
passkeyUserVerification: cognito.PasskeyUserVerification.REQUIRED,
});
Properties
accountRecoveryAccountRecoveryaccount_recoveryAccountRecoveryaccountRecoveryAccountRecoveryAccountRecoveryAccountRecoveryAccountRecoveryAccountRecovery= AccountRecovery.PHONE_WITHOUT_MF…#default
Default: AccountRecovery.PHONE_WITHOUT_MFA_AND_EMAIL
advancedSecurityModeAdvancedSecurityModeadvanced_security_modeAdvancedSecurityModeadvancedSecurityModeAdvancedSecurityModeAdvancedSecurityModeAdvancedSecurityModeAdvancedSecurityModeAdvancedSecurityMode= no valuedeprecated#autoVerifyAutoVerifiedAttrsauto_verifyAutoVerifiedAttrsautoVerifyAutoVerifiedAttrsAutoVerifyAutoVerifiedAttrsAutoVerifyAutoVerifiedAttrs= If `signInAlias` includes email …#EMAIL and PHONE are the only available options.
default
Default: If signInAlias includes email and/or phone, they will be included in autoVerifiedAttributes by default. If absent, no attributes will be auto-verified.
customAttributes{ [key: string]: ICustomAttribute }custom_attributestyping.Mapping[str, ICustomAttribute]customAttributesMap<String, ICustomAttribute>CustomAttributesIDictionary<string, ICustomAttribute>CustomAttributes*map[string]ICustomAttribute= No custom attributes.#customSenderKmsKeyIKeyRefcustom_sender_kms_keyIKeyRefcustomSenderKmsKeyIKeyRefCustomSenderKmsKeyIKeyRefCustomSenderKmsKeyIKeyRef= no key ID configured#customThreatProtectionModeCustomThreatProtectionModecustom_threat_protection_modeCustomThreatProtectionModecustomThreatProtectionModeCustomThreatProtectionModeCustomThreatProtectionModeCustomThreatProtectionModeCustomThreatProtectionModeCustomThreatProtectionMode= no value#This feature only functions if your FeaturePlan is set to FeaturePlan.PLUS
deletionProtectionbooleandeletion_protectionbooldeletionProtectionBooleanDeletionProtectionboolDeletionProtection*bool= false#deviceTrackingDeviceTrackingdevice_trackingDeviceTrackingdeviceTrackingDeviceTrackingDeviceTrackingDeviceTrackingDeviceTrackingDeviceTracking= see defaults on each property of…#default
Default: see defaults on each property of DeviceTracking.
emailUserPoolEmailemailUserPoolEmailemailUserPoolEmailEmailUserPoolEmailEmailUserPoolEmail= cognito will use the default ema…#default
Default: cognito will use the default email configuration
enableSmsRolebooleanenable_sms_roleboolenableSmsRoleBooleanEnableSmsRoleboolEnableSmsRole*bool= CDK will determine based on othe…#When left unspecified, CDK will determine based on other properties if a role is needed or not.
default
Default: CDK will determine based on other properties of the user pool if an SMS role should be created or not.
featurePlanFeaturePlanfeature_planFeaturePlanfeaturePlanFeaturePlanFeaturePlanFeaturePlanFeaturePlanFeaturePlan= FeaturePlan.ESSENTIALS for a new…#This parameter determines the eligibility of the user pool for features like managed login, access-token customization, and threat protection.
default
Default: FeaturePlan.ESSENTIALS for a newly created user pool; FeaturePlan.LITE otherwise
keepOriginalKeepOriginalAttrskeep_originalKeepOriginalAttrskeepOriginalKeepOriginalAttrsKeepOriginalKeepOriginalAttrsKeepOriginalKeepOriginalAttrs= Nothing is kept.#EMAIL and PHONE are the only available options.
lambdaTriggersUserPoolTriggerslambda_triggersUserPoolTriggerslambdaTriggersUserPoolTriggersLambdaTriggersUserPoolTriggersLambdaTriggersUserPoolTriggers= No Lambda triggers.#mfaMessagestringmfa_messagestrmfaMessageStringMfaMessagestringMfaMessage*string= 'Your authentication code is {##…#Use '{####}' in the template where Cognito should insert the verification code.
default
Default: 'Your authentication code is {####}.'
mfaSecondFactorMfaSecondFactormfa_second_factorMfaSecondFactormfaSecondFactorMfaSecondFactorMfaSecondFactorMfaSecondFactorMfaSecondFactorMfaSecondFactor= { sms: true, otp: false, email: …#Ignored if mfa is set to OFF.
default
Default: { sms: true, otp: false, email: false }, if mfa is set to OPTIONAL or REQUIRED. { sms: false, otp: false, email:false }, otherwise
passkeyRelyingPartyIdstringpasskey_relying_party_idstrpasskeyRelyingPartyIdStringPasskeyRelyingPartyIdstringPasskeyRelyingPartyId*string= No authentication domain#notes
Under the following conditions, the passkey relying party ID must be the fully-qualified domain name of your custom domain:
- The user pool is configured for passkey authentication.
- The user pool has a custom domain, whether or not it also has a prefix domain.
- Your application performs authentication with managed login or the classic hosted UI.
passkeyUserVerificationPasskeyUserVerificationpasskey_user_verificationPasskeyUserVerificationpasskeyUserVerificationPasskeyUserVerificationPasskeyUserVerificationPasskeyUserVerificationPasskeyUserVerificationPasskeyUserVerification= Cognito default setting is Passk…#You can override other MFA options and require passkey MFA, or you can set it as preferred. When passkey MFA is preferred, the hosted UI encourages users to register a passkey at sign-in.
default
Default: Cognito default setting is PasskeyUserVerification.PREFERRED
passwordPolicyPasswordPolicypassword_policyPasswordPolicypasswordPolicyPasswordPolicyPasswordPolicyPasswordPolicyPasswordPolicyPasswordPolicy= see defaults on each property of…#default
Default: see defaults on each property of PasswordPolicy.
removalPolicyRemovalPolicyremoval_policyRemovalPolicyremovalPolicyRemovalPolicyRemovalPolicyRemovalPolicyRemovalPolicyRemovalPolicy= RemovalPolicy.RETAIN#selfSignUpEnabledbooleanself_sign_up_enabledboolselfSignUpEnabledBooleanSelfSignUpEnabledboolSelfSignUpEnabled*bool= false#To configure self sign-up configuration use the userVerification property.
signInAliasesSignInAliasessign_in_aliasesSignInAliasessignInAliasesSignInAliasesSignInAliasesSignInAliasesSignInAliasesSignInAliases= { username: true }#notes
Allows either username with aliases OR sign in with email, phone, or both.
Read the sections on usernames and aliases to learn more - https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html
To match with 'Option 1' in the above link, with a verified email, this property should be set to { username: true, email: true }. To match with 'Option 2' in the above link with both a verified email and phone number, this property should be set to { email: true, phone: true }.
signInCaseSensitivebooleansign_in_case_sensitiveboolsignInCaseSensitiveBooleanSignInCaseSensitiveboolSignInCaseSensitive*bool= true#For example, when this option is set to false, users will be able to sign in using either MyUsername or myusername.
signInPolicySignInPolicysign_in_policySignInPolicysignInPolicySignInPolicySignInPolicySignInPolicySignInPolicySignInPolicy= see defaults on each property of…#default
Default: see defaults on each property of SignInPolicy.
smsRoleIRoleRefsms_roleIRoleRefsmsRoleIRoleRefSmsRoleIRoleRefSmsRoleIRoleRef= a new IAM role is created.#smsRoleExternalIdstringsms_role_external_idstrsmsRoleExternalIdStringSmsRoleExternalIdstringSmsRoleExternalId*string= No external id will be configure…#Learn more about ExternalId here - https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html
This property will be ignored if smsRole is not specified.
default
Default: No external id will be configured.
snsRegionstringsns_regionstrsnsRegionStringSnsRegionstringSnsRegion*string= The same region as the user pool…#This property will do nothing if SMS configuration is not configured.
default
Default: The same region as the user pool, with a few exceptions - https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html#user-pool-sms-settings-first-time
standardAttributesStandardAttributesstandard_attributesStandardAttributesstandardAttributesStandardAttributesStandardAttributesStandardAttributesStandardAttributesStandardAttributes= All standard attributes are opti…#Read more on attributes here - https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html
default
Default: All standard attributes are optional and mutable.
standardThreatProtectionModeStandardThreatProtectionModestandard_threat_protection_modeStandardThreatProtectionModestandardThreatProtectionModeStandardThreatProtectionModeStandardThreatProtectionModeStandardThreatProtectionModeStandardThreatProtectionModeStandardThreatProtectionMode= StandardThreatProtectionMode.NO_…#This feature only functions if your FeaturePlan is set to FeaturePlan.PLUS
default
Default: StandardThreatProtectionMode.NO_ENFORCEMENT
userInvitationUserInvitationConfiguser_invitationUserInvitationConfiguserInvitationUserInvitationConfigUserInvitationUserInvitationConfigUserInvitationUserInvitationConfig= see defaults in UserInvitationCo…#default
Default: see defaults in UserInvitationConfig.
userPoolNamestringuser_pool_namestruserPoolNameStringUserPoolNamestringUserPoolName*string= automatically generated name by …#default
Default: automatically generated name by CloudFormation at deploy time.
userVerificationUserVerificationConfiguser_verificationUserVerificationConfiguserVerificationUserVerificationConfigUserVerificationUserVerificationConfigUserVerificationUserVerificationConfig= see defaults in UserVerification…#Enable or disable self sign-up via the selfSignUpEnabled property.
default
Default: see defaults in UserVerificationConfig.