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 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.

  • En el procedimiento, se utilizan ejemplos de cURL para obtener un token de acceso de los dominios de identidad y, a continuación, acceder a un punto final de REST del 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
  • Identificador de Cliente
  • Secreto de cliente
  • URL de público principal
  • Ámbito permitido
  1. Inicie sesión en el 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, haga clic en Identity Cloud.

  3. En el separador Visión general, busque la sección Instancias de servicio y, a continuación, copie el valor que se muestra 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. Haga clic en Abrir consola de servicio, amplíe el Cajón de navegación y, a continuación, haga clic en Aplicaciones.

  5. En el campo de búsqueda, introduzca PSM y, a continuación, haga clic en el icono de búsqueda. En los resultados, busque la entrada titulada Aplicación 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. Haga clic en el nombre de la aplicación denominada Aplicación PSM para soporte de API OAuth. El nombre tiene el formato PSMApp-cacct-string-of-letters-and-numbers.

    Por ejemplo:

    PSMApp-cacct-9z8x7c6v5b4n3m

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

  7. Haga clic en 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. Haga clic en Mostrar secreto y, a continuación, copie el valor.

    Este 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 de 1PaaS.

    urn:opc:resource:consumer::all

Obtener un token de acceso OAuth

Con la información recopilada, utilice el punto final de la 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 identificador 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 para el 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 de acceso OAuth 2.0, proporcione el token en una cabecera de token de portador de la solicitud 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 token 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 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"