Flujo de OAuth 1.0.A
Si su organización utiliza el protocolo OAuth 1.0.A, utilice este flujo de autorización para integrar un cliente (a través de una aplicación conectada) con la API de Salesforce.
Ediciones necesarias
| Disponible en: Salesforce Classic y Lightning Experience |
| Disponible en: todas las ediciones |
| Permisos de usuario necesarios | |
|---|---|
| Para gestionar, crear, modificar y eliminar aplicaciones OAuth: | Gestionar aplicaciones conectadas |
Estos son los pasos de autorización principales.
- La aplicación conectada solicita un token de solicitud. Salesforce verifica la petición y devuelve un token de solicitud.
- El usuario inicia sesión y autoriza a la aplicación conectada a acceder a los datos.
- La aplicación conectada solicita un token de acceso.
- Después de que Salesforce verifique la solicitud y otorgue el token, la aplicación conectada accede a los datos.
Si desea consultar la lista de posibles códigos de error devueltos por Salesforce, consulte Códigos de error de OAuth 1.0.A.
Solicitar un token de solicitud
Para iniciar el flujo de OAuth 1.0.A, la aplicación conectada envía una solicitud al extremo del controlador de solicitudes de OAuth de Salesforce (https://login.salesforce.com/_nc_external/system/security/oauth/RequestTokenHandler).
Incluya los siguientes parámetros de OAuth en la solicitud.
Después de que Salesforce reciba la solicitud, realiza lo siguiente:
- Valida la solicitud con su propia copia de la pregunta secreta de consumidor.
- Genera una respuesta que contenga un token de solicitud y un secreto de token de solicitud en el cuerpo del HTTP como pares de nombre y valor.
- Envía la respuesta de vuelta al consumidor.
Un token de solicitud es válido durante 15 minutos, más 3 minutos de margen para compensar las diferencias entre los relojes de las máquinas.
El usuario autoriza el acceso
Después de que la aplicación conectada realice su solicitud inicial del token de solicitud, se solicita al usuario que autorice el acceso.
- La aplicación conectada redirige al usuario a https://login.salesforce.com/setup/secur/RemoteAccessAuthorizationPage.apexp. Los parámetros de consulta GET adecuados se anexan a esta URL.
oauth_token(token de solicitud)oauth_consumer_key
Nota Si se incluye un parámetrooauth_callback, se ignora. - Se solicita al usuario que autorice el acceso para la aplicación conectada en la página Autorización de acceso remoto.
- Después de que el usuario autoriza el acceso, Salesforce genera el token de acceso y el secreto del token de acceso.
Nota Un usuario puede otorgar un número limitado de tokens de acceso simultáneos a una aplicación. El valor predeterminado es cinco por aplicación y usuario. Si esta autorización supera el límite de la organización, se notifica al usuario y se revocan los últimos tokens utilizados. - Salesforce verifica la URL de devolución de llamada y redirige al usuario de la manera siguiente.
- Si
oauth_callbackdefinida en el token de solicitud esooby la URL de devolución de llamada de la aplicación conectada es válida, se redirige al usuario a esa URL. - Si
oauth_callbackdefinida en el token de solicitud es una URL válida, al usuario se le redirige a esa URL.
- Si
Solicitar el token de acceso
Después de que el usuario autoriza el acceso para la aplicación conectada, la aplicación conectada puede intercambiar un token de solicitud por un token de acceso. Realiza una solicitud GET o POST HTTPS a https://login.salesforce.com/_nc_external/system/security/oauth/AccessTokenHandler. Incluya estos parámetros en la consulta o los datos de publicación.
| Parámetro | Descripción |
|---|---|
oauth_consumer_key
|
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 y verifique su identidad. |
oauth_signature_method
|
El método de firma de OAuth debe ser HMAC-SHA1 para este flujo. |
| oauth_signature | Firma de OAuth utilizada para el inicio de sesión, que genera según la especificación de OAuth para HMAC-SHA1. Consulte oauth_signature. |
oauth_timestamp
|
Marca de tiempo del momento de creación de la firma. |
oauth_token
|
El token de solicitud que recibió la aplicación conectada en su solicitud inicial. |
oauth_nonce
|
Opcional. Permite al proveedor de servicio verificar que no se realizó una solicitud antes, y ayuda a evitar los ataques de repetición. |
oauth_verifier
|
El secreto del token de solicitud que recibió la aplicación conectada en su solicitud inicial. |
oauth_version
|
Opcional. Si se incluye, la versión de OAuth debe ser 1.0 para este flujo. |
Salesforce valida estos elementos en la solicitud:
- Pregunta secreta de consumidor
- Clave de consumidor
- Firma
- Si el token de solicitud se utilizó antes
- La marca de hora (debe ser de como mucho 15 minutos, más 3 minutos de margen para compensar las diferencias entre los relojes de las máquinas)
- Si el valor instantáneo se ha utilizando antes
En la validación, Salesforce devuelve el token de acceso y el secreto del token de acceso en el cuerpo de la respuesta HTTP como pares de nombre y valor.
Acceder a datos
Después de que la aplicación conectada posea un token de acceso válido, puede acceder a los datos de Salesforce publicando una solicitud en https://login.salesforce.com. Los siguientes parámetros se incluyen en el encabezado de autorización POST HTTP.
| Parámetro | Descripción |
|---|---|
oauth_consumer_key
|
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. |
oauth_token
|
El token de acceso que recibió la aplicación conectada de Salesforce. |
oauth_signature_method
|
El método de firma de OAuth debe ser HMAC-SHA1 para este flujo. |
| oauth_signature | Firma de OAuth utilizada para el inicio de sesión, que genera según la especificación de OAuth para HMAC-SHA1. Consulte oauth_signature. |
oauth_timestamp
|
Marca de tiempo del momento de creación de la firma. |
oauth_nonce
|
Opcional. Permite al proveedor de servicio verificar que no se realizó una solicitud antes, y ayuda a evitar los ataques de repetición. |
oauth_version
|
Opcional. Si se incluye, la versión de OAuth debe ser 1.0 para este flujo. |
Salesforce valida la solicitud y envía un Id. de sesión válido a la aplicación conectada. El Id. de sesión es efímero y solo es válido para frontdoor.jsp. Para obtener un Id. de sesión que se pueda utilizar directamente, utilice el intercambio de tokens de acceso de API.
Una vez que la aplicación conectada cuenta con un token de acceso válido, puede solicitar el acceso a los datos de Salesforce usando la API de Lightning Platform. La aplicación conectada puede publicar una solicitud en https://login.salesforce.com/services/OAuth/tipo/versión-api.
Sustituya las variables de la URL por lo siguiente:
- tipo debe tener uno de los siguientes valores.
u: WSDL de socioc: WSDL de compañía
- versión-api debe ser una versión válida de API.
Incluya los siguientes parámetros en el encabezado de autorización POST HTTPS.
| Parámetro | Descripción |
|---|---|
oauth_consumer_key |
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. |
oauth_token |
El token de acceso que recibió la aplicación conectada de Salesforce. |
oauth_signature_method |
El método de firma de OAuth debe ser HMAC-SHA1 para este flujo. |
| oauth_signature | Firma de OAuth utilizada para el inicio de sesión, que genera según la especificación de OAuth para HMAC-SHA1. Consulte oauth_signature. |
oauth_timestamp |
Marca de tiempo del momento de creación de la firma. |
oauth_nonce |
Opcional. Permite al proveedor de servicio verificar que no se realizó una solicitud antes, y ayuda a evitar los ataques de repetición. |
oauth_version |
Opcional. Si se incluye, la versión de OAuth debe ser 1.0 para este flujo. |
Salesforce valida la solicitud y envía un Id. de sesión válido al consumidor. El encabezado de la respuesta incluye el siguiente contenido.
<response>
<metadataServerUrl>https://yourInstance.salesforce.com/services/Soap/m/17.0/00D300000006qjK
</metadataServerUrl>
<sandbox>false</sandbox>
<serverUrl>https://yourInstance.salesforce.com/services/Soap/u/17.0/00D300000006qjK
</serverUrl>
<sessionId>00D300000006qrN!AQoAQJTMzwTa67tGgQck1ng_xgMSuWVBpFwZ1xUq2kLjMYg6Zq
GTS8Ezu_C3w0pdT1DMyHiJgB6fbhhEPxKjGqlYnlROIUs1</sessionId>
</response>
