Skip to content

Fortified IDDocs

Rules parameters

This section covers how to configure password policies.

Use this section to configure which password rules should be applied during a password reset.

Password policies are configured by adding rule parameters to the policy configuration used by the PasswordReset module. Only the rule parameters you add will be available and verified against the new password when a user performs a password reset.

The PasswordReset module includes the policy file through rule_policies, for example "rule_policies" : "@include:rules/rules.json" in pwdreset.json.

You can use the same file structure for both a single policy and multiple policies:

  • For a single policy, configure one policy object and set default to true.
  • For multiple policies, configure several named policy objects. The active policy is selected from the session parameter password_policy.

If password_policy is missing, empty, or does not match any configured policy, the module uses the policy where default is set to true.

When multiple policies are configured, the frontend only displays the rules from the selected policy, and the backend uses that same selected policy when the password reset is submitted.

Backend validation mainly applies to rules that can be checked server-side. Rules such as repeat and potentially breach still depend on frontend behavior or external validation.

Example of a single policy configuration:

[
{
"id": "default",
"default": true,
"rules": [
{
"type": "lengthMin",
"min": 8,
"description": "password_reset.rules.lengthMin"
},
{
"type": "uppercase",
"description": "password_reset.rules.uppercase"
},
{
"type": "lowercase",
"description": "password_reset.rules.lowercase"
},
{
"type": "special",
"description": "password_reset.rules.special"
},
{
"type": "number",
"description": "password_reset.rules.number"
}
]
}
]

Example of a multiple policy configuration:

[
{
"id": "default",
"default": true,
"rules": [
{
"type": "lengthMin",
"min": 8,
"description": "password_reset.rules.lengthMin"
},
{
"type": "uppercase",
"description": "password_reset.rules.uppercase"
},
{
"type": "lowercase",
"description": "password_reset.rules.lowercase"
},
{
"type": "special",
"description": "password_reset.rules.special"
},
{
"type": "number",
"description": "password_reset.rules.number"
}
]
},
{
"id": "student",
"rules": [
{
"type": "lengthMin",
"min": 6,
"description": "password_reset.rules.lengthMin"
},
{
"type": "uppercase",
"description": "password_reset.rules.uppercase"
},
{
"type": "lowercase",
"description": "password_reset.rules.lowercase"
},
{
"type": "number",
"description": "password_reset.rules.number"
}
]
},
{
"id": "teacher",
"rules": [
{
"type": "lengthMin",
"min": 10,
"description": "password_reset.rules.lengthMin"
},
{
"type": "uppercase",
"description": "password_reset.rules.uppercase"
},
{
"type": "lowercase",
"description": "password_reset.rules.lowercase"
},
{
"type": "special",
"description": "password_reset.rules.special"
},
{
"type": "number",
"description": "password_reset.rules.number"
}
]
}
]

In this section