| Policy | Legacy Behavior | Flexible Password Policy Behavior |
|---|---|---|
| Password strength | Choose from five preset levels of complexity. Silently truncates passwords beyond maximum length. | Customize all complexity requirements independently. Choose behavior for passwords beyond maximum length (truncate or error). |
| Password history | Configure the number of previous passwords that a user cannot reuse, up to 24. | Retains equivalent functionality. |
| Password dictionary | Uses one built-in dictionary of 10,000 common words. | Choose between two built-in dictionaries of 10,000 or 100,000 common words. |
| Block personal data | Blocks a fixed set of user data fields. | Fully customize which fields to block, up to 12. |
options objects and values with a single, configurable password_options object.
Prerequisites
The following requirements are necessary to use the Flexible Password Policy:-
You must use a database connection with the Auth0 user store (
"strategy": "auth0"). - The tenant must use Universal Login.
- The tenant must not have a custom password reset screen configured.
-
If using the Management API, your access token must have the
read:connectionsandupdate:connectionsscopes. Without them, you cannot retrieve or modify the database connection’s configuration, respectively.
Enable the Flexible Password Policy
You can enable the Flexible Password Policy using the Auth0 Dashboard or the Management API.- Auth0 Dashboard
- Management API
To enable the Flexible Password Policy from the Auth0 Dashboard:
After you modify these settings, click Save.
- Go to Auth0 Dashboard > Authentication > Database, and select the name of the connection you want to edit.
- Select the Authentication Methods tab. Then, in the Password section, select Configure to open the Password panel.
- In the Flexible Password Policy banner at the top, select Activate, then select Confirm.
Policy settings
Policy settings
The Policy section contains the following settings:
- Password for login: Allow or block users from logging in with a password.
- Password on signup: Allow or block users from signing up with a password.
- Self-service change password: Allow or block users from changing their own passwords.
- Support users without a password: Toggle whether users can be created without a password via the Management and Authentication APIs.
Composition settings
Composition settings
The Composition section contains the following settings:
- Minimum password length: Enter the minimum password length.
-
Additional composition rules
- Required password options: At least one uppercase letter, at least one lowercase letter, at least one number, at least one special character, and/or at least 3 of 4 of the previous character types.
- Block three or more sequential characters, like ABC or 321
- Block three or more identical characters in a row, like 000
- Maximum password length exceeded: For passwords longer than 72 bytes, choose between Truncate password (allow longer passwords but only encrypt the first 72 bytes) or Show error (reject passwords longer than 72 bytes).
Security settings
Security settings
The Security section contains the following settings:
-
Password history: Prevent password reuse.
- Password history size: Choose the number of previous passwords that users cannot reuse.
-
Password dictionary: Prevent users from using passwords in the specified dictionary or in your additional dictionary entries.
- Default dictionary: Choose between the 10,000 common words or 100,000 common words dictionaries.
- Additional dictionary entries: Enter additional prohibited passwords, one per line.
-
Block profile data in passwords: Prevent users from setting passwords that contain the user’s profile data.
- Select profile fields to block: Choose from eight common default fields to block.
- Additional profile fields to block: Enter additional profile fields to block.
Revert to the legacy password policies
To revert back to the legacy password policies, you need to use the Management API. Follow the same process as above to update the database connection with its originaloptions, removing the entire password_options object.