Intégrer l'Authentification par Mot de Passe
Découvrez comment ajouter l'authentification par mot de passe à une Organisationdirectement dans votre application. De l'activation de la connexion par mot de passe à la connexion finale
- Quickstart
- 45 min
L'authentification par mot de passe est un élément clé de la sécurité en ligne depuis de nombreuses années. Grâce à des techniques cryptographiques avancées telles que le hachage et le salage, les mots de passe ont été utilisés pour protéger les informations confidentielles des utilisateurs. Cependant, nous ne nous contentons pas de suivre les normes établies. Nous avons cherché à améliorer la sécurité et l'expérience des utilisateurs en introduisant des méthodes modernes. Notre objectif est de proposer des approches plus sûres et de repenser l'utilisation des mots de passe traditionnels.
Avec la Password Connection, Cryptr vous fournit :
- Une analyse de la force de l'algorithme du mot de passe Zxcvbn
- Une gestion des mots de passe avec durée de vie
Pour commencer
Créez votre compte Cryptr gratuitement maintenant, vous aurez ainsi les 3 éléments requis pour suivre ce guide :
- Clé d’API : Vous obtiendrez un
client_id
et unclient_secret
. Vous pouvez lire notre guide pour apprendre comment vous authentifier avec ces éléments pour utiliser l’API Cryptr. - Organization : Vous créerez votre première organisation, qui représente par exemple votre client et qui peut même être vous même pour un 1er test. En savoir plus sur l’organisation.
- Redirection : Également appelée
redirect_uri
, c’est l’URL vers laquelle votre utilisateur sera redirigé après la réussite de son authentification.
1. Activer une connexion de mot de passe pour une organisation
Afin d'activer le Cryptr Password, vous devez activer une Password Connection pour l'organisation que vous avez précédemment créée dans votre tableau de bord.
Rendez-vous sur la page dédiée à l'Organisation pour laquelle vous souhaitez activer la Connexion Password. Vous pouvez sélectionner l’organisation via la barre de navigation latérale du répertoire des utilisateurs à gauche de votre écran.
Vous pouvez maintenant utiliser les points de terminaison de mot de passe dans votre application.
Il est possible de personnaliser les paramètres du mot de passe en cliquant sur « Password Connection » dans votre tableau de bord.
2. Demander un nouveau mot de passe avec un MagicLink
Tout d'abord, vous devez bien sûr créer un mot de passe pour votre utilisateur.
Premièrement, valider la boîte mail avec un magic link
Il est important de vérifier la boîte mail de l'utilisateur avant de le laisser choisir son mot de passe. Si l'utilisateur a oublié son mot de passe, et que l'adresse e-mail n'est pas correcte, le compte sera verrouillé. Pour lancer le processus de création d'un nouveau mot de passe à l'aide d'un magic link, vous devez déclencher une demande de mot de passe pour l'utilisateur.
- cURL
curl -X POST ${cryptr_service_url}/api/v2/password-request \
-d user_email="john@communitiz-app.com" \
-d redirect_uri=${redirect_uri} \
-d find_or_create_user=true
Avec cette requête API, vous obtiendrez un magic link. Par défaut, Cryptr enverra le mail directement à l'utilisateur mais vous pouvez choisir de le faire vous-même. Une fois que vos utilisateurs auront cliqué sur ce lien magique, nous utiliserons le redirect_uri
fourni pour rediriger l'utilisateur. Après la redirection, vous obtiendrez un password_code
qui sera utilisé pour créer un nouveau mot de passe. L'utilisateur devra alors entrer un nouveau mot de passe. Envoyez ce nouveau mot de passe et le password_code
à notre prochain point d'API.
Notez qu'il existe une option find_or_create_user
. Grâce à cette option, vous pouvez demander la création de l'utilisateur au moment de la création du mot de passe. Pour ce faire, mettez cette option à true
. Si vous ne souhaitez pas créer un utilisateur en même temps que le mot de passe, laissez cette option à false
ou laissez-la vide. La valeur par défaut est false
.
Deuxièmement, créez le nouveau mot de passe à partir de la boîte mail validée.
Maintenant que vous avez le password_code
de la boîte mail validée, votre utilisateur peut choisir son mot de passe.
- cURL
curl -X POST ${cryptr_service_url}/api/v2/password \
-d user_email="john@communitiz-app.com" \
-d plain_text="2vK79^41aokzi6lc8" \
-d password_code="9DGykvCVPZDEZ1rD8pie7xl8s4fQtG" \
-d org_domain="communitiz-app"
En utilisant la requête de Création d'un nouveau mot de passe
, vous obtiendrez un code
. Vous pouvez ensuite consommer ce code
avec une requête POST vers ${cryptr_service_url}/oauth/token
pour récupérer les tokens associés. Ces jetons contiennent à la fois les droits d'accès et l'identité de l'utilisateur.
Avec le code mot de passe password_code
, vous aurez le droit de créer un nouveau mot de passe pour votre utilisateur.
Alors qu'avec le code d'autorisation code
, vous pouvez récupérer les jetons finaux, qui contiennent les jetons d'accès et d'identité de l'utilisateur.
Créer le nouveau mot de passe directement sans vérification par email
Si vous le souhaitez, vous pouvez créer un mot de passe pour vos utilisateurs sans avoir à vérifier leur boîte mail. Pour ce faire, utilisez le code ci-dessous :
- cURL
curl -X POST ${cryptr_service_url}/api/v2/password \
-d user_email="john@communitiz-app.com" \
-d plain_text="2vK79^41aokzi6lc8" \
-d org_domain="communitiz-app"
Maintenant que vos utilisateurs ont leurs mots de passe, vous pouvez gérer leurs sessions en utilisant le password challenge.
Cryptr sécurise la connexion en générant un challenge de mot de passe en utilisant l'adresse email
et le mot de passe
fournis par l'utilisateur. Si le challenge est réussi, un token d'authentification est généré, permettant à l'utilisateur d'accéder au service. Si le mot de passe a expiré, Cryptr fournit un code
pour demander un nouveau mot de passe. Sinon, l'accès est refusé.
3. Se connecter avec un mot de passe existant
- cURL
curl -X POST ${cryptr_service_url}/api/v2/password-challenge \
-d user_email="emilie@communitiz-app.co" \
-d password="2vK79^41aokzi6lc8"
Le domaine d'email du user_email
est utilisé pour récupérer le domaine de votre organisation mais vous pouvez également utiliser ce point d'API avec org_domain
comme paramètre.
Challenge du mot de passe à l'aide du domaine de l'Organisation
Password Challenge avec Org Domain
Cette requête vous aidera à challenger le mot de passe si vous ne pouvez pas utiliser uniquement le user_email
.
- cURL
curl -X POST ${cryptr_service_url}/api/v2/password-challenge \
-d user_email="emilie@communitiz-app.co" \
-d org_domain=${org_domain} \
-d plain_text="2vK79^41aokzi6lc8"
Cet appel API prend une adresse e-mail et un mot de passe en texte clair pour créer un challenge de mot de passe, il vérifie que la personne est autorisée à accéder au service.
Nous utilisons l'email pour trouver l'utilisateur, le domaine de l'email aide Cryptr à trouver l'organisation associée, c'est pourquoi les domaines d'email sont demandés lors de la création d'une organisation. C'est pourquoi le domaine de l'Organisation est un paramètre optionnel de la requête.
Renouveler un mot de passe expiré
Le mot de passe fourni peut être correct, mais nous vérifions également si le mot de passe a expiré en contrôlant la propriété expiredPassword
de l'objet passwordChallenge
. Si le mot de passe est correct mais qu'il a expiré, Cryptr fournit un renew_code
, qui peut être exploité via le point d'API de renouvellement de mot de passe.
Une fois que l'utilisateur a choisi un nouveau mot de passe, vous pouvez utiliser le point d'API de création de mot de passe de Cryptr, en transmettant le code de renouvellement (renew_code) fourni par le challenge de mot de passe et le nouveau mot de passe en texte clair.
Si aucune des conditions ci-dessus n'est remplie, l'utilisateur n'est pas autorisé et ne peut pas accéder au service ou à l'application.
- cURL
curl -X POST ${cryptr_service_url}/api/v2/password \
-d user_email="john@communitiz-app.com" \
-d plain_text="2vK79^41aokzi6lc8" \
-d password_code="9DGykvCVPZDEZ1rD8pie7xl8s4fQtG" \
-d org_domain="communitiz-app"
Exemple complet de traitement des résultats
Après avoir généré un challenge de mot de passe, nous vérifions si le challenge a réussi (propriété success
) ou non. Si c'est le cas, l'authentification par mot de passe est valide.
Dans ce cas, le code génère un code d'autorisation à partir du Challenge. Ce code permet de récupérer les tokens finaux de l'utilisateur afin d'accéder au service ou à l'application. **Dans le cas d'un mot de passe expiré, vous pouvez voir que nous vérifions également l'expiration du mot de passe.
Réinitialiser un mot de passe oublié
Au cours de l'étape de connexion, les utilisateurs peuvent rencontrer des erreurs qui peuvent bloquer l'accès. Voici deux erreurs courantes et leur signification :
-
not_found : Cela signifie que l'adresse email que l'utilisateur a saisie lors de la connexion n'a pas été trouvée dans le système. Cette erreur peut également se produire si la Password Connection n'a pas été créée ou si le domaine saisi n'existe pas ou a été saisi de manière incorrecte.
-
unauthorized_credentials : Cette erreur se produit lorsque les informations fournies lors de la tentative de connexion sont incorrectes. L'utilisateur doit être invité à s'assurer qu'il saisit correctement son adresse électronique et son mot de passe, en vérifiant également la casse des caractères.
Si l'utilisateur rencontre l'une de ces erreurs ou s'il a oublié son mot de passe, nous proposons une fonction de réinitialisation qui lui permet de créer un nouveau mot de passe. En utilisant le processus de réinitialisation, l'utilisateur reçoit un courriel l'invitant à créer un nouveau mot de passe. Il devra ensuite valider le nouveau mot de passe, en respectant les critères de sécurité requis (tels que la force du mot de passe), et une fois cette opération terminée, il sera redirigé vers l'application, prêt à l'utiliser à nouveau.
Réinitialiser le mot de passe
Si l'utilisateur oublie son mot de passe, ou si son mot de passe est impliqué dans une violation de données. Il s'agit d'une procédure en deux étapes pour garantir la sécurité du compte.
- cURL
curl -X POST ${cryptr_service_url}/api/v2/password-request \
-d user_email="john@communitiz-app.com" \
-d redirect_uri="http://authent.me/password-creation" \
-d org_domain="communitiz-app"
# Send the Magic Link by Email to your user.
# After clicking the link they will be redirected to your App.
# You can then allow the User to create a new Password
curl -X POST ${cryptr_service_url}/api/v2/password \
-d plain_text="2vK79^41aokzi6lc8" \
-d password_code="9DGykvCVPZDEZ1rD8pie7xl8s4fQtG"
Lors de la première étape, l'utilisateur est invité à saisir l'adresse électronique associée à son compte. Vous recevrez ensuite un token unique dans un lien que vous pourrez envoyer à l'utilisateur par courrier électronique (par défaut le lien est envoyé automatiquement par Cryptr). Ce jeton est un code spécifique qui identifie la demande de réinitialisation du mot de passe.
La deuxième étape commence lorsque l'utilisateur clique sur le lien fourni dans l'e-mail de réinitialisation. Ce lien contient le jeton unique qui est envoyé au serveur. Le serveur vérifie la validité du jeton et redirige l'utilisateur vers l'une de vos pages où il peut définir un nouveau mot de passe. Ici vous pouvez remarquer qu'il est possible de ne passer que le plain_text
et le password_code
. En effet Cryptr peut récupérer le user
et le org_domain
grâce au password_code
En cas d'erreur, si l'utilisateur tente de réinitialiser le mot de passe avec une adresse email inexistante, un message d'erreur doit être affiché pour l'informer de cette situation.
Conclusion
Nous espérons que ce guide vous a permis de mieux comprendre les étapes de l'authentification par mot de passe dans votre application. Voici un résumé des sujets abordés :
- La configuration initiale du mot de passe login pour créer un nouveau mot de passe pour vos utilisateurs.
- Le challenge du mot de passe, une fonctionnalité qui renforce la sécurité tout en simplifiant l'authentification.
- La sécurité des mots de passe, en mettant l'accent sur la force du mot de passe.
- Messages d'erreur** et informations pour fournir une expérience claire et informative à l'utilisateur pendant l'authentification.
- Réinitialisation et renouvellement du mot de passe**, permettant aux utilisateurs de créer un nouveau mot de passe en cas d'expiration ou d'oubli.
Si vous souhaitez aller encore plus loin, nous vous encourageons à explorer nos fonctionnalités avancées telles que l'authentification à deux facteurs pour renforcer encore la sécurité.
Alternatives
Si les utilisateurs oublie souvent leur mots de passe, nous leur proposons une alternative : le Magic Link. Pour en savoir plus sur cette méthode d'authentification, consultez notre guide d'intégration Magic Link. Ainsi, même si l'utilisateur oublie son mot de passe, il peut toujours accéder à votre application de manière sûre et pratique
.
Pour offrir à vos utilisateurs une expérience de connexion pratique et sécurisée, nous proposons également une autre méthode d'authentification: le Single Sign-On (SSO). Pour en savoir plus sur cette méthode d'authentification, consultez notre guide d'intégration SSO.
Pour bénéficier de ces fonctionnalités, l'organisation doit prendre en charge ces méthodes d'authentification spécifiques
Il est important de noter que Magic Link permet une connexion rapide, sans mot de passe, en cliquant sur un lien unique envoyé par e-mail.
Prochaines étapes
Pour vérifier les tokens et garantir la fiabilité des données, vous pouvez utiliser notre guide : Comment valider un JWT
Vous pouvez également vous référer à notre référentiel API pour effectuer ces actions via l'API Rest.