management node.js azure oauth-2.0 passport.js azure-active-directory

management - ¿Alguien ha utilizado con éxito Azure AD para autenticar usuarios de una aplicación web Node.js?



panel azure login (3)

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 que la muestra se ejecute, debe configurar algunas configuraciones en el código de muestra sobre su Azure AD.

podemos encontrar el contenido como 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: ''<your app id>'', clientSecret: ''<your secret>'', // 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 debe iniciar sesión en el encabezado Azure manage portal, en la página de su aplicación Azure AD. Haga clic en la pestaña CONFIGURAR para configurar su AD.

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

  • llene el punto final Azure AD de su aplicación 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: Entonces no tienes que cambiar la configuración. De lo contrario, debe reemplazar el common en el punto final en config.js a su ID de AD, puede hacer clic en VER PÁGINA DE ENDP en la parte inferior de navegación para encontrar la ID:

  • configure el clientID y clientSecret en config.js . Todos pueden encontrarlos en la página CONFIGURAR de su aplicación AD: Acerca de la clave, puede seleccionar el menú desplegable para seleccionar la duración de una clave para crear una nueva, hacer clic en el botón Guardar en el navegador inferior, puede ver los datos de la clave la primera vez que la cree.

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

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

Me pregunto si alguien alguna vez lo ha logrado ya que la documentación es bastante pobre. 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 intentado pasaporte-azure-ad (que creo que es de Microsoft) y pasaporte.azure-ad-oauth2 (que es de Auth0 (?)). Para pasaporte-azul-anuncio, probé BearerStrategy y también OIDCStrategy sin suerte.

Para BearerStrategy recibo un mensaje críptico sobre mi cliente y mi recurso identificando la misma aplicación, pero como no hay documentación que me diga cuáles deberían ser, me siento perdido.

Para OIDCStrategy, estoy un poco más cerca porque me redireccionan a Microsoft para la autenticación, pero a la vuelta obtengo el error "Error: ID Token no presente en respuesta". Supongo que mi solicitud no es lo suficientemente correcta como para devolverme una ficha por el motivo que sea, pero como no hay documentación ... (se entiende).

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

Muchas gracias.


Microsoft usa Node.js para autenticar y escribir las herramientas de Azure xplat .

¡Mira a través de su código, te ayudará a descubrir cómo lo hacen!


Para mí esto (solución sin código) funcionó en el nuevo Portal Azure :

  • alojar mi servidor Node.js
  • agregar una AD a la suscripción
  • Registre una nueva aplicación dentro de la 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
  • Utilice el modo avanzado de AAD
  • Ingrese el ClientID (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 hacia atrás en su aplicación registrada en AD arriba)