Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: inquilinos de personal
inquilinos externos (más información)
En este tutorial se muestra cómo agregar roles de aplicación a la interfaz de usuario de aplicaciones multiplataforma (.NET MAUI) de .NET y cómo recibirlos en el token de identificador.
En este tutorial, harás lo siguiente:
- Acceda a los roles del token de identificador.
Prerrequisitos
- Tutorial: inicio de sesión de usuarios en la aplicación de shell de .NET MAUI
- Uso del control de acceso basado en rol (RBAC) para aplicaciones
Recibir notificaciones de grupos y roles en .NET MAUI
Una vez configurado el inquilino del cliente, puede recuperar las notificaciones de roles y grupos en la aplicación cliente. Las notificaciones de roles y grupos están presentes tanto en el token de identificador como en el token de acceso. Los tokens de acceso solo se validan en las API web para las que fueron adquiridos por un cliente. El cliente no debe validar los tokens de acceso.
.NET MAUI debe comprobar las notificaciones de roles de aplicación en el token de identificador para implementar la autorización en el lado cliente.
En esta serie de tutoriales, creó una aplicación de .NET MAUI donde desarrolló ClaimsView.xaml.cs para controlar los datos ClaimsView
. En este archivo, inspeccionamos el contenido de los tokens de identificador. El valor de la declaración de roles se verifica en el siguiente fragmento de código:
Para acceder a la notificación de rol, puede modificar el fragmento de código de la siguiente manera:
var idToken = PublicClientSingleton.Instance.MSALClientHelper.AuthResult.IdToken;
var handler = new JwtSecurityTokenHandler();
var token = handler.ReadJwtToken(idToken);
// Get the role claim value
var roleClaim = token.Claims.FirstOrDefault(c => c.Type == "roles")?.Value;
if (!string.IsNullOrEmpty(roleClaim))
{
// If the role claim exists, add it to the IdTokenClaims
IdTokenClaims = new List<string> { roleClaim };
}
else
{
// If the role claim doesn't exist, add a message indicating that no role claim was found
IdTokenClaims = new List<string> { "No role claim found in ID token" };
}
Claims.ItemsSource = IdTokenClaims;
Nota:
Para leer el token de identificador, debe instalar el System.IdentityModel.Tokens.Jwt
paquete.
Si asigna un usuario a varios roles, la cadena de roles contiene todos los roles separados por una coma, como Orders.Manager, Store.Manager,...
. Asegúrese de construir su aplicación para gestionar las siguientes condiciones:
- Ausencia de notificaciones de roles en el token
- El usuario no se ha asignado a ningún rol
- Varios valores de la notificación de roles al asignar un usuario a varios roles
Al definir roles de aplicación para la aplicación, es su responsabilidad implementar la lógica de autorización para esos roles.
Pasos siguientes
Para obtener más información sobre las notificaciones de grupo y tomar decisiones informadas sobre el uso de roles o grupos de aplicaciones, consulte: