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:
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: 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:
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: 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 :