Tipo de permiso de credenciales de cliente
Se utiliza este tipo de permiso cuando el alcance de autorización está limitado a recursos protegidos bajo el control del cliente o a recursos protegidos registrados en el Servidor de autorización OAuth.
En el siguiente diagrama se muestra el flujo de 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 con los recursos propios del cliente, no con un responsable de recurso concreto, o bien está asociado con un responsable de recurso para el que el cliente está autorizado a actuar en 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 | Disponible |
|---|---|
| Requiere autenticación de cliente | Sí |
| Requiere que el cliente conozca las credenciales de usuario | No |
| Interacción con el usuario final basada en explorador | No |
| Puede utilizar un proveedor de identidad externo para la autenticación | No |
| Se permite el token para refrescamiento | No |
| El token de acceso se encuentra 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 obtener un flujo de ejemplo.
Ejemplo de flujo de autorización de tipo de otorgamiento de credenciales de cliente
El tipo de permiso Credenciales de cliente proporciona un flujo de permiso específico en el que el propietario del recurso no está involucrado. En este ejemplo de escenario, la aplicación cliente está ejecutando procesos que no tienen participación de 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 (ID y 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 debe utilizar la aplicación cliente en general, en lugar de métodos que se aplican a un determinado propietario de recursos, 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 Aplicación de confianza como tipo de aplicación, porque una aplicación móvil/navegador 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
-
Un evento iniciado por el cliente (por ejemplo, una tarea programada) solicita acceso a los recursos protegidos desde una aplicación cliente OAuth.
La URL del evento contiene parámetros de consulta que indican el tipo de acceso que se solicita:
Ejemplo de solicitud mediante la cabecera 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 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>'
Ejemplo de solicitud usando mTLS
Para obtener información sobre cómo obtener
secureDomainURL, consulte Acceso a tipos de permiso.curl -v \ --cert cert.crt \ --key key.key \ --cacert ca.crt \ --location '<secureDomainURL>/oauth2/v1/token' \ --header 'Authorization: Basic <base64Encoded clientid:secret>' --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id=<client-id>' \ --data-urlencode 'scope=urn:opc:idm:_myscopes_' - La aplicación cliente solicita un token de acceso desde el servidor de autorización OAuth.
- El servidor de autorización OAuth autentica la aplicación cliente en función de 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.