Tipo de permiso de afirmación
Utilice este tipo de permiso si desea utilizar una relación de confianza existente expresada como afirmación y sin un paso de aprobación de usuario directo en el servidor de autorización OAuth.
En el siguiente diagrama se muestra el flujo Tipo de permiso de afirmación.
En este flujo OAuth:
-
Un usuario intenta acceder a una aplicación cliente enviando una afirmación de usuario generada.Nota
El proceso de adquisición de la afirmación está fuera del ámbito de esta explicación -
La aplicación cliente solicita un token de acceso y, a menudo, un token de refrescamiento, proporcionando una afirmación de usuario o una afirmación de usuario de terceros y credenciales de cliente.
-
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 | Sí |
Necesita que el cliente conozca las credenciales de usuario | No |
Interacción de usuario final basada en explorador Nota: El proceso para generar la afirmación puede implicar la interacción del usuario. |
No |
Puede utilizar un proveedor de identidad externo para la autenticación | Sí |
Se permite el token de refrescamiento | Sí |
El token de acceso está en el contexto del usuario final Un token de acceso estará en el contexto del asunto de la afirmación, que puede ser un usuario final, un servicio o el propio cliente. |
Tal vez |
Consulte un ejemplo del flujo de autorización Assertion Grant Type.
Ejemplo de flujo de autorización de tipo de otorgamiento de afirmación
En este flujo de ejemplo, Example.com se ha suscrito a varias aplicaciones PaaS y SaaS de Oracle Cloud. Los usuarios de Example.com desean poder acceder a las propiedades de Oracle Cloud sin tener que pasar por el proceso de autorización ellos mismos (autorización delegada).
El comando de este ejemplo utiliza la estructura de URL
https://<domainURL>/resource-path
, donde <domainURL>
representa la URL del servicio de identidad y la ruta de acceso del recurso representa la API del servicio de identidad. Consulte Enviar solicitudes para obtener la estructura de URL adecuada que se debe utilizar.-
Especifique Aplicación móvil como tipo de aplicación.
-
Seleccione Afirmación como tipo de permiso.
Consulte Tipo de permiso de afirmación para obtener más información sobre el tipo de permiso de afirmación y un diagrama de flujo de autorización.
Flujo de autorización de autorización
-
Un usuario intenta acceder a una aplicación cliente (como JCS).
La URL contiene parámetros de consulta que indican el tipo de acceso que se solicita. La afirmación SAML2 está codificada en Base64 y el valor de destinatario de la afirmación SAML debe ser uno de los siguientes:
- Emisor en el campo Emisor de la configuración OAuth en la interfaz de usuario.
- O bien,
https://<domainURL>/
. - O bien, el valor de
secure_saml_sp_sso_endpoint
en la respuesta de detecció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 el encabezado 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'
-
Un agente de Oracle Web Services Manager (del cliente) intercepta la aplicación cliente realizando una llamada de API de REST al servidor de recursos (aplicaciones de Fusion) para obtener un token de acceso.
-
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.
-
El usuario puede acceder a una aplicación de OPC desde otra aplicación de OPC.