Tipo de permiso de autenticación de cliente TLS
Se utiliza cuando el ámbito de autorización está limitado a la protección de recursos bajo el control del cliente o a la protección de recursos registrados en el Servidor de Autorización OAuth.
En el siguiente diagrama se muestra el flujo de tipo de permiso de autenticación de cliente TLS.
Requisito previo: cargue el certificado de cliente en el almacén de certificados de cliente.
- Como parte del establecimiento de comunicación de TLS, la aplicación cliente presenta su propio certificado e ID de cliente para obtener un token de acceso. Nota: Este certificado debe coincidir con el certificado del almacén de certificados de cliente.
- Este token de acceso solicitado está asociado con los recursos propios del cliente, no al propietario 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 solo después de la validación correcta del certificado.
- La aplicación cliente utiliza el token de acceso en una llamada de API para actualizar la aplicación.
| 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 símbolo de 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 permiso de autenticación de cliente TLS para obtener un flujo de ejemplo.
Ejemplo de flujo de autorización de tipo de permiso de autenticación de cliente TLS
El tipo de permiso de autenticación de cliente de seguridad de capa de transporte (TLS) proporciona un flujo de permiso específico en el que el propietario del recurso no está involucrado. En este 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.
Cuando se utiliza este tipo de permiso, la aplicación cliente solicita un token de acceso con su propio certificado (el certificado que se carga en el perfil de cliente) junto con el ID de cliente 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 de API que se aplican a un determinado propietario de recursos, por ejemplo, métodos de API para el mantenimiento.
- Especifique la aplicación confidencial como tipo de aplicación. Las aplicaciones móviles/de explorador no tienen un certificado de cliente y no pueden utilizar el tipo de permiso de autenticación de cliente TLS.
- Seleccione Autenticación de Cliente de TLS como tipo de permiso.
- Seleccione Confidencial o Confidencial como Tipo de cliente.
- Importe el certificado de cliente. Este certificado se utiliza para validar la solicitud de token. Nota: El cliente debe utilizar este mismo certificado en la solicitud de token.
Consulte TLS Client Authentication Grant Type para obtener más información sobre el tipo de permiso de autenticación de cliente TLS y un diagrama de 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ónNota
cacert.crt es el certificado de autoridad de certificación que firmó el certificado del servidor para este TLS.
client.key es una clave privada de cliente.
client.crt es un certificado de cliente.
curl -i --cacert cacert.crt --key client.key --cert client.crt -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=tls_client_auth&client_id=<client ID>&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 del certificado enviado como parte del establecimiento de comunicación TLS.
- Devuelve un token de acceso que contiene todos los ámbitos aplicables en función de los privilegios especificados 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.