Aller au contenu

Règles de mot de passe

Ces routes permettent de consulter et d'administrer la politique de mot de passe de Maarch Courrier. Les règles actives sont appliquées lors de la modification ou de la réinitialisation d'un mot de passe, ainsi que pendant l'authentification pour le verrouillage et le renouvellement.

Règles disponibles

Libellé Valeur Effet lorsque la règle est activée
minLength Nombre de caractères Impose une longueur minimale au mot de passe
complexityUpper Non utilisée Impose au moins une lettre majuscule
complexityNumber Non utilisée Impose au moins un chiffre
complexitySpecial Non utilisée Impose au moins un caractère qui n'est ni une lettre ni un chiffre
lockAttempts Nombre de tentatives Verrouille le compte après ce nombre d'échecs d'authentification
lockTime Nombre de minutes Définit la durée du verrouillage après dépassement du nombre de tentatives
historyLastUse Nombre de mots de passe Interdit la réutilisation des derniers mots de passe enregistrés
renewal Nombre de jours Impose le renouvellement du mot de passe après cette durée

Une règle n'est appliquée que si sa propriété enabled vaut true. Les règles lockAttempts et lockTime doivent être activées conjointement pour appliquer un verrouillage temporaire.

Consulter les règles de mot de passe

Route

GET /rest/passwordRules

Cette route est accessible sans authentification afin que les écrans de connexion, d'activation et de réinitialisation puissent afficher les contraintes applicables.

Retour

Code HTTP Type Description
200 object Liste complète des règles de mot de passe

Données

Valeur Type Description
rules array Règles configurées
rules[].id integer Identifiant technique de la règle
rules[].label string Libellé technique de la règle
rules[].value integer Valeur numérique associée à la règle
rules[].enabled boolean Indique si la règle est active

Exemple

{
  "rules": [
    {
      "id": 1,
      "label": "minLength",
      "value": 12,
      "enabled": true
    },
    {
      "id": 2,
      "label": "complexityUpper",
      "value": 0,
      "enabled": true
    },
    {
      "id": 3,
      "label": "complexityNumber",
      "value": 0,
      "enabled": true
    },
    {
      "id": 4,
      "label": "complexitySpecial",
      "value": 0,
      "enabled": true
    },
    {
      "id": 5,
      "label": "lockAttempts",
      "value": 3,
      "enabled": true
    },
    {
      "id": 6,
      "label": "lockTime",
      "value": 5,
      "enabled": true
    },
    {
      "id": 7,
      "label": "historyLastUse",
      "value": 2,
      "enabled": true
    },
    {
      "id": 8,
      "label": "renewal",
      "value": 90,
      "enabled": true
    }
  ]
}

Modifier les règles de mot de passe

Route

PUT /rest/passwordRules

La requête doit être authentifiée et l'appelant doit disposer du privilège admin_password_rules.

Authorization: Bearer <token>

Paramètres

Body

Valeur Type Obligatoire Description
rules array Oui Liste non vide des règles à modifier
rules[].id integer Oui Identifiant technique de la règle
rules[].label string Oui Libellé technique. Il doit correspondre à l'identifiant fourni
rules[].value integer Oui Nouvelle valeur numérique de la règle
rules[].enabled boolean Oui Active ou désactive la règle

Il est possible de transmettre seulement les règles à modifier. Les règles absentes conservent leur configuration actuelle.

Exemple
{
  "rules": [
    {
      "id": 1,
      "label": "minLength",
      "value": 12,
      "enabled": true
    },
    {
      "id": 4,
      "label": "complexitySpecial",
      "value": 0,
      "enabled": true
    }
  ]
}

Retour

Code HTTP Type Description
200 object La requête de modification a été traitée
400 object La propriété rules est absente, vide ou n'est pas un tableau
401 object Authentification absente ou invalide
403 object L'appelant ne dispose pas du privilège admin_password_rules

Exemple

{
  "success": "success"
}

Les entrées dont value, label ou enabled possède un type invalide sont ignorées. Une entrée est également ignorée si son couple id/label ne correspond pas à une règle existante. La route renvoie néanmoins un code 200 lorsque la propriété rules est un tableau non vide ; utilisez ensuite GET /rest/passwordRules pour vérifier les valeurs enregistrées.

Une requête traitée ajoute une entrée à l'historique d'administration des règles de mot de passe.