Auth0 proporciona dos formas de implementar el control de acceso basado en roles (RBAC), que puede usar en lugar del sistema interno de control de acceso de su propia API o en combinación con él:El conjunto de funcionalidades de Authorization Core ofrece la misma funcionalidad que la Authorization Extension, mejora el rendimiento y la escalabilidad, y proporciona un sistema RBAC más flexible que la Authorization Extension.Actualmente, ambos implementan las funcionalidades clave de RBAC y le permiten restringir los alcances personalizados definidos para una API a los que se hayan asignado al usuario como permisos.
- Agregar claims personalizados al token emitido.
- Determinar la pertenencia del usuario a grupos, así como sus roles y permisos.
- Almacenar la información de grupos, roles y permisos del usuario en
app_metadata. - Agregar los grupos, roles y permisos del usuario al token de salida (que se puede solicitar mediante el scope
openid groups permissions roles).
Agregue claims personalizados al token emitido
/authorize o al configurar Lock, deberá especificar en el scope la información que desea indicar: groups, permissions y/o roles.
Control del acceso a la aplicación
Establezca los roles requeridos en los metadatos de la aplicación
- Para establecer el campo
context.clientMetadataconrequired_roles, seleccione la aplicación con la que desea trabajar en Auth0 Dashboard > Applications > Applications. Esto lo llevará a Settings de la aplicación. Desplácese hacia abajo y seleccione Show Advanced Settings al final de la página. - En Application Metadata, agregue un elemento y establezca Key en
required_roles; en el campo Value, enumere los roles separados por comas. Seleccione + Add para agregar el campo. - Cuando termine, seleccione Save Changes. Ahora, cuando inicie sesión desde esta aplicación, en
context.clientMetadatatendrárequired_rolescon la cadena de roles que ingresó.
Crear una regla que aplique roles por aplicación
- Antes de crear esta regla, habilite Roles en Token Contents y publique la regla de Authorization Extension.
- Agregue esta regla y asegúrese de que figure después de la regla generada “auth0-authorization-extension”.
-
Después de configurar
required_roles, cree una nueva regla con el siguiente cuerpo: