Skip to main content
En Auth0, puedes controlar cómo las aplicaciones acceden a tus API mediante políticas de acceso de aplicaciones a las API y client grants. Un client grant proporciona acceso granular de una aplicación a una API. Asocia:
  • Una API identificada por su audience o 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.
Para obtener más información sobre la lista de atributos que puedes definir en un client grant, consulta Atributos de client grant. Para obtener información sobre cómo definir y administrar client grants, consulta Crear client grant.

Políticas de acceso de aplicaciones a la API y client grants

Cuando configuras la política de acceso de aplicaciones de una API como 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.

Ejemplo: API de redes sociales

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

Tanto en el acceso de usuario como en el acceso de cliente, los client grants definen el conjunto final de permisos que controlan el acceso de una aplicación a una API. El atributo 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_type en client, define sus permisos de máquina a máquina.
  • Cuando establece subject_type en user, define sus permisos para actuar en nombre del usuario.
La siguiente tabla explica cómo los client grants controlan el acceso de las aplicaciones a las API según el flujo del tipo de acceso:
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

Un client grant tiene varios atributos que puede definir para configurar el acceso de la aplicación a las API mediante la Auth0 Management API:

Crear client grant

Puede crear: Cuando ambos están configurados para la misma API, los permisos por aplicación prevalecen sobre los permisos predeterminados para aplicaciones de terceros.

Permisos por aplicación

Para configurar los permisos por aplicación con Auth0 Dashboard:
  1. Vaya a Dashboard > Applications > APIs y seleccione la API para la que quiere configurar el acceso de la aplicación.
  2. 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.
  3. Seleccione Save para guardar la configuración de Application Access Policy.
Configuración de la API en el Dashboard para Application Access Policy
Para los permisos por aplicación, debe autorizar el acceso a la API individualmente para cada aplicación.
  1. Vaya a Applications > APIs y seleccione la API.
  2. Vaya a la pestaña Application Access.
  3. 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.
  4. Seleccione Save.
Configuración de la API en el Dashboard para conceder acceso a la API a una aplicación

Permisos predeterminados para aplicaciones de terceros

Las aplicaciones de terceros siempre requieren un client grant explícito para acceder a cualquier API, incluso cuando la política de acceso de la API está configurada en Allow All. Para simplificar la administración si tiene muchas aplicaciones de terceros o usa Dynamic Client Registration, configure grants o permisos predeterminados que se apliquen automáticamente a todas las aplicaciones de terceros. Un client grant predeterminado para terceros usa el atributo 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.
Los atributos 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.
Para configurar permisos predeterminados para aplicaciones de terceros con Auth0 Dashboard:
  1. Vaya a Dashboard > Applications > APIs y seleccione la API para la que desea configurar el acceso de las aplicaciones.
  2. 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.
  3. Seleccione Save.
Configuración de API en el Dashboard con permisos predeterminados para aplicaciones de terceros

Actualizar el client grant

Para actualizar un client grant existente, realiza una solicitud PATCH a /client-grants/{id}:

Eliminar client grant

Para eliminar un client grant, realiza una solicitud DELETE a /client-grants/{id}:

Obtener client grants

También puede consultar y paginar la colección client-grants mediante parámetros como client_id, audience o subject_type:

Más información