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 cliente externa (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 |
Para utilizar el flujo de credenciales de cliente, debe crear una aplicación cliente externa y configurar sus parĆ”metros 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, configura una aplicación cliente externa. A continuación, para configurar su aplicación cliente externa 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 cliente externa envĆa sus credenciales de cliente al extremo de tokens de Salesforce OAuth a travĆ©s de 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 cliente externa utiliza el token de acceso para llamar a una API de Salesforce, como 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 cliente externa 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=*******************Para este flujo, no se admiten las solicitudes a https://login.salesforce.com y https://test.salesforce.com. Utilice su URL de Mi dominio en su lugar. Para buscar la URL de Mi dominio, desde Configuración, en el cuadro Búsqueda rÔpida, ingrese Mi dominio y, a continuación, seleccione Mi dominio.
Estos parƔmetros deben incluirse en la solicitud.
| ParÔmetro | Descripción |
|---|---|
client_id |
La clave de consumidor de la aplicación cliente externa. Para acceder a la clave de consumidor, desde el Gestor de aplicación cliente externa, busque la aplicación cliente externa y seleccione Modificar configuración desde el menĆŗ desplegable. A continuación amplĆe la sección Configuración de OAuth y haga clic en Clave y secreto de consumidor. A veces se le solicita verificar su identidad antes de poder ver la clave de consumidor. |
client_secret |
El secreto de consumidor de la aplicación cliente externa. Para acceder al secreto de consumidor, desde el Gestor de aplicación cliente externa, busque la aplicación cliente externa y seleccione Modificar configuración desde el menĆŗ desplegable. A continuación amplĆe la sección Configuración de OAuth y haga clic en Clave y secreto de consumidor. A veces se le solicita verificar su identidad antes de poder ver el secreto de consumidor. |
grant_type |
El tipo de concesión de OAuth 2.0 que solicita la aplicación cliente externa. 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 cliente externa utiliza para solicitar el acceso a un recurso protegido en nombre de la 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 cliente externa cuando la crea, 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.
Para obtener mÔs información, consulte Tokens y Ômbitos de OAuth. |
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. |

