Quelqu’un at-il utilisé avec succès Azure AD pour authentifier des utilisateurs pour une application Web Node.js?

J’essaie d’utiliser Azure Active Directory pour authentifier les utilisateurs de mon application Web node.js, sans succès.

Je me demande si quelqu’un l’a déjà fait puisque la documentation est assez pauvre. Il y a généralement un exemple de code, mais pas vraiment d’indication sur les parameters requirejs et sur ce qu’ils devraient être.

J’ai essayé passport-azuree-ad (qui, je pense, provient de Microsoft) et passport.azuree-ad-oauth2 (qui provient de Auth0 (?)). Pour passport-azuree-ad, j’ai essayé la stratégie BearerStrategy et également la stratégie OIDCStrategy sans succès.

Pour BearerStrategy, je reçois un message crypté sur mon client et une ressource identifiant la même application, mais comme aucune documentation ne me dit ce que cela devrait être, je suis perdue.

Pour l’OIDCStrategy, je suis un peu plus proche du fait que je suis redirigé vers Microsoft pour l’authentification, mais au retour, l’erreur “Erreur: identifiant ID non présent dans la réponse”. J’imagine que ma demande n’est pas assez correcte pour me rendre un jeton pour une raison quelconque, mais vu qu’il n’y a pas de documentation … (vous voyez l’idée).

Quoi qu’il en soit, si quelqu’un y est parvenu avec succès et est capable de partager quelques indications sur la manière dont cela a été réalisé, ce serait formidable.

Merci beaucoup.

Voici un exemple de code relatif à l’intégration d’Azure AD dans une application Web NodeJS fournie par Microsoft sur GitHub, à l’ adresse https://github.com/Azure-Samples/active-directory-node-webapp-openidconnect .

Et pour que l’exemple soit exécuté, vous devez configurer quelques parameters dans l’exemple de code relatif à votre Azure AD.

nous pouvons trouver le contenu tel qu’il est indiqué dans le fichier config.js du répertoire racine de l’application:

 exports.creds = { returnURL: 'http://localhost:3000/auth/openid/return', identityMetadata: 'https://login.microsoftonline.com/common/.well-known/openid-configuration', // For using Microsoft you should never need to change this. clientID: '', clientSecret: '', // if you are doing code or id_token code skipUserProfile: true, // for AzureAD should be set to true. responseType: 'id_token code', // for login only flows use id_token. For accessing resources use `id_token code` responseMode: 'query', // For login only flows we should have token passed back to us in a POST //scope: ['email', 'profile'] // additional scopes you may wish to pass }; 

Vous devez maintenant vous connecter au portail Azure Manage, en-tête sur la page de votre application Azure AD. Cliquez sur l’onglet CONFIGURE pour configurer votre AD.

  • Entrez returnURL dans config.js dans le formulaire d’ REPLY URL config.js dans la section de connexion unique: entrez la description de l'image ici

  • indiquez le sharepoint terminaison Azure AD de votre application AD dans la propriété identityMetadata dans config.js . Comme le dit le commentaire dans le code, si votre Azure AD est dans le domaine Microsoft, procédez comme suit: entrez la description de l'image ici Ensuite, vous n’avez pas à changer le réglage. Sinon, vous devez remplacer le common du noeud final dans config.js par votre ID AD. Vous pouvez cliquer sur le bouton VIEW ENDPOINT situé en bas pour trouver l’ID: entrez la description de l'image ici

  • configurez le clientID et le clientSecret dans config.js . Vous pouvez tous les trouver dans la page CONFIGRE de votre application AD: entrez la description de l'image ici À propos de la clé, vous pouvez sélectionner le menu déroulant pour sélectionner la durée d’une clé et en créer une nouvelle. Cliquez sur le bouton d’enregistrement situé en bas de la page pour afficher les données de la clé lors de la première création.

Une fois ces étapes terminées, vous pouvez essayer le projet exemple.

Pour moi, cette solution (sans code) fonctionnait dans le nouveau portail Azure :

  • héberger mon serveur Node.js
  • append une annonce à l’abonnement
  • Enregistrer une nouvelle application dans la DA
  • Ajouter ” https://YourNodeJS.azureewebsites.net/.auth/login/aad/callback ” en tant qu’URL de réponse
  • Dans AppServices, choisissez votre serveur Node.js
  • Dans Paramètres, allez à Authentification / Autorisation
  • Activer AAD
  • Utiliser le mode avancé de AAD
  • Entrez le ClientID (GUID) de l’application enregistrée ci-dessus dans AD.
  • En tant que issuerURL, entrez le lien suivant: https://sts.windows.net/YourADGuid/ (vous pouvez voir le GUID dans “Endpoints” si vous regardez votre application enregistrée dans AD ci-dessus).