Acceder a datos con integración de API
Objetivos de aprendizaje
- Describir cómo habilita OAuth 2.0 la integración de API para aplicaciones conectadas.
- Identificar los casos de uso de integración de API para aplicaciones conectadas.
Flujo de autorización de OAuth 2.0 para aplicaciones conectadas
Puede utilizar una aplicación conectada para solicitar acceso a datos de Salesforce en nombre de una aplicación externa. Para que una aplicación conectada solicite acceso, debe estar integrada con la API de Salesforce utilizando el protocolo de OAuth 2.0. OAuth 2.0 es un protocolo abierto que permite la autorización y el uso compartido de datos seguros entre aplicaciones a través del intercambio de tokens. Cuando los desarrolladores desean integrar su aplicación con Salesforce, utilizan las API de OAuth. Estas API de OAuth permiten a un usuario trabajar en una sola aplicación pero ver los datos desde otra.
Cuando abre la aplicación móvil Salesforce para acceder a sus datos de Salesforce, está iniciando un flujo de autorización de OAuth 2.0. En este flujo, su organización de Salesforce es el servidor de recursos y la aplicación móvil Salesforce es el cliente que solicita el acceso. Usted autoriza la aplicación móvil Salesforce a acceder y gestionar sus datos de Salesforce en la web en cualquier momento.
El flujo de eventos durante la autorización OAuth depende del estado de autenticación del dispositivo.
Flujo de autorización por primera vez
- Abre la aplicación móvil Salesforce.
- Aparece una ventana de autenticación.
- Ingresa su nombre de usuario y su contraseña.
- La aplicación móvil Salesforce envía sus credenciales a Salesforce e iniciar el flujo de autorización de OAuth.
- Aprueba la solicitud para otorgar el acceso a la aplicación móvil Salesforce, como se muestra en la imagen anterior.
- Salesforce envía el token de actualización y acceso de la aplicación móvil como confirmación de una correcta autorización.
- La aplicación móvil Salesforce se inicia.
Autorización continua
- Abre la aplicación móvil Salesforce.
- Si la sesión está activa, la aplicación móvil Salesforce se inicia de inmediato. Si la sesión está obsoleta, la aplicación móvil Salesforce usa el token de actualización de su autorización inicial para obtener una sesión actualizada.
- La aplicación móvil Salesforce se inicia.
Integración de aplicaciones web (Flujo de servidor web de OAuth 2.0)
Para integrar una aplicación web externa con la API de Salesforce, utilice el flujo de servidor web de OAuth 2.0. Con este flujo, el servidor que aloja la aplicación web debe poder proteger la identidad de la aplicación conectada, definida por el Id. del cliente y el secreto del cliente.
Por ejemplo, desarrolló recientemente un sitio web que habilita un acceso seguro al estado de pedido del cliente. Los datos del estado de pedido del cliente están almacenados de forma segura en su plataforma de Salesforce CRM. Para autorizar los usuarios de Plataforma de ayuda a ver el estado de pedido de un cliente, desarrolla una aplicación Estado del pedido y la configura como una aplicación conectada con el flujo de servidor web.
- Un usuario de Plataforma de ayuda hace clic en la aplicación web Estado del pedido.
- La aplicación conectada dirige al usuario a Salesforce para autenticar y autorizar la aplicación para acceder a los datos del estado del pedido.
- El usuario aprueba la aplicación Estado del pedido para acceder a los datos.
- Salesforce envía una devolución de llamadas a la aplicación Estado del pedido con un código de autorización.
- La aplicación Estado del pedido pasa el código de autorización al extremo de token de Salesforce, solicitando un token de acceso.
- Salesforce valida el código de autorización y envía de vuelta un token de acceso que incluye permisos asociados en la forma de ámbitos.
- La aplicación Estado del pedido envía una solicitud de vuelta a Salesforce para acceder a los datos de estado del pedido. Su solicitud incluye el token de acceso con los ámbitos asociados.
- Salesforce valida el token de acceso y los ámbitos asociados.
- La aplicación Estado del pedido puede acceder a los datos protegidos, y el estado de pedido del cliente se muestra en la aplicación.
Integración de aplicación móvil (Flujo usuario-agente de OAuth 2.0)
Una aplicación conectada es un medio principal mediante el que una aplicación móvil se conecta a Salesforce. Aunque no es obligatorio, puede utilizar Salesforce Mobile SDK para crear aplicaciones móviles como aplicaciones conectadas. Estas aplicaciones pueden acceder a servicios de Salesforce OAuth y llamar las API de REST de Salesforce.
Supongamos que utiliza Salesforce Mobile SDK para crear una aplicación móvil que busca información de contacto del cliente desde su organización de Salesforce. Mobile SDK implementa el flujo de usuario-agente de OAuth 2.0 para su aplicación conectada, integrando la aplicación móvil con su API de Salesforce y otorgándole acceso autorizado a los datos definidos.
- El usuario final abre la aplicación móvil.
- La aplicación conectada dirige al usuario a Salesforce para autenticar y autorizar la aplicación móvil.
- El usuario aprueba el acceso para este flujo de autorización.
- La aplicación recibe la devolución de llamadas desde Salesforce a la URL de redireccionamiento, que extrae los tokens de acceso y actualización.
- La aplicación conectada utiliza el token de acceso para acceder a los datos en nombre del usuario final.
Para obtener más información acerca de Salesforce Mobile SDK, consulte el Módulo de Trailhead Fundamentos de Salesforce Mobile SDK.
Integración de servidor a servidor (Flujo portador JWT OAuth 2.0)
En algunos casos, necesita autorizar servidores sin iniciar sesión de forma interactiva cada vez que los servidores necesitan intercambiar información.
Para proporcionar autorización para la integración de servidor a servidor, puede utilizar el flujo de soporte de Web Token (JWT) JSON OAuth 2.0. Este flujo requiere aprobación previa de la aplicación de cliente.
- El servicio de reportes comienza su reporte por lotes nocturno.
- La aplicación conectada envía el JWT, que activa la información de identidad y seguridad para compartir entre dominios de seguridad, al extremo de token de Salesforce.
- Salesforce valida el JWT basándose en una firma utilizando un certificado configurado previamente y parámetros adicionales.
- Suponiendo que el JWT es válido y que la aplicación conectada tiene aprobación previa, Salesforce emite un token de acceso. Antes, la aprobación se producía en una de estas formas.
- Si su política de aplicación conectada está establecida como “Los usuarios aprobados por el administrador están preautorizados”, puede utilizar perfiles y conjuntos de permisos.
- Si su política de aplicación conectada está establecida como “Todos los usuarios pueden autorizarse”, puede utilizar la emisión y aprobación de usuario final de un token de actualización. Sin embargo, el cliente no necesita un token de actualización almacenado o actual El cliente tampoco necesita pasar un secreto del cliente al extremo del token.
- La aplicación conectada utiliza el token de acceso para acceder a los datos protegidos en el servidor de Salesforce.
- El servicio de reportes extrae datos autorizados en su reporte nocturno.
Integración de IoT (Flujo de dispositivos de OAuth 2.0)
Para integrar dispositivos con funciones de entrada o visualización limitadas, como Smart TV, puede configurar aplicaciones conectadas con el flujo de dispositivos de OAuth 2.0.
Con el flujo de dispositivos, los usuarios finales pueden autorizar aplicaciones conectadas para acceder a datos de Salesforce utilizando un navegador de Internet.
Por ejemplo, un cliente utilizar su dispositivo bluetooth para controlar sus luces de casa cuando están fuera por la noche. Puede crear una aplicación conectada para el dispositivo bluetooth para activar este flujo.
- El usuario abre la aplicación bluetooth en su dispositivo móvil y hace clic en Encender luces.
- La aplicación conectada publica una solicitud en el extremo de autorización de Salesforce.
- Salesforce verifica la solicitud y devuelve un código de usuario legible por humano, una URL de verificación y un código de dispositivo.
- La aplicación bluetooth muestra el código de dispositivo e indica al usuario ingresarlo como una URL de verificación especificada. La aplicación también comienza a sondear el extremo de token de Salesforce para la autorización.
- El usuario hace clic en la URL de verificación e ingresa el código.
- A continuación, el usuario autoriza la aplicación para acceder a sus datos protegidos, en este caso la ubicación de su casa.
- Salesforce envía un token de acceso y actualización a la aplicación conectada.
- La aplicación bluetooth puede acceder a la ubicación de la casa del usuario y encender las luces.
También puede utilizar el flujo de token de activos para la integración de IoT. Este flujo utiliza un JWT que vincula el usuario y el dispositivo conjuntamente, autenticando el dispositivo. Puede leer más acerca de este flujo en este artículo de Ayuda de Salesforce: Flujo de tokens de activos de OAuth 2.0 para asegurar dispositivos conectados.
Otros flujos de integración de API de OAuth
Además del ejemplo anterior, también puede utilizar los siguientes flujos de OAuth 2.0 con aplicaciones conectadas.
Flujo del token de actualización
Como parte de los flujos de usuario a agentes y de servidor web, una aplicación conectada puede utilizar un token de actualización para solicitar un nuevo token de acceso cuando caduca el token de acceso actual. Este flujo es especialmente útil cuando no desea una intervención del usuario tras la autorización de una aplicación.
Flujo de credenciales de cliente
Si quiere compartir información directamente entre dos aplicaciones sin necesidad de interacción del usuario, puede usar 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 la pregunta secreta del consumidor) por un token de acceso. Este flujo elimina la necesidad de una interacción explícita del usuario, aunque requiere que especifique un usuario de integración para ejecutar la integración. Puede usar este flujo como una alternativa más segura al flujo de nombre de usuario y contraseña de OAuth 2.0.
Flujo de afirmación del portador de SAML
Una aplicación conectada puede utilizar una afirmación de SAML para solicitar un token de acceso de OAuth para llamara las API de Salesforce.
Flujo de afirmación de SAML
Este flujo proporciona una alternativa para organizaciones que están actualmente utilizando SAML para acceder a Salesforce y desean acceder a la API de servicios web del mismo modo.
Continuando
Ahora que obtuvo más información acerca de cuánto utilizar aplicaciones conectadas para acceder a datos en su organización de Salesforce, pasemos al uso de aplicaciones conectadas para el inicio de sesión único.
Recursos
- Trailhead module: Fundamentos de identidad
- Ayuda de Salesforce: Flujos de autorización de OAuth
- Ayuda de Salesforce: Autorizar aplicaciones con flujos de OAuth