Authentification sécurisée sans mot de passe avec Auth0

Dans cet article, vous apprendrez à configurer une authentification sans mot de passe à l'aide du service Auth0. Auth0 vous permet d'externaliser les fonctionnalités d'authentification pour votre application.

Qu'est-ce que Auth0?

Auth0 est un outil d'authentification en tant que service qui simplifie considérablement la mise en œuvre de fonctionnalités liées à l'authentification pour votre application ou votre site. Si vous avez créé une application et souhaitez simplement externaliser les fonctions d'authentification et d'autorisation, vous devez envisager un service comme Auth0..

Permettez-moi de résumer rapidement ce que Auth0 a à offrir:

  • authentification unique
  • authentification multi-facteurs
  • connexions sans mot de passe
  • gestion des utilisateurs
  • et beaucoup plus!

La configuration initiale

Dans cette section, nous allons passer en revue la configuration initiale en vue de la configuration de l'authentification sans mot de passe..

Avant de poursuivre, assurez-vous d’installer Composer car cela servira à installer les SDK Auth0 actuels à l’aide de la composer.json fichier. De plus, si vous voulez suivre les exemples de cet article, allez-y et créez-vous un compte gratuit avec Auth0.

Commençons par récupérer un clone du projet exemple..

clone de git https://github.com/auth0-samples/auth0-php-web-app.git .

Installer des dépendances

Allez-y la course le compositeur installer commande pour installer les dépendances.

cd 00-Starter-Seed compositeur installer

Selon le composer.json fichier, vous devriez avoir installé le vlucas / phpdotenv et auth0 / auth0-php paquets.

"name": "auth0 / basic-webapp-sample", "description": "Exemple de base pour la sécurisation d'une application Web avec Auth0", "require": "vlucas / phpdotenv": "2.4.0", "auth0 / auth0-php ":" ~ 5.0 "," licence ":" MIT "," auteurs ": [" nom ":" Martin Gontovnikas "," email ":" [email protected] ", " nom ":" Germán Lena "," email ":" [email protected] "] 

le vlucas / phpdotenv bibliothèque est utilisée pour initialiser les variables d’environnement à partir du .env fichier. Ainsi, cela vous permet de séparer la configuration du code qui change entre les environnements..

D'autre part, le auth0 / auth0-php le paquet est celui qui nous aidera à configurer l'autorisation dans notre application.

Configurer les variables d'environnement

Ensuite, configurons la configuration de notre application dans le .env fichier. Allez-y et créez le .env fichier en le copiant à partir du .env.example fichier.

cp .env.example .env

Il contient des valeurs de configuration qui seront utilisées par la bibliothèque Auth0.

AUTH0_CLIENT_ID = CLIENT_ID AUTH0_DOMAIN = DOMAIN_NAME AUTH0_CLIENT_SECRET = CLIENT_SECRET AUTH0_CALLBACK_URL = CALLBACK_URL AUTH0_AUDIENCE =

Vous devriez pouvoir trouver la plupart des paramètres sous Applications> Application par défaut> Paramètres sur le tableau de bord Auth0. Veuillez noter que j'utilise l'application par défaut créée par le système. Bien sûr, vous pouvez créer une nouvelle application si vous le souhaitez..

le AUTH0_CALLBACK_URL est l'URL de votre application où Auth0 redirige les utilisateurs après la connexion et la déconnexion. La valeur que vous définissez dans ce champ doit être configurée sous URL de rappel autorisées dans les paramètres de l'application sur le tableau de bord Auth0.

Connexion sans mot de passe par courrier électronique

Pour activer la connexion sans mot de passe par courrier électronique, allez à Connexions> sans mot de passe sur le tableau de bord Auth0 et activez le Email option.

Dans la plupart des cas, les paramètres de configuration par défaut sous Email juste travailler hors de la boîte. Bien sûr, si vous souhaitez modifier des paramètres, continuez et faites-le. N'oubliez pas d'activer les applications pour lesquelles vous souhaitez une authentification sans mot de passe sur Connexions> Sans mot de passe> E-mail> Applications.

Avec la configuration initiale en place, nous pouvons continuer et créer un fichier qui implémente la connexion sans mot de passe en utilisant la messagerie électronique..

Implémenter une connexion sans mot de passe

Allez-y et créez le email_auth_example.php fichier avec le contenu suivant.

 $ domain, 'client_id' => $ client_id, 'client_secret' => $ client_secret, 'redirect_uri' => $ redirect_uri, 'audience' => $ audience, 'scope' => 'profil ouvert', 'persist_id_token' => true, 'persist_access_token' => true, 'persist_refresh_token' => true,]); $ userInfo = $ auth0-> getUser (); ?>           
Connexion sans mot de passe par courrier électronique

Bienvenue

Connectez - Out

Au début, nous avons inclus les chargeurs automatiques responsables du chargement des classes Auth0 et des variables d’environnement..

Ensuite, nous initialisons les variables de configuration à partir du .env déposer en utilisant le getenv une fonction.

Ensuite, nous avons appelé le getUser méthode sur l'objet Auth0 pour vérifier si une session active est présente. Sur cette base, nous affichons le Se connecter lien s'il n'y a pas de session active. Sinon, le nom d'utilisateur de l'utilisateur connecté avec le Connectez - Out le lien est affiché.

Allez-y et lancez le email_auth_example.php fichier pour tester votre application!

Connexion sans mot de passe via SMS

Pour activer la connexion sans mot de passe via SMS, allez à Connexions> sans mot de passe sur le tableau de bord Auth0 et activez le SMS option. Par défaut, Auth0 utilise le service Twilio pour envoyer des messages. Alors allez-y et créez-vous un compte Twilio.

À partir du tableau de bord Twilio, obtenez votre COMPTE SID et AUTH TOKEN et entrez ces valeurs dans le Twilio SID et Twilio AuthToken champs à Connexions> Sans mot de passe> SMS> Paramètres sur le tableau de bord Auth0.

En outre, vous devez créer un nouveau service de messagerie à l'adresse SMS> Services de messagerie sur votre tableau de bord Twilio. Après la création réussie du service, vous aurez le ID de service, et c'est ce que vous devrez entrer dans le Copilote SID champ à Connexions> Sans mot de passe> SMS> Paramètres.

Pour finir, voyons comment fonctionne la connexion sans mot de passe par SMS. Créer le sms_auth_example.php fichier. Le contenu est le même que email_auth_example.php, à l'exception du s'identifier() fonction, qui est comme suit.

 fonction login () var lock = new Auth0LockPasswordless ('','', allowedConnections: [' sms '], // doit correspondre au nom de connexion SMS auth: redirectUrl:'', responseType:' code '); lock.show (); ;

Tout est à peu près la même chose, sauf que nous avons fourni SMS au lieu de email dans le connexions permises propriété.

Allez-y et lancez le sms_auth_example.php fichier pour tester votre application!

Conclusion

Aujourd'hui, nous avons examiné la connexion sans mot de passe avec le service Auth0. Parmi les méthodes possibles disponibles, nous avons implémenté les méthodes email et SMS avec des exemples de code.

N'hésitez pas à laisser des pensées ou des questions en utilisant le flux ci-dessous!