Uso de un token OAuth para Platform Services

El servicio de token OAuth 2.0 proporcionado por los dominios de identidad es un mecanismo que permite utilizar un token seguro para acceder a los puntos finales de REST de Oracle Cloud Platform Services (PaaS).

Nota

  • Para acceder a un servicio de plataforma en la nube que está integrado con dominios de identidad, necesita la URL del dominio de identidad. Si no conoce la URL del dominio de identidad, consulte Búsqueda de una URL de dominio de identidad.

  • Los ejemplos de cURL se utilizan en el procedimiento para obtener un token de acceso de los dominios de identidad y, a continuación, acceder a un punto final de REST de servicio de plataforma en la nube con el token.

Un token de acceso OAuth tiene un valor de caducidad de 86 400 segundos (24 horas). Para realizar solicitudes de API de REST 24 horas después de obtener un token de acceso, debe obtener un nuevo token.

Requisitos

Obtenga la siguiente información del dominio de identidad antes de empezar.

  • URL del dominio de identidad
  • ID de cliente
  • Secreto de cliente
  • URL de público principal
  • Ámbito permitido
  1. Conéctese al panel de control Mis servicios del dominio de identidad.

    Nota

    Debe tener el rol de administrador del dominio de identidad o el rol de administrador PaaS para seguir los pasos de este procedimiento.
  2. En la lista de servicios, busque la entrada para el dominio de identidad y, a continuación, seleccione Identity Cloud.

  3. En el separador Visión general, busque la sección Instancias de servicio y, a continuación, copie el valor mostrado en el campo URL de instancia de servicio.

    Por ejemplo: https://<domainURL>.identity.oraclecloud.com/ui/v1/adminconsole

    Donde <domainURL> es la parte del servidor REST de la URL del dominio de identidad (que forma parte de la URL de punto final para solicitar un token de acceso).

  4. Seleccione Abrir consola de servicio, amplíe el Cajón de navegación y, a continuación, seleccione Aplicaciones.

  5. En el campo de búsqueda, introduzca PSM y, a continuación, seleccione el icono de búsqueda. En los resultados, busque la entrada titulada Aplicación de PSM para soporte de API OAuth.

    Nota

    La aplicación Platform Service Manager (PSMApp) no está disponible para las cuentas de Oracle Cloud creadas antes de la versión 18.1.4.
  6. Seleccione el nombre de la aplicación titulada Aplicación de PSM para soporte de API OAuth. El nombre tiene el formato PSMApp-cacct-string-of-letters-and-numbers.

    Por ejemplo:

    PSMApp-cacct-9z8x7c6v5b4n3m

    Esta es la aplicación cliente de PSM de confianza del dominio de identidad, que se crea automáticamente para las cuentas de Oracle Cloud (después de la versión 18.1.4) y se asocia con Oracle Cloud Platform Service.

  7. Seleccione Configuración. En Información general, copie el valor que se muestra en el campo ID de cliente.

    Este es el ID de cliente PSMApp. Por ejemplo:

    PSMApp-cacct-9z8x7c6v5b4n3m_APPID

  8. Seleccione Mostrar secreto y, a continuación, copie el valor.

    Éste es el secreto de cliente PSMApp. Por ejemplo:

    c53b437-1768-4cb6-911e-1e6eg2g3543

  9. Amplíe Recursos. Copie el valor que se muestra en el campo Público principal.

    Esta es la URL de público principal PSMApp. Por ejemplo:

    https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.com

  10. En la sección Ámbitos permitidos, copie el valor de Ámbito para el permiso 1PaaS.

    urn:opc:resource:consumer::all

Obtener un token de acceso OAuth

Con la información que ha recopilado, utilice el punto final de API de REST de los dominios de identidad /oauth2/v1/token para obtener un token.

   curl -k 
   -X POST -u "client-id:client-secret" 
   -d "grant_type=password&username=yourusername&password=yourpassword&scope=https://primary-audience-and-scope" "https://identity-cloud-service-instance-url/oauth2/v1/token"

Donde:

  • client-id es el ID de cliente PSMApp

  • client-secret es el secreto de cliente PSMApp

  • yourusername es el nombre de usuario del servicio de plataforma en la nube con un rol de administrador

  • yourpassword es la contraseña del nombre de usuario

  • primary-audience-and-scope es una concatenación de la URL de público principal PSMApp y el ámbito de permiso 1PaaS

  • identity-cloud-service-instance-url es la parte del servidor REST de la URL del dominio de identidad

Por ejemplo:

   curl -k 
-X POST -u "PSMApp-cacct-9z8x7c6v5b4n3m_APPID:c53b437-1768-4cb6-911e-1e6eg2g3543" 
-d "grant_type=password&username=yourusername&password=yourpassword&scope=https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.comurn:opc:resource:consumer::all" "https://<domainURL>.identity.oraclecloud.com/oauth2/v1/token"

A continuación, se muestra un ejemplo de la respuesta devuelta.

{
    "access_token": "eyJ7NXQ...fMf46Q0yKopDxQ",
    "token_type": "Bearer",
    "expires_in": 86400
}
Nota

La cadena de token se trunca en la respuesta de ejemplo. Copie toda la cadena de token (entre las comillas) como se muestra en la respuesta.

Uso del token de acceso OAuth en solicitudes de API de REST de Cloud Platform Service

Después de obtener un token del acceso OAuth 2.0, proporcione el token en una cabecera de token del portador de la solicitud de REST del servicio de plataforma en la nube.

   curl -i 
   -X GET 
   -H "Authorization: Bearer token-string" "https://primary-audience/rest-endpoint-path"

Donde:

  • token-string es el símbolo de acceso OAuth que ha obtenido

  • primary-audience es la URL de público principal PSMApp

  • rest-endpoint-path es la ruta relativa que define el recurso REST del servicio de plataforma en la nube. Tenga en cuenta que el ID de dominio de identidad se puede utilizar en la ruta.

Por ejemplo, el siguiente comando de cURL recupera todas las instancias de Oracle Java Cloud Service.
   curl -i -X GET 
   -H "Authorization: Bearer eyJ7NXQ...fMf46Q0yKopDxQ" "https://psm-cacct-9z8x7c6v5b4n3m.console.oraclecloud.com/paas/api/v1.1/instancemgmt/idcs-9a888b7e6ebb44b4b65/services/jaas/instances"