Skip to main content
Responda nuestra encuesta de la comunidad en 10 minutos. Disponible ahora y hasta el 19 de julio. Haga clic aquí para participar.

Explorar la seguridad y autenticación

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Identificar los métodos de seguridad y autenticación que se usan en las aplicaciones de Salesforce.
  • Describir el uso de las aplicaciones cliente externas para la integración de aplicaciones móviles con el servidor de Salesforce.
  • Explicar la terminología de OAuth básica.
  • Describir el flujo de eventos de la autenticación de OAuth y la seguridad mediante PIN.
Nota

Nota

¿Es su idioma de aprendizaje español (LATAM)? Comience el reto en un Trailhead Playground en español (LATAM) y utilice las traducciones entre paréntesis para navegar. Copie y pegue solo los valores en inglés, ya que las validaciones del reto dependen de los datos en ese idioma. Si no aprueba el reto en su organización en español (LATAM), recomendamos que (1) cambie la configuración local a Estados Unidos, (2) cambie el idioma a inglés (según estas instrucciones) y, luego, (3) haga clic en el botón “Check Challenge” (Comprobar el reto) nuevamente.

Consulte la insignia Trailhead en su idioma para obtener más información sobre cómo aprovechar la experiencia de Trailhead en otros idiomas.

Proteger y autenticar su aplicación móvil con OAuth 2.0

La autenticación segura es fundamental para las aplicaciones de negocio que se ejecutan en dispositivos móviles. OAuth 2.0, el protocolo estándar de la industria, permite la autorización segura para el acceso a los datos del cliente sin necesidad de proporcionar el nombre de usuario y la contraseña. Suele conocerse como la llave de emergencia de acceso al software. La llave de emergencia restringe el acceso a determinadas funciones en su vehículo. Por ejemplo, un responsable de estacionamiento no puede abrir con esta llave el maletero o la guantera del vehículo.

Los desarrolladores de aplicaciones móviles pueden incrustar de forma rápida y fácil la implementación de Salesforce OAuth 2.0. La implementación usa una vista HTML para obtener el nombre de usuario y la contraseña, los cuales se envían al servidor. El servidor devuelve el token de sesión y el token de actualización persistente almacenados en el dispositivo para futuras interacciones.

Una aplicación cliente externa de Salesforce es el medio principal por el cual una aplicación móvil se conecta a Salesforce. Una aplicación cliente externa permite tanto al desarrollador como al administrador controlar cómo se conecta la aplicación y quién tiene acceso. Por ejemplo, una aplicación cliente externa puede restringir el acceso a un conjunto de clientes, reducir o ampliar un intervalo IP, etc.

Familiarizarse con la terminología de OAuth

Si se siente perdido, esta lista puede ayudarle a encontrar el camino. Estas etiquetas, en conjunto, conducen directamente al éxito de OAuth.

Note

Nota
El término “consumidor” en esta lista siempre hace referencia a una aplicación Mobile SDK.

Clave de consumidor

Valor usado por el consumidor (en este caso, la aplicación de Mobile SDK) para identificarse en Salesforce. Se denomina client_id.

Token de acceso

Valor que utiliza el consumidor para acceder a recursos protegidos en nombre del usuario, en vez de usar las credenciales de Salesforce del usuario. El token de acceso es un Id. de sesión y se puede usar directamente.

Token de actualización

Un token utilizado por el consumidor para obtener un nuevo token de acceso, sin necesidad de tener la aprobación del usuario final para acceder de nuevo.

Código de autorización

Un token pasajero que representa el acceso otorgado por el usuario final. El código de autorización se utiliza para obtener un token de acceso y un token de actualización.

Aplicación cliente externa

Aplicación externa a Salesforce que usa el protocolo OAuth para verificar el usuario de Salesforce y la aplicación externa.

Flujo de autenticación de OAuth2

El flujo de eventos durante la autorización OAuth depende del estado de autenticación del dispositivo.

Flujo de autorización por primera vez

  1. El cliente abre una aplicación de Mobile SDK.
  2. Aparece una ventana de autenticación.
  3. El cliente ingresa un nombre de usuario y una contraseña.
  4. La aplicación envía las credenciales del cliente a Salesforce y recibe un Id. de sesión para confirmar que la autenticación se completó correctamente.
  5. El cliente autoriza la solicitud de la aplicación para conceder acceso a la aplicación.
  6. La aplicación se inicia.

Autorización continua

  1. El cliente abre una aplicación móvil.
  2. Si el Id. de sesión está activo, la aplicación se inicia de inmediato. Si el Id. de sesión está inactivo, la aplicación usa el token de actualización de su autorización inicial para obtener un Id. de sesión actualizado.
  3. La aplicación se inicia.

Seguridad a través del bloqueo de aplicaciones

Como función de seguridad opcional, las aplicaciones cliente externas se pueden configurar para que se bloqueen cuando están en segundo plano por una cantidad de tiempo especificada. Para desbloquear la aplicación, se le indica al usuario que use la autenticación biométrica o criptográfica del sistema operativo, como un PIN o código de aprobación.

Para usar la protección de bloqueo de aplicaciones, el desarrollador tiene que seleccionar la casilla de verificación Screen Lock (Bloqueo de pantalla) cuando crea la aplicación cliente externa. Luego, los administradores de la aplicación móvil tienen la opción de personalizar la duración del tiempo de espera.

Flujo de servidor web de OAuth2

Para mayor seguridad, Salesforce recomienda usar el flujo de servidor web, ya que incluye el Intercambio de código con clave de prueba (PKCE). Para obtener más información, consulte Flujo de servidor web de OAuth 2.0 para la integración de aplicaciones web.

Flujo de usuario-agente de OAuth2

En el flujo usuario-agente, la aplicación cliente externa, que integra la aplicación cliente con la API de Salesforce, recibe el token de acceso como un redireccionamiento HTTP. La aplicación cliente externa solicita al servidor de autorización que redirija el usuario-agente a otro servidor web o a un recurso local accesible.

El servidor web puede extraer el token de acceso de la respuesta y pasarlo a la aplicación cliente externa. Por motivos de seguridad, la respuesta del token se proporciona como un fragmento de almohadilla de etiqueta (#) en la URL. Este formato evita que el token se transmita al servidor, así como a otros servidores en encabezados de referencia.

Advertencia

Dado que el token de acceso se codifica en la URL de redireccionamiento, podría estar expuesto al usuario y a otras aplicaciones del dispositivo.

Note

Nota
Las aplicaciones cliente externas para estos tipos de clientes pueden proteger secretos por usuario. No obstante, el secreto de cliente es accesible e infringible porque los ejecutables del cliente residen en el dispositivo del usuario. Por este motivo, el flujo usuario-agente no utiliza el secreto del cliente. La autorización se basa en la política de origen común de usuario-agente. Del mismo modo, el flujo usuario-agente no admite publicaciones fuera de banda.

Valores de parámetros de ámbito

OAuth requiere la configuración del ámbito tanto en el servidor como en el cliente. El acuerdo entre ambos lados define el contrato del ámbito.

  • Lado de servidor: Define los permisos de ámbito de una aplicación cliente externa en el servidor de Salesforce. Esta configuración determina qué niveles de acceso pueden solicitar las aplicaciones cliente, como Mobile SDK. Como mínimo, configure su aplicación cliente externa para que coincida con lo especificado en su código. Para la mayoría de las aplicaciones, refresh_token, web y api son suficientes. Para toda la lista de ámbitos, revise Ámbitos y tokens de OAuth.
  • Lado de cliente: Especifique las solicitudes de ámbito en su aplicación Mobile SDK. Las solicitudes de ámbito de cliente deben ser un subconjunto de los permisos de ámbito de la aplicación cliente externa. En Mobile SDK 13.2 y versiones posteriores, no ofrecer ámbitos genera que se concedan todos los ámbitos configurados del servidor.

Aplicaciones cliente externas

Las aplicaciones cliente externas son marcos de trabajo que se pueden empaquetar para permitir que una aplicación de terceros se integre con Salesforce a través de API y protocolos de seguridad. Además, incluyen mejoras estructurales para mantener funciones de usuario independientes y permitir paquetes gestionados de segunda generación. Salesforce recomienda que use las aplicaciones cliente externas y migre las actuales aplicaciones conectadas locales a aplicaciones cliente externas.

Note

Nota
Algunas funciones solo están disponibles a través de las aplicaciones conectadas, que aún son necesarias para aplicaciones de Mobile SDK que se ejecutan en diversas organizaciones. Consulte Comparación de funciones de aplicaciones conectadas y aplicaciones cliente externas.

Crear una aplicación de cliente externa

Crear una aplicación cliente externa es sencillo, pero debe tener permisos de administrador. En su organización Developer Edition o Trailhead Playground, dispondrá de estos permisos de forma automática.

  1. En su Trailhead Playground u organización de Developer Edition, diríjase a Setup (Configuración).
  2. En Setup (Configuración), ingrese Apps (Aplicaciones) en el cuadro de búsqueda rápida y, a continuación, seleccione External Client Apps Manager (Gerente de aplicación cliente externa).
  3. Seleccione New External Client App (Nueva aplicación cliente externa).
  4. En Basic Information (Información básica), complete el formulario del modo siguiente.
    • External Client App Name (Nombre de aplicación cliente externa): Trailhead Intro (Introducción a Trailhead)
    • API Name (Nombre de API): Aceptar el valor sugerido.
    • Contact Email (Email de contacto): Ingrese su dirección de email.
    • Distribution State (Estado de distribución): Para desarrollar una aplicación cliente externa para su organización local, seleccione Local. Para desarrollar un aplicación cliente externa para empaquetado y distribución, establezca Distribution State (Estado de distribución) en Packaged (Empaquetado).
  1. Debajo de API (Enable OAuth Settings) (API [Habilitar configuración de OAuth]), seleccione Enable OAuth (Activar OAuth).
  2. Establezca la URL de devolución de llamada en cualquier cadena de URL, real o ficticia, como mysampleapp://auth/success. Si el relleno automático ofrece una sugerencia, no la acepte. En su lugar, ingrese la URL de devolución de llamada.
  3. En Available OAuth Scopes (Ámbitos de OAuth disponibles), seleccione:
    • Gestionar datos de usuario a través de las API (api)
    • Gestionar datos de usuario a través de navegadores (web)
    • Realizar solicitudes en cualquier momento (refresh_token, offline_access)
  4. Haga clic en la flecha Agregar para mover cada selección a Selected OAuth Scopes (Ámbitos de OAuth seleccionados). Este conjunto mínimo de ámbitos funciona correctamente para la mayoría de aplicaciones Mobile SDK.
  5. En Security (Seguridad):
    • Desmarque la casilla Require Secret for Web Server Flow (Requerir secreto para flujo de servidor web).
    • Anule la selección de la casilla Require Secret for Refresh Token Flow (Requerir secreto para flujo de token de actualización).
    • (Se recomienda) Seleccionar la casilla Issue JSON Web Token (JWT)-based access tokens for named users (Emitir tokens de acceso basados en tokens web JSON (JWT) para usuarios nombrados).
  6. Haga clic en Crear.

Ahora que conoce un poco mejor la seguridad y la arquitectura Mobile SDK, es el momento de ponerse manos a la obra con Mobile SDK. Puede comenzar completando el desafío siguiente, que solo requiere una organización Developer Edition o Trailhead Playground. Más adelante, se recomienda que complete la insignia Configurar las herramientas de desarrollador de Mobile SDK.

Recursos

Comparta sus comentarios de Trailhead en la Ayuda de Salesforce.

Nos encantaría saber más sobre su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios en cualquier momento en el sitio de Ayuda de Salesforce.

Más información Continuar a Compartir comentarios