- Una API identificada por su
audienceo identificador único. - Una aplicación identificada por su
client_id. - Una lista de permisos, como alcances y/o
authorization_details_types, que la aplicación puede solicitar para la audiencia especificada.
Políticas de acceso de aplicaciones a la API y client grants
require_client_grant, solo las aplicaciones que tengan definido un client grant pueden obtener un token de acceso para la API. El client grant establece los permisos máximos que una aplicación puede solicitar a la API, conforme al principio de mínimo privilegio. Por ello, Auth0 recomienda usar require_client_grant al configurar la política de acceso de aplicaciones de una API.
Para ilustrar cómo los client grants aplican el principio de privilegio mínimo, supongamos que tiene una API de redes sociales con los permisos read:posts, write:posts, read:friends y delete:posts. Crea una aplicación y define un client grant con los permisos read:posts y write:posts.
Este client grant ahora actúa como un límite estricto. Aunque la API de redes sociales tenga otros permisos, su aplicación nunca podrá solicitar ni obtener read:friends o delete:posts.
Acceso delegado por el usuario vs. acceso del cliente
subject_type del client grant determina el tipo de acceso de la aplicación que se permite para una API.
Una aplicación puede tener hasta dos client grants para una sola API:
- Cuando establece
subject_typeenclient, define sus permisos de máquina a máquina. - Cuando establece
subject_typeenuser, define sus permisos para actuar en nombre del usuario.
Puede modificar los alcances finales otorgados por el Servidor de autorización a la aplicación o al usuario mediante Actions.
Atributos del client grant
Crear client grant
- Permisos por aplicación: Aplique permisos granulares a cada aplicación de su inquilino.
- Permisos predeterminados para aplicaciones de terceros: Aplique permisos predeterminados a todas las aplicaciones de terceros de su inquilino.
Permisos por aplicación
- Auth0 Dashboard
- Management API
Para configurar los permisos por aplicación con Auth0 Dashboard:
Para los permisos por aplicación, debe autorizar el acceso a la API individualmente para cada aplicación.
- Vaya a Dashboard > Applications > APIs y seleccione la API para la que quiere configurar el acceso de la aplicación.
- Vaya a la pestaña Settings y desplácese hacia abajo hasta Application Access Policy.
- Configure User-Delegated Access como No apps allowed, Per-app authorization o All apps allowed.
- No apps allowed: Ninguna aplicación puede obtener un token de acceso para la API.
- Per-app authorization: Solo las aplicaciones con un client grant definido pueden obtener un token de acceso para la API.
- All apps allowed: Cualquier aplicación de su inquilino puede obtener un token de acceso para la API.
- Configure Client Access como Per-app authorization o All apps allowed.
- Per-app authorization: Solo las aplicaciones con un client grant definido pueden obtener un token de acceso para la API.
- All apps allowed: Cualquier aplicación de su inquilino puede obtener un token de acceso para la API.
- Configure User-Delegated Access como No apps allowed, Per-app authorization o All apps allowed.
- Seleccione Save para guardar la configuración de Application Access Policy.

- Vaya a Applications > APIs y seleccione la API.
- Vaya a la pestaña Application Access.
- Desplácese hasta la aplicación, seleccione Edit y luego Grant Access para User-Delegated Access y/o Client Access. Después, seleccione los permisos que desee.
- Seleccione Save.

Permisos predeterminados para aplicaciones de terceros
default_for en lugar de client_id. También puede definir permisos por aplicación creando un client grant con un client_id específico. Cuando ambos existen para la misma API, los permisos por aplicación tienen prioridad.
Las API del sistema (la Management API, My Account API y otras) no admiten client grants predeterminados para terceros. No es posible conceder a aplicaciones de terceros acceso a las API del sistema.
default_for y client_id son mutuamente excluyentes. Cada client grant debe especificar exactamente uno de ellos.
Para obtener información sobre cómo configurar políticas de acceso a API para aplicaciones de terceros, consulte Configurar aplicaciones de terceros.
- Auth0 Dashboard
- Management API
Para configurar permisos predeterminados para aplicaciones de terceros con Auth0 Dashboard:
- Vaya a Dashboard > Applications > APIs y seleccione la API para la que desea configurar el acceso de las aplicaciones.
- Vaya a la pestaña Settings y desplácese hacia abajo hasta Default Permissions for Third-Party Applications.
- Configure User-Delegated Access y/o Client Access como Unauthorized, Authorized o All.
- Unauthorized: No se permite ningún permiso.
- Authorized: Seleccione los permisos que correspondan.
- All: Incluye los permisos actuales y futuros.
- Configure User-Delegated Access y/o Client Access como Unauthorized, Authorized o All.
- Seleccione Save.

Actualizar el client grant
PATCH a /client-grants/{id}:
Eliminar client grant
DELETE a /client-grants/{id}:
Obtener client grants
client-grants mediante parámetros como client_id, audience o subject_type: