Tipo de permiso de credenciales de contraseña de propietario de recurso
Utilice este tipo de permiso cuando el propietario del recurso tenga una relación de confianza con el cliente, como un sistema operativo de computadora o una aplicación con privilegios altos, porque el cliente debe desechar la contraseña después de utilizarla para obtener el token de acceso.
En el siguiente diagrama se muestra el flujo Resource Owner Password Credentials Grant Type.
![Diagrama que ilustra el flujo Resource Owner Password Credentials Grant Type.](../../Resources/Images/diag2_owner_pass_creds_granttype.png)
En este flujo OAuth:
-
El usuario hace clic en un enlace de la aplicación cliente que solicita acceso a recursos protegidos.
-
La aplicación cliente solicita el nombre de usuario y la contraseña del propietario del recurso.
-
El usuario inicia sesión con su nombre de usuario y contraseña.
-
La aplicación cliente intercambia esas credenciales por un token de acceso y, a menudo, por un token de refrescamiento desde el servidor de autorización.
-
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 obtener datos protegidos, como una lista de usuarios.
Función | Disponibles |
---|---|
Requiere autenticación de cliente | No |
Requiere que el cliente tenga conocimiento de las credenciales de usuario | Sí |
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 | Sí |
El token de acceso está en el contexto del usuario final | Sí |
Consulte un ejemplo de Ejemplo de flujo de autorización de tipo de otorgamiento de credenciales de contraseña de propietario de recursos.
Ejemplo de Flujo de Autorización de Tipo de Permiso de Credenciales de Contraseña de Propietario de Recurso
Este ejemplo de flujo de autorización le guía a través de la obtención de un token de acceso mediante las credenciales (usuario) del propietario del recurso.
Al crear una aplicación mediante el tipo de permiso Propietario de recurso en la consola del dominio de identidad:
-
Especifique Trusted Application como tipo de aplicación.
-
Seleccione Propietario de recurso como tipo de permiso.
-
Especifique el URI de redirección, que es donde se envían las respuestas a las solicitudes de autenticación.
Consulte Tipo de permiso de credenciales de contraseña de propietario de recurso para obtener más información sobre el tipo de permiso Credenciales de contraseña de propietario de recurso y un diagrama de flujo de autorización.
Flujo de autorización de autorización
-
Un usuario hace clic en un enlace de la aplicación cliente del servidor web y solicita acceso a recursos protegidos desde una aplicación de servidor web de terceros.
-
La aplicación cliente recopila el nombre de usuario y la contraseña del usuario y solicita un token de acceso del servidor de autorización (AS) OAuth.
La URL de solicitud 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=password&username=<user-name>&password=<example-password>&scope=<scope value>'
Ejemplo de solicitud mediante la cabecera de autorización que incluye el token de refrescamiento en la solicitud
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=password&username=<user-name>&password=<example-password>&scope=<Resource Server Scope>%20offline_access'
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=password&username=<user-name>&password=<example-password>&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 mediante una afirmación de cliente de JWT que incluye el token de refrescamiento en la solicitud
curl -i -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=password&username=<user-name>&password=<example-password>&client_id=<client-id>&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=<client-assertion>&scope=<Resource Server Scope>%20offline_access'
-
El servidor de autorización OAuth devuelve el token de acceso. El token de acceso contiene todos los ámbitos aplicables según los privilegios representados por los roles de aplicación del dominio de identidad otorgados a la aplicación cliente solicitante y el usuario especificado por la solicitud del cliente (si está presente).
Nota
Si se ha realizado una solicitud para un ámbito no válido, se devuelve un error en lugar del token de acceso. -
El sitio solicitante utiliza el token de acceso en una llamada de API para obtener datos protegidos.