porta microsoft management azure active-directory

azure - microsoft - El token de acceso falta o está mal formado al llamar a Graph API



porta azure (2)

Consulte este enlace https://github.com/Azure/azure-sdk-for-node/issues/1782

Seguí encontrando este problema. Estaba usando el siguiente código para obtener un token portador para mi aplicación nativa:

var authContext = new AuthenticationContext("AUTHORITY"); string token; try { var authresult = authContext.AcquireToken("MYAPP_ID","MYAPP_CLIENTID","MYAPP_REDIRECTURI"); token = authresult.AccessToken; }

Usar ese token funcionó bien para autorizar acciones dentro de mi propia aplicación, pero obtendría el mismo error que el OP al tratar de usar el mismo token como autorización para Graph API.

Lo que tenía que hacer era obtener un nuevo token específicamente para Graph API: utilicé el mismo código que el anterior pero utilicé "https://graph.windows.net" lugar de "MYAPP_ID" . Entonces, para ser claros, el siguiente código me dio el token OAuth correcto para Graph API:

var authContext = new AuthenticationContext("AUTHORITY"); string token; try { var authresult = authContext.AcquireToken("https://graph.windows.net","MYAPP_CLIENTID","MYAPP_REDIRECTURI"); token = authresult.AccessToken; }

Solo asegúrese de que su aplicación registrada en Azure tenga los permisos necesarios para acceder al directorio de su dominio Azure.

Puede ser que sea útil para usted!

Siguiendo esta guía: https://azure.microsoft.com/en-us/documentation/articles/resource-manager-api-authentication/#_get-objectid-of-application-service-principal-in-user-azure-ad

Llegué a la etapa en la que llamo graph.windows.net para obtener el ObjectID del principal del servicio en Azure AD del usuario.

Cuando hago la llamada, sin embargo, recibo el siguiente mensaje:

{"odata.error":{"code":"Authentication_MissingOrMalformed","message":{"lang":"en","value":"Access Token missing or malformed."},"values":null}}

Ya he intentado reemplazar el ID de cliente con la dirección ''onmicrosoft.com'' (así graph.windows.net/appname.onmicrosoft.com / ... ), todavía recibí el mismo mensaje.


Para ampliar mi comentario, hemos visto esto cuando el secreto de la aplicación contiene caracteres que necesitan codificación. Tales como "+" y "="

Si no está utilizando algunos de los asistentes de clientes disponibles o está probando con Fiddler o Postman, necesitará codificar el secreto de URL antes de llamar a la API de gráfico, para que parezca que se convierta en:

"7hIkYG5m7xJQnocThxMc4yPjtbRP7bO41aNC% 2bbrEzvo% 3d"