Flujo de token de usuario-agente híbrido OAuth 2.0 para Gestión de sesión web
Utilice el flujo de token de usuario-agente híbrido de OAuth 2.0 para proporcionar a aplicaciones híbridas gestión directa de sesiones web. Cuando el servidor que autoriza otorga un token de acceso, incluye los Id. de sesión (SID) para los dominios solicitados en su respuesta. Tras la autorización, la aplicación híbrida puede establecer cookies de dominio de contenido, Lightning y Visualforce y acortar un token de acceso en una sesión web, proporcionando servicio ininterrumpido.
Ediciones necesarias
| Disponible en: Salesforce Classic y Lightning Experience |
| Disponible en: Todas las ediciones |
El flujo de token usuario-agente híbrido sigue los mismos pasos de autorización utilizados en el flujo usuario-agente, con la excepción de que el flujo de token usuario-agente híbrido utiliza hybrid_token como su tipo de otorgamiento. Por ejemplo, crea una aplicación híbrida para su departamento de ventas para acceder a información durante sus desplazamientos, incluyendo un panel que realiza un seguimiento de clientes potenciales de ventas principales. Esta aplicación implementa el flujo de token de aplicación híbrida, que sigue estos pasos.
- Para integrar la aplicación híbrida con la API de Salesforce, cree una aplicación cliente externa. Active la configuración de OAuth y asigne estos ámbitos de OAuth a la aplicación cliente externa:
-
-
lightning -
content -
refresh_token -
visualforce -
web
-
- El usuario final abre la aplicación y se dirige a Salesforce para autenticar y autorizar la aplicación.
- Después de que el usuario apruebe el acceso para este flujo de autorización, la aplicación cliente externa recibe la devolución de llamada desde Salesforce a la URL de redireccionamiento, que extrae los tokens de acceso y actualización. Los SID de contenido, Visualforce y Lightning para los dominios respectivos también están incluidos, junto con cookies de sesión que permiten a la aplicación acortar directamente una sesión web.
- La aplicación establece las cookies de sesión de Lightning, Visualforce y contenido y acorta un token de acceso en una sesión web.
- El usuario puede acceder al panel de clientes potenciales de ventas principales sin sesiones interrumpidas.
Este es el desglose de cada paso del flujo de aplicación híbrida de OAuth 2.0.
- Cree una aplicación cliente externa para la aplicación híbrida.
- La aplicación redirige los usos al extremo de autorización.
- El usuario autentica y autoriza el acceso.
- Salesforce otorga el token de acceso y los ámbitos solicitados.
Nota El flujo híbrido usuario-agente solo puede emitir tokens de acceso opacos. No admite tokens de acceso basados en JWT. - La aplicación establece directamente los SID en las cookies de sesión de los dominios y acorta el acceso en una sesión web.
Redireccionamiento al extremo de autorización
Para obtener la autorización de un usuario para acceder a datos de Salesforce, la aplicación redirige el usuario al extremo de autorización. A continuación se incluye un redireccionamiento HTTP de ejemplo.
https://login.salesforce.com/services/oauth2/authorize?response_type=hybrid_token&
client_id=3MVG9lKcPoNINVBIPJjdw1J9LLJbP_pqwoJYyuisjQhr_LLurNDv7AgQvDTZwCoZuDZrXcPCmBv4o.8ds.5iE&
redirect_uri=https%3A%2F%2Flogin.salesforce.com%2Fservices%2Foauth2%2Fsuccess&scope=web%20visualforce%20refresh_token%20lightning%20content
Incluya estos parámetros en la URL.
| Parámetro | Descripción |
|---|---|
| Extremo de autorización de OAuth 2.0 | El extremo de autorización de OAuth 2.0 de la instancia de Salesforce. Las aplicaciones cliente externas envían solicitudes de autorización de OAuth a este extremo. |
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. |
redirect_uri
|
La URL donde se redirige a los usuarios después de una autenticación satisfactoria. El URI de redireccionamiento debe coincidir con uno de los valores en el campo URL de devolución de llamada de la aplicación cliente externa. De lo contrario, la aprobación falla. Puede encontrar el URI de redireccionamiento en la página Configuración de OAuth de la aplicación cliente externa. Este valor debe tener codificación de URL. |
response_type
|
Utilice el valor de hybrid_token. También puede utilizar el valor de token id_token, con el ámbito de openid y un parámetro nonce. Si especifica token id_token, Salesforce devuelve un token de Id. en la respuesta. Para obtener más información, consulte Tokens y ámbitos de OAuth. |
Estos parámetros son opcionales.
| Parámetro | Descripción |
|---|---|
scope
|
Permisos que definen el tipo de recursos protegidos a los que puede acceder una aplicación cliente externa. 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. Si no incluye este parámetro, se solicitan todos los ámbitos asignados a la aplicación cliente externa. Los ámbitos que se hayan pasado en este parámetro deben ser un subconjunto de los ámbitos registrados. Para consultar los parámetros válidos, vea Ámbitos de OAuth. Para este flujo, asigne el ámbito de
|
state
|
Cualquier estado que solicite el servicio web externo a la URL de devolución de llamadas. Este valor debe tener codificación de URL. |
display
|
Cambia el tipo de visualización de las páginas de inicio de sesión y autorización. Salesforce admite estos valores:
|
login_hint
|
Proporciona un valor de nombre de usuario válido para rellenar previamente la página de inicio de sesión con el nombre de usuario, como Para pasar el parámetro |
nonce
|
Utilice con el ámbito de openid para solicitar un token de Id. de usuario. El token de Id. de usuario se devuelve en la respuesta. Este parámetro es opcional, pero ayuda a detectar ataques de repetición. |
prompt
|
Especifica cómo el servidor de autorización solicita al usuario una reaprobación y reautenticación. Salesforce admite estos valores:
Puede pasar valores de |
El usuario autentica y autoriza el acceso
El usuario inicia sesión en Salesforce con sus credenciales. El usuario interactúa con el extremo de autorización directamente, de modo que la aplicación nunca ve las credenciales del usuario.
Tras un inicio de sesión satisfactorio, Salesforce redirige a los usuarios a la página de aprobación para otorgar acceso a la aplicación.
Salesforce otorga el token de acceso y los ámbitos solicitados
Después de que el usuario aprueba el acceso a la aplicación, Salesforce redirige al usuario a la URL de devolución de llamada. Incluido en el redireccionamiento está el token de acceso otorgado, los nombres de dominio solicitados, las sesiones de dominio y los ámbitos asociados. La aplicación cliente externa extrae el token y los parámetros para acceder a los recursos con ámbito en nombre del usuario final.
A continuación se incluye un ejemplo de la devolución de llamada del servidor. La respuesta está detrás de una etiqueta de almohadilla (#), en lugar de los parámetros de consulta de HTTP.
https://www.customercontactinfo.com/user_callback.jsp#
access_token=yourtokenhere&
refresh_token=yourtokenhere&
instance_url=https://yourInstance.salesforce.com/
id=https://user.internal.salesforce.com/7443%2Fid%2F00Dxx0000006HM7EAM%2F005xx000001X8ErAAK&
issued_at=1604004352722&
signature=DcQ84..
content_domain=MyDomainName.file.force.com&
content_sid=00Dxx0000006Gb…&
lightning_domain=MyDomainName.lightning.force.com&
lightning_sid=00Dxx000000...&
visualforce_domain=MyDomainName.file.force.com&
visualforce_sid=00Dxx000000...&
sidCookieName=sid&
cookie-sid_Client=0000000...&
cookie-clientSrc=10.xxx.xx.xx&
csrf_token=eyJub...&
scope=web+visualforce+refresh_token+lightning+content&
token_type=Bearer
La respuesta en el ejemplo contiene estos parámetros tras la etiqueta de almohadilla (#). La URL de devolución de llamada de la aplicación cliente externa precede a la etiqueta hash (#).
| 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. |
refresh_token
|
Token obtenido del servidor web, usuario-agente o flujo de token de aplicación híbrida. Se trata de un valor secreto. Tome las medidas apropiadas para protegerlo. El token de actualización para el flujo de token de usuario-agente híbrido solo se emite si solicitó
El token de actualización otorgado en este flujo es completamente compatible con el flujo de token de actualización de OAuth estándar. |
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 al usuario y para consultar con el fin de obtener más información acerca del usuario. Consulte URL de identidad. |
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 el client_secret. La firma puede incluir el Id. y el issued_at value concatenados, que puede utilizar para verificar que la URL de identidad no cambió desde que el servidor la envió. |
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. 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. Para consultar los parámetros válidos, vea Ámbitos de OAuth. |
content_domain
|
El dominio de la sesión de contenido, que se asigna al SID de contenido: Recibirá este valor solo si asigna el ámbito de |
content_sid
|
El SID asociado con el dominio de la sesión de contenido. Salesforce devuelve un SID exclusivo que la aplicación híbrida establece directamente en la cookie de sesión del dominio. Recibirá este valor solo si asigna el ámbito de |
lightning_domain
|
El dominio de la sesión Lightning, que se asigna al SID de Lightning: Recibirá este valor solo si asigna el ámbito de |
lightning_sid
|
El SID asociado con el dominio de la sesión de Lightning. Salesforce devuelve un SID exclusivo que la aplicación híbrida establece directamente en la cookie de sesión del dominio. Recibirá este valor solo si asigna el ámbito de |
visualforce_domain
|
El dominio de la sesión de Visualforce, que se asigna al SID de Visualforce: Recibirá este valor solo si asigna el ámbito de |
visualforce_sid
|
El SID asociado con el dominio de la sesión de Visualforce. Salesforce devuelve un SID exclusivo que la aplicación híbrida establece directamente en la cookie de sesión del dominio. Recibirá este valor solo si asigna el ámbito de |
token_type
|
Un tipo de token de Bearer, que se utiliza para todas las respuestas que incluyen un token de acceso. |
csrf_token
|
El token de falsificación de petición en sitios cruzados (CSRF) para prevenir ataques durante sesiones secundarias. Recibirá este valor solo si asigna el ámbito de |
sidCookieName
|
El nombre de la cookie de sesión que la aplicación híbrida utiliza para acortar directamente una sesión web. El valor predeterminado es sid. |
cookie-sid_Client
|
Una cookie de sesión que detecta y evita manipulación de sesión. Esta cookie de sesión permite a la aplicación híbrida acortar directamente una sesión web. |
cookie-clientSrc
|
Una cookie de sesión que se utiliza para protecciones de seguridad. Esta cookie de sesión permite a la aplicación híbrida acortar directamente una sesión web. |
La respuesta también puede contener estos parámetros.
| Parámetro | Descripción |
|---|---|
id_token
|
Una estructura de datos firmada que contiene atributos de usuario autenticados, incluyendo un identificador único para el usuario y una marca de tiempo que indica el momento en que se emite el token. También identifica la aplicación del cliente solicitante. Consulte Especificaciones de OpenID Connect. Este parámetro se devuelve si el parámetro scope incluye |
sfdc_site_url
|
Si el usuario es un miembro de un sitio de Experience Cloud, se proporciona la URL del sitio. |
sfdc_site_id
|
Si el usuario es un miembro de un sitio de Experience Cloud, se proporciona el Id. de sitio del usuario. |
La aplicación establece SID de dominio y acorta el acceso a una sesión web
La aplicación híbrida establece los SID asociados del dominio en las cookies de sesión para acortar directamente una sesión web. Para obtener ejemplos de las cookies establecidas para cada dominio, consulte Gestión de cookies de flujo de aplicación híbrida OAuth 2.0.
Para implementaciones que están reestableciendo la división de usuario en objetos para la configuración Restablecer a división predeterminada en Inicio de sesión, la aplicación híbrida debe acortar una sesión web utilizando frontdoor.jsp. Para obtener más información, consulte Uso de Frontdoor.jsp para acortar sesiones en Salesforce. Para obtener más información acerca de divisiones de usuario, consulte Organizar datos con divisiones.
