Tipo de permiso de credenciales de cliente
Utilice este tipo de permiso cuando el ámbito de autorización esté limitado a los recursos protegidos bajo el control del cliente o a los recursos protegidos registrados en el servidor de autorización OAuth.
En el siguiente diagrama se muestra el flujo Tipo de otorgamiento de credenciales de cliente.
En este flujo OAuth:
-
Un evento iniciado por el cliente (por ejemplo, una actualización en segundo plano programada para una aplicación en su dispositivo móvil) solicita acceso a un recurso protegido desde una aplicación cliente OAuth.
-
La aplicación cliente presenta sus propias credenciales para obtener un token de acceso y, a menudo, un token de refrescamiento. Este token de acceso está asociado a los recursos propios del cliente, no a un propietario de recurso concreto, o está asociado a un propietario de recurso para el que la aplicación cliente está autorizada a actuar de cualquier otro modo.
-
El servidor de autorización devuelve el token de acceso a la aplicación cliente.
-
La aplicación cliente utiliza el token de acceso en una llamada de API para actualizar la aplicación en el dispositivo.
Función | Disponibles |
---|---|
Requiere autenticación de cliente | Sí |
Necesita que el cliente conozca las credenciales de usuario | No |
Interacción de usuario final basada en explorador | No |
Puede utilizar un proveedor de identidad externo para la autenticación | No |
Se permite el token de refrescamiento | No |
El token de acceso está en el contexto de la aplicación cliente | Sí |
Consulte Ejemplo de flujo de autorización de tipo de otorgamiento de credenciales de cliente para ver un flujo de ejemplo.
Ejemplo de flujo de autorización de tipo de permiso de credenciales de cliente
El tipo de permiso Credenciales de cliente proporciona un flujo de permiso específico en el que no está implicado el propietario del recurso. En este ejemplo de escenario, la aplicación cliente está ejecutando procesos que no tienen participación del propietario de recursos, por ejemplo, un proceso por lotes o una tarea de servidor a servidor.
Al utilizar este permiso, la aplicación cliente solicita un token de acceso con sus propias credenciales (el ID y el secreto) o una afirmación, y utiliza el token de acceso en nombre de la propia aplicación cliente. Este flujo de otorgamiento es más adecuado cuando un proveedor de servicios desea proporcionar algunos métodos de API que la aplicación cliente debe utilizar en general, en lugar de métodos que se aplican a un propietario de recursos determinado, por ejemplo, métodos de API para el mantenimiento.
Al crear una aplicación mediante el tipo de permiso Credenciales de cliente en la consola del dominio de identidad:
-
Especifique Trusted Application como tipo de aplicación, porque una aplicación móvil/de explorador no tiene un secreto de cliente y no puede utilizar el permiso Credenciales de cliente.
-
Seleccione Credenciales de cliente como tipo de permiso.
Consulte Tipo de permiso de credenciales de cliente para obtener más información sobre el tipo de permiso Credenciales de cliente y un diagrama de flujo de autorización.
Flujo de autorización de autorización
-
Un evento iniciado por el cliente (por ejemplo, una tarea programada) solicita acceso a recursos protegidos desde una aplicación cliente OAuth.
La URL de evento contiene parámetros de consulta que indican el tipo de acceso que se solicita:
Ejemplo de solicitud mediante el encabezado de autorización
curl -i -H 'Authorization: Basic <base64Encoded clientid:secret>' -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=client_credentials&scope=<scope value>'
Ejemplo de solicitud mediante una afirmación de cliente de JWT
curl -i -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=client_credentials&client_id=<client-id>&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=<client-assertion>&scope=<scope value>'
- La aplicación cliente solicita un token de acceso del servidor de autorización OAuth.
- El servidor de autorización OAuth autentica la aplicación cliente según la cabecera de autorización o la afirmación enviada y devuelve un token de acceso que contiene todos los ámbitos aplicables en función de los privilegios representados por los roles de aplicación otorgados a la aplicación cliente solicitante.
- La aplicación cliente utiliza el token de acceso para realizar una solicitud.