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 muchos privilegios, 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 Tipo de otorgamiento de credenciales de contraseña de propietario de recurso.

Diagrama que ilustra el flujo de tipo de permiso de credenciales de contraseña de propietario de recurso.

En este flujo OAuth:

  1. El usuario hace clic en un enlace de la aplicación cliente que solicita acceso a los recursos protegidos.

  2. La aplicación cliente solicita el nombre de usuario y la contraseña del propietario del recurso.

  3. El usuario inicia sesión con su nombre de usuario y contraseña.

  4. La aplicación cliente intercambia esas credenciales por un token de acceso y, a menudo, un token de refrescamiento desde el servidor de autorización.

  5. El servidor de autorización devuelve el token de acceso a la aplicación cliente.

  6. 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 Disponible
Requiere autenticación de cliente No
Requiere que el cliente tenga conocimiento de las credenciales de usuario
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
El token de acceso está en el contexto del usuario final

Consulte un ejemplo de Resource Owner Password Credentials Grant Type Authorization Flow Example.

Ejemplo de flujo de autorización de tipo de permiso para credenciales de contraseña del propietario del 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 Aplicación de confianza 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 Resource Owner Password Credentials Grant Type para obtener más información sobre el tipo de permiso Credenciales de contraseña del propietario del recurso y un diagrama de flujo de autorización.

Flujo de autorización

  1. Un usuario hace clic en un enlace de la aplicación cliente de servidor web, solicitando acceso a los recursos protegidos desde una aplicación de servidor web de terceros.

  2. 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 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=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 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'

    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_'
  3. El servidor de autorización OAuth devuelve el token de acceso. El token de acceso contiene todos los ámbitos aplicables en función de los privilegios representados por los roles de aplicación del dominio de identidad otorgados a la aplicación cliente solicitante y al usuario que está especificando la solicitud del cliente (si existe).

    Nota

    Si se ha realizado una solicitud para un ámbito no válido, se devuelve un error en lugar del token de acceso.
  4. El sitio solicitante utiliza el token de acceso en una llamada de API para obtener datos protegidos.