Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

235
Visualizações
Roles de Azure AD v2 no incluidos en el token de acceso

Estoy usando https://login.microsoftonline.com/.../oauth2/v2.0/token para autenticarme (autorización_código otorgado) en Azure Ad usando los ámbitos: offline_access, openid, profile, User.Read

Según la documentación, el token de acceso que recibo debe contener las funciones del usuario: https://docs.microsoft.com/en-us/azure/active-directory/develop/access-tokens

Sin embargo, solo el token de identidad devuelve los roles:

 --Access Token { "typ": "JWT", "nonce": "IWTwK2P0vzHoNnv1vvvSsjZSbAYPpSIk8MozY0A4WR0", "alg": "RS256", "x5t": "nOo3ZDrODXEK1jKWhXslHR_KXEg", "kid": "nOo3ZDrODXEK1jKWhXslHR_KXEg" }.{ ... "rh": "0.ASgASPp-HouAsUyXCdG05vvfeHAoPPG46TFOoWYsil-LDcsoADw.", "scp": "User.Read profile openid email", ... }.[Signature]

 --Identity Token { "typ": "JWT", "alg": "RS256", "kid": "nOo3ZDrODXEK1jKWhXslHR_KXEg" }.{ ... "rh": "0.ASgASPp-HouAsUyXCdG05vvfeHAoPPG46TFOoWYsil-LDcsoADw.", "roles": [ "MyApp.Read", "MyApp.Admin", "MyApp.Write", ], ... }.[Signature]

¿Hay alguna manera de hacer que el token de acceso también incluya los roles?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Gracias a @juunas por el consejo, @juunas tiene razón. Si está utilizando una API personalizada, el token de usuario también puede contener una notificación de roles .

Debe crear dos aplicaciones en Azure, una que represente la aplicación cliente y la otra que represente la aplicación api , y luego use la aplicación cliente para llamar a la aplicación api.

Primero, debe exponer la API de la aplicación back-end protegida por Azure y agregar la aplicación cliente:

ingrese la descripción de la imagen aquí

A continuación, debe configurar la aplicación api AppRole, que es su función personalizada, y se mostrará en el manifiesto.

ingrese la descripción de la imagen aquí

Luego puede asignar el rol al usuario. Vaya a aplicación empresarial>su aplicación api>Usuarios y grupos.

ingrese la descripción de la imagen aquí

A continuación, vaya a la aplicación cliente, otorgue a su aplicación cliente acceso a su API de backend:

  • En 'Permisos de API', haga clic en 'Agregar permiso', luego haga clic en la pestaña ' Mis API '.
  • Encuentre su aplicación de back-end y seleccione el alcance apropiado.
  • Haga clic en 'Agregar permisos'.
  • Otorgue el consentimiento del administrador para sus API.

A continuación, debe usar el flujo de código de autenticación para obtener un token de acceso, lo que requiere que inicie sesión en el usuario y obtenga el código de autorización, y luego use el código de autorización para canjear el token de acceso.

ingrese la descripción de la imagen aquí

Analice el token, contiene reclamos de scp y reclamos de roles .

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Relatório

0

Desafortunadamente, hay un error en AAD que solo agrega los roles a access_token cuando se solicita un alcance de API al solicitar el token.

Para que los roles funcionen, necesita la siguiente configuración:

  • Crear la aplicación
  • Agregue un alcance a la aplicación usando "Exponer una API"
  • Use el alcance creado en el paso anterior cuando solicite un token

El resultado final será un token.

Ejemplo:

 https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/authorize?client_id={appid}&response_type=token&scope={appid}/{scopename}&nonce=678910

Los ámbitos openid , email y profile solo deben usarse con id_tokens

over 4 years ago · Santiago Trujillo Relatório

0

Si está registrando una aplicación API en el registro de aplicaciones de Azure Active Directory y exponiéndola a través de una aplicación SPA también registrada en Azure Active Directory, entonces:

  1. El token de identificación contiene roles expuestos en la aplicación SPA y
  2. El token de acceso contiene funciones expuestas en la aplicación API.

(Esta fue la información esencial para mí de la respuesta de Carl Zhao)

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda