Flujo de credenciales de cliente de OAuth 2.0 para la integración de servidor a servidor
En ocasiones, desea compartir directamente información entre dos aplicaciones sin molestar a un usuario. Para estos escenarios, puede utilizar el flujo de credenciales de cliente de OAuth 2.0. En este flujo, la aplicación cliente intercambia sus credenciales de cliente definidas en la aplicación conectada (su clave de consumidor y secreto de consumidor) para un token de acceso. Este flujo elimina la necesidad de interacción de usuario explĆcita, aunque le requiere especificar un usuario de integración para ejecutar la integración. Puede utilizar este flujo como una alternativa mĆ”s segura al flujo de nombre de usuario-contraseƱa de OAuth 2.0.
Ediciones necesarias
| Disponible en: Salesforce Classic y Lightning Experience |
| Disponible en: todas las ediciones |
Consulte Las nuevas aplicaciones conectadas ya no se pueden crear en Spring ā26 para obtener mĆ”s detalles.
Para utilizar el flujo de credenciales de cliente, debe crear una aplicación conectada y configurar sus configuraciones de OAuth y polĆticas de acceso.
Por ejemplo, crea una aplicación personalizada para ejecutar reportes automatizados desde Salesforce. Desea que la aplicación ejecute reportes cada noche. Para integrar su aplicación personalizada con Salesforce, debe configurar una aplicación conectada. A continuación, para configurar su aplicación conectada para el flujo de credenciales de cliente, activa el flujo y asigna un usuario de integración. Cuando se inicia el servicio de reportes nocturno, su aplicación personalizada accede a los datos de Salesforce utilizando estos pasos de alto nivel.
- La aplicación conectada envĆa sus credenciales de cliente al extremo de tokens de OAuth de Salesforce mediante una solicitud POST.
- Salesforce valida las credenciales de cliente y autentica la aplicación.
- Salesforce devuelve un token de acceso en nombre del usuario de integración que asignó.
- La aplicación conectada utiliza el token de acceso para llamar a una API de Salesforce, como la API de REST.
- La API responde con los datos solicitados para el reporte.
Solicitar un token de acceso
Desglosemos el proceso de obtención de un token de acceso con el flujo de credenciales del cliente.
Para iniciar el flujo, la aplicación conectada publica sus credenciales de cliente en el extremo de tokens de Salesforce. Puede incluir las credenciales de cliente como parÔmetros en el cuerpo de la solicitud. O bien, para mÔs seguridad, ponga las credenciales de su cliente en un encabezado de autorización bÔsica.
A continuación se incluye un ejemplo de solicitud POST con las credenciales de cliente en el cuerpo de la solicitud.
POST /services/oauth2/token HTTP/1.1
Host: MyDomainName.my.salesforce.com
grant_type=client_credentials&
client_id=*******************&
client_secret=*******************Estos parƔmetros deben incluirse en la solicitud.
| ParÔmetro | Descripción |
|---|---|
client_id |
Haga clic en la clave de consumidor de la aplicación conectada. Para acceder a la clave de consumidor, desde el Gestor de aplicaciones, busque la aplicación conectada y seleccione Ver desde el menú desplegable. A continuación haga clic en Gestionar detalles de consumidor. A veces se le solicita verificar su identidad antes de poder ver la clave de consumidor. |
client_secret |
Haga clic en el secreto de consumidor de la aplicación conectada. Para acceder al secreto de consumidor, desde el Gestor de aplicaciones, busque la aplicación conectada y seleccione Ver desde el menú desplegable. A continuación haga clic en Gestionar detalles de consumidor. A veces se le solicita verificar su identidad antes de poder ver el secreto de consumidor. |
grant_type |
El tipo de otorgamiento de OAuth 2.0 que solicita la aplicación conectada. Para el flujo de credenciales de cliente, este valor se debe establecer en Para obtener una explicación detallada del tipo de otorgamiento de credenciales de cliente, consulte la sección Otorgar credenciales de cliente en El marco de trabajo de autorización OAuth 2.0 desde la Grupo de tareas de ingenierĆa de Internet. |
A continuación se incluye un ejemplo con las credenciales de cliente en un encabezado de autorización bÔsica. Con este formato, client_id se anexa a client_secret en el formato client_id:client_secret, y el valor resultante tiene codificación Base64.
POST /services/oauth2/token HTTP/1.1
Host: MyDomainName.my.salesforce.com
Header: Authorization: Basic
TXlDbGllbnRJRDpNeUNsaWVudFNlY3JldA==
grant_type=client_credentialsSi utiliza este formato, grant_type es el único parÔmetro requerido en el cuerpo de la solicitud. grant_type debe establecerse como client_credentials.
Salesforce otorga un token de acceso
Después de validar las credenciales del cliente, Salesforce devuelve una respuesta que contiene un token de acceso y Ômbitos solicitados. La aplicación puede utilizar el token de acceso para acceder a datos protegidos en Salesforce.
A continuación se incluye un ejemplo de respuesta de token de acceso en formato JSON.
{
"access_token": "*******************",
"instance_url": "https://yourInstance.salesforce.com",
"id": "https://login.salesforce.com/id/XXXXXXXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXX",
"token_type": "Bearer",
"scope": "id api",
"issued_at": "1657741493799",
"signature": "c2lnbmF0dXJl"
}Estos parƔmetros se incluyen en la respuesta.
| ParÔmetro | Descripción |
|---|---|
access_token
|
Token de OAuth que una aplicación conectada utiliza para solicitar el acceso a un recurso protegido en nombre de una aplicación cliente. Pueden acompañar permisos adicionales en la forma de Ômbitos al token de acceso. |
instance_url
|
Una URL que indica la instancia de la organización del usuario. Por ejemplo: https://yourInstance.salesforce.com/. |
id
|
Una URL de identidad que se puede utilizar para identificar la organización y el usuario de integración. El formato de la URL es https://login.salesforce.com/id/orgID/userID. |
token_type
|
Un tipo de token Bearer, que se utiliza para todas las respuestas que influyen un token de acceso.
|
scope
|
Los Ômbitos asociados con el token de acceso. Los Ômbitos definen mÔs el tipo de recursos protegidos a los que el cliente puede acceder. Usted asigna Ômbitos a una aplicación conectada cuando la construye, y se incluyen con los tokens de OAuth durante el flujo de autorización. Debido a que el flujo de credenciales de cliente no admite sesiones de la interfaz de usuario y no emite un token de actualización, Salesforce filtra automÔticamente estos Ômbitos.
|
issued_at
|
Marca de tiempo del momento de creación de la firma en milisegundos. |
signature
|
Firma HMAC-SHA256 con codificación Base64 firmada con client_secret. La firma puede incluir el Id. concatenado y el valor issued_at, que puede utilizar para verificar que la URL de identidad no cambió desde que la envió el servidor. |

