management example active c# .net azure active-directory

c# - example - azure ad login



Cómo usar Azure AD para generar tokens con definición de rol (1)

Si su escenario se trata de asignar el rol de la aplicación al usuario / grupo. Una vez que se asigna un usuario a un rol de aplicación (ya sea mediante una asignación directa o una asignación a un grupo del que el usuario es miembro), Azure AD incluye el reclamo de roles en el token cuando el usuario inicia sesión en la aplicación. La aplicación puede autorizar al usuario utilizando construcciones como IsInRole ("lector") o [Autorizar (Roles = "lector")] de .net. Deberías hacer :

"allowedMemberTypes": [ "User" ],

Entonces no necesita usar el flujo de credenciales del cliente. Y aquí hay un artículo sobre cómo configurar eso, también consulte la muestra del código aquí .

Si su escenario se trata de permitir aplicaciones web y API web que actúen como clientes y accedan a otras API de recursos, solicite que se les asigne roles de aplicaciones de la API de recursos (utilizando flujo de credenciales de clientes). El rol se asigna a la aplicación del cliente cuando los clientes de Azure AD lo instalan. Puede consultar los pasos a continuación para lograr eso:

  1. crear una nueva aplicación de anuncios en el clásico portal publicitario azul:
  2. Establezca la URL de inicio de sesión y la URL de la aplicación.

  3. En la pestaña de configuración desplácese hacia abajo a la sección llamada ''permisos para otra aplicación''. Aquí, agregue un nuevo permiso seleccionando primero la API para la cual la aplicación cliente está solicitando un rol de aplicación, y luego seleccione la función de aplicación deseada en el menú desplegable Permisos de la aplicación. En mi aplicación API (el nombre es testRole), he configurado los roles como:

A continuación, seleccione la función de la aplicación:

  1. Luego podríamos adquirir el token para permitir que mi aplicación web acceda a la API "testRole" utilizando el flujo de credenciales del cliente:

    Publicar https://login.microsoftonline.com/YourTenant/oauth2/token

    Tipo de contenido: application / x-www-form-urlencoded

    resource = http% 3A% 2F% 2Ftestbasic1.onmicrosoft.com% 2Ftestrole & client_id = & client_secret = & grant_type = client_credentials

  2. Luego, el token de acceso incluirá el rol de la aplicación:

Puede leer más sobre el control de acceso basado en Roles en aplicaciones en la nube usando Azure AD desde aquí

EDITAR

Para establecer el permiso para otra aplicación en el nuevo portal: 1. haga clic en el icono de anuncio azul en el panel izquierdo, seleccione la aplicación web, haga clic en los permisos necesarios , haga clic en Agregar, seleccione una API y luego busque la API a la que desea acceder:

  1. A continuación, seleccione los permisos de la aplicación que desee:

Tengo este escenario: tengo un Servicio de aplicaciones, establezco su autorización como Permitir solicitud anónima y el Proveedor de autenticación como Active Directory configurando una aplicación Azure AD.

En esta aplicación de AD pongo en su manifiesto algunos roles como este:

"appRoles": [ { "allowedMemberTypes": [ "User" ], "displayName": "Approver", "id": "8f29f99b-5c77-4fba-a310-4a5c0574e8ff", "isEnabled": true, "description": "Approvers can mark documents as approved", "value": "approver" },

Publicar en la URL https://login.windows.net/ / oauth2 / token con mi ID de aplicación AD Recibo un token y lo que esperaba era encontrar el rol en este token. No funciona así y no pude averiguar el motivo.

Lo que quiero es generar el token usando Azure y en mi API, para establecer un [Autorizar (Rol = "aprobador")] para filtrar controladores a los que acceden diferentes clientes que usan el mismo inquilino.