¿Alguien ha utilizado correctamente Azure AD para autenticar usuarios para una aplicación web Node.js?

Estoy intentando usar Azure Active Directory para autenticar usuarios para mi aplicación web node.js, hasta ahora sin suerte.

Me pregunto si alguien realmente lo ha logrado ya que la documentación es bastante mala. Normalmente hay un código de ejemplo, pero en realidad no hay ninguna indicación de cuáles son los parámetros requeridos y cuáles deberían ser.

He probado passport-azure-ad (que creo que es de Microsoft) y passport.azure-ad-oauth2 (que es de Auth0 (?)). Para el pasaporte-azure-ad, he probado la estrategia BearerStrategy y también la estrategia OIDCStrategy sin suerte.

Para BearerStrategy recibo un mensaje críptico sobre mi cliente y el recurso que identifica la misma aplicación, pero como no hay documentación que me diga qué deben ser, no puedo.

Para la estrategia OIDCStrategy, estoy un poco más cerca porque me redireccionan a Microsoft para la autenticación, pero a cambio recibo el error “Error: el token de ID no está presente en la respuesta”. Supongo que mi solicitud no es lo suficientemente correcta como para devolverme un token por cualquier motivo, pero como no hay documentación … (entiendes la idea).

De todos modos, si alguien lo ha logrado con éxito y es capaz de compartir algunos consejos sobre cómo se logró, sería genial.

Muchas gracias.

Aquí hay un ejemplo de código que trata sobre la integración de Azure AD en una aplicación web NodeJS proporcionada por Microsoft en GitHub, en https://github.com/Azure-Samples/active-directory-node-webapp-openidconnect .

Y para hacer que se ejecute la muestra, debe configurar algunas configuraciones en el código de muestra de su Azure AD.

Podemos encontrar el contenido que se muestra a continuación en el archivo config.js en el directorio raíz de la aplicación:

 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 }; 

ahora necesita iniciar sesión en el portal de administración de Azure, encabezado a su página de aplicación de Azure AD. Haga clic en la pestaña CONFIGURAR para configurar su anuncio.

  • Ingrese el returnURL en config.js en el formulario de REPLY URL en la sección de inicio de sesión único: introduzca la descripción de la imagen aquí

  • complete el punto final de AD de Azure de su aplicación de AD en la propiedad identityMetadata en config.js . Como dice el comentario en el código, si su Azure AD está en el dominio de Microsoft como: introduzca la descripción de la imagen aquí Entonces no tienes que cambiar la configuración. De lo contrario, debe reemplazar el punto common en el punto final en config.js con su ID de AD, puede hacer clic en VER PUNTO DE CONTACTO en la barra de navegación inferior para encontrar el ID: introduzca la descripción de la imagen aquí

  • configure el clientID y el clientSecret de config.js en config.js . Todos los pueden encontrar en la página CONFIGRE de su aplicación AD: introduzca la descripción de la imagen aquí Acerca de la clave, puede seleccionar el menú desplegable para seleccionar la duración de una clave para crear una nueva, haga clic en el botón Guardar en la navegación inferior, puede ver los datos clave la primera vez que la crea.

Después de terminar estos pasos, puedes probar el proyecto de muestra.

Para mí esto (la solución Sin Código) funcionó en el nuevo Portal de Azure :

  • alojar mi servidor Node.js
  • añadir un anuncio a la suscripción
  • Registrar nueva aplicación dentro del AD
  • Agregue ” https://YourNodeJS.azurewebsites.net/.auth/login/aad/callback ” como URL de respuesta
  • En AppServices, elija su servidor Node.js
  • En Configuración vaya a Autenticación / Autorización.
  • Activar AAD
  • Usa el modo avanzado de AAD
  • Ingrese el ID de cliente (GUID) de la aplicación registrada anteriormente en AD
  • Como issuerURL ingrese este enlace: https://sts.windows.net/YourADGuid/ (puede ver el GUID dentro de “Endpoints” si mira su aplicación registrada en AD arriba)