Skip to main content

Understand Security and Authentication

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Comprender los métodos de seguridad y autenticación usados en las aplicaciones de Salesforce.
  • Comprender el uso de las aplicaciones conectadas para la integración de aplicaciones móviles con el servidor de Salesforce.
  • Comprender la terminología de OAuth básica.
  • Comprender 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)? En esta insignia, las validaciones de los retos prácticos de Trailhead funcionan en inglés. Entre paréntesis se incluyen las traducciones a modo de referencia. En su instancia de Trailhead Playground, asegúrese de (1) cambiar la configuración local a los Estados Unidos, (2) cambiar el idioma a inglés, y (3) copiar y pegar solo los valores en inglés. Siga las instrucciones que figuran aquí.

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

Acerca de la seguridad y autenticación

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. Esta seguridad 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 conectada de Salesforce es el medio principal por el cual una aplicación móvil se conecta a Salesforce. Una aplicación conectada permite tanto al desarrollador como al administrador controlar el modo en el que la aplicación se conecta y quién tiene acceso. Por ejemplo, una aplicación conectada puede restringir el acceso a un conjunto de clientes, reducir o ampliar un intervalo IP, etc.

OAuth Terminology

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

Nota

El término “consumidor” de esta lista siempre hace referencia a una aplicación Mobile SDK. Los consumidores humanos se denominan “usuarios” o “usuarios finales”.



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 conectada
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 mediante PIN

Las aplicaciones conectadas de Salesforce incluyen una capa de seguridad adicional mediante la protección con PIN de la aplicación. Esta protección con PIN es para la aplicación móvil y no coincide con la protección con PIN del dispositivo o la seguridad de inicio de sesión que proporciona la organización de Salesforce.

Para poder usar la protección con PIN, el desarrollador debe seleccionar la casilla Implementa Bloqueo de pantalla y Protección por PIN al crear la aplicación conectada. Los administradores de aplicaciones tienen la opción de aplicar la protección con PIN, personalizar la duración del tiempo de espera y establecer la longitud del PIN.

Nota

Nota

Debido a que la seguridad por PIN está implementada en el sistema operativo del dispositivo móvil, esta función no está disponible en aplicaciones web HTML5.

En la práctica, la protección con PIN se puede usar para que la aplicación móvil se bloquee cuando no está en uso durante el número de minutos especificado. Cuando una aplicación móvil está en segundo plano, el reloj sigue corriendo.

Lo siguiente ilustra cómo funciona la protección con PIN:
  1. El cliente enciende un teléfono e ingresa el PIN para el dispositivo.
  2. El cliente inicia una aplicación de Mobile SDK.
  3. El cliente ingresa la información de inicio de sesión para la organización de Salesforce.
  4. El cliente ingresa el código PIN para la aplicación de Mobile SDK.
  5. El cliente trabaja en la aplicación y, a continuación, la envía a un segundo plano al abrir otra aplicación o recibir una llamada, etc.
  6. El tiempo de espera de la aplicación se agota.
  7. El cliente vuelve a abrir la aplicación y se abre la pantalla del PIN de la aplicación (para la aplicación de Mobile SDK, pero no para el dispositivo).
  8. El cliente ingresa el PIN de la aplicación y puede reanudar el trabajo.

Flujo de usuario-agente de OAuth2

En el flujo usuario-agente, la aplicación conectada, que integra la aplicación cliente con la API de Salesforce, recibe el token de acceso como un redireccionamiento HTTP. La aplicación conectada solicita al servidor de autorización que redirija el usuario-agente a otro servidor web o a un recurso local accesible. El web servidor puede extraer el token de acceso de la respuesta y pasarlo a la aplicación conectada. 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

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.

Nota

Nota

Las aplicaciones conectadas 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.

Flujo de agente de usuario
Por ejemplo, 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 flujo sigue estos pasos.
  1. El usuario final abre la aplicación móvil.
  2. La aplicación conectada dirige al usuario a Salesforce para autenticar y autorizar la aplicación móvil.
  3. El usuario aprueba el acceso para este flujo de autorización.
  4. La aplicación conectada recibe la devolución de llamadas desde Salesforce a la URL de redireccionamiento, que extrae los tokens de acceso y actualización.
  5. La aplicación conectada utiliza el token de acceso para acceder a los datos en nombre del usuario final.

Aplicaciones conectadas

Una aplicación conectada integra una aplicación con Salesforce mediante API. Las aplicaciones conectadas usan protocolos SAML y OAuth estándar para autenticar, proporcionar inicios de sesión únicos y proporcionar tokens para su uso con API de Salesforce. Además de las funciones estándar de OAuth, las aplicaciones conectadas permiten a los administradores de Salesforce establecer varias políticas de seguridad y tener un control explícito sobre quién puede usar las aplicaciones correspondientes.

A continuación se ofrece una lista general de información que se proporciona al crear una aplicación conectada.
  • Nombre, descripción, logotipo e información de contacto
  • Dirección URL en la que Salesforce pueda ubicar la aplicación para su autorización o identificación.
  • Protocolo de autorización: OAuth, SAML o ambos
  • Intervalos IP desde los que los usuarios pueden iniciar sesión en una aplicación conectada (opcional)
  • Información acerca de las políticas móviles que la aplicación conectada puede reforzar (opcional)

Las aplicaciones de Salesforce Mobile SDK usan aplicaciones conectadas para acceder a los servicios de OAuth de Salesforce y llamar a las API de REST de Salesforce.

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 conectada 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 la aplicación conectada para que coincida con lo especificado en su código. Para la mayoría de las aplicaciones, refresh_token, web y api son suficientes.
  • Lado de cliente: Especifique las solicitudes de ámbito de la aplicación Mobile SDK. Las solicitudes de ámbito de cliente deben ser un subconjunto de los permisos de ámbito de la aplicación conectada.

Configuración del lado de servidor

Puede establecer los siguientes valores de parámetros de ámbito.
Valor Descripción
api Permite el acceso a la cuenta actual en la que ha iniciado sesión el usuario mediante las API, como API de REST y API masiva. Este valor incluye también chatter_api, que permite acceder a recursos de la API de REST de Chatter.
chatter_api Solamente permite el acceso a los recursos de la API de REST de Chatter.
custom_permissions Permite el acceso a los permisos personalizados de una organización asociada a la aplicación conectada e indica si el usuario actual tiene cada permiso habilitado.
full Permite el acceso a todos los datos a los que puede acceder el usuario que inició sesión, y engloba los demás ámbitos. El ámbito full no devuelve un token de actualización. Debe solicitar expresamente el ámbito refresh_token para obtener un token de actualización.
id Permite el acceso al servicio de URL de identidad. Puede solicitar profile, email, address o phone individualmente para obtener el mismo resultado que con id, ya que todos son sinónimos.
openid Permite acceder al identificador único con el que ha iniciado sesión el usuario para aplicaciones de conexión OpenID.

Utilice el ámbito openid en el flujo de usuario-agente de OAuth 2.0 y el flujo de autenticación de servidor web de OAuth 2.0 para recibir un token de Id. firmado de acuerdo con las especificaciones de conexión de OpenID además del token de acceso.

refresh_token Permite que se devuelva un token de actualización en caso de que pueda recibir uno. A continuación, la aplicación puede interactuar con los datos del usuario mientras está offline, y es sinónimo de la solicitud de offline_access.
visualforce Permite el acceso a páginas de Visualforce creadas por clientes. No permite acceder a interfaces de usuario de Salesforce estándar.
web Permite utilizar access_token en la web e incluye visualforce, lo cual posibilita el acceso a páginas de Visualforce creadas por clientes.
Nota

Nota

En el caso de las aplicaciones de Mobile SDK, siempre se le pedirá seleccionar refresh_token en la configuración de la aplicación conectada del lado de servidor. Incluso si selecciona el ámbito full, debe seleccionar refresh_token de forma explícita.

Configuración del lado de cliente

Se aplican las siguientes reglas a la configuración de ámbito para aplicaciones de Mobile SDK.

Ámbito

Configuración de aplicaciones de Mobile SDK

refresh_token

Lo solicita de forma implícita Mobile SDK para la aplicación; no es necesario incluirlo en la lista de ámbitos de su aplicación.

api

Inclúyalo si va a hacer llamadas de API de REST de Salesforce (se aplica a la mayoría de las aplicaciones).

web

Inclúyalo si su aplicación accede a páginas definidas en una organización de Salesforce (para cualquier aplicación que cargue páginas web basadas en Salesforce).

full

Inclúyalo para solicitar todos los permisos. (Mobile SDK solicita de forma implícita refresh_token por usted).

chatter_api

Inclúyalo solicitud si su aplicación llama a las API de REST de Chatter.

id

(No es necesario).

visualforce

Use el ámbito web en su lugar.

Creación de una aplicación conectada

El proceso de creación de una aplicación conectada es sencillo, aunque requiere derechos 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 Configuración.
  2. Realice uno de los siguientes pasos.
    • Si está utilizando Salesforce Classic, seleccione Crear | Aplicaciones, desplácese a Aplicaciones conectadas y, a continuación, haga clic en Nuevo.
    • Si está utilizando Lightning Experience, seleccione Aplicaciones | Gestor de aplicaciones y haga clic en Nueva aplicación conectada.
  3. Debajo de Información básica, complete el formulario del modo siguiente:
    • Nombre de aplicación conectada: <el que usted elija; puede contener espacios>.
    • Nombre de la API: acepte el valor sugerido.
    • Email de contacto: ingrese su dirección de email.
  4. Debajo de API (Activar configuración de OAuth), seleccione Activar configuración de OAuth.
  5. Establezca URL de devolución de llamada en: <cualquier cadena de URL, real o ficticia, como, por ejemplo miaplicacióndemuestra://auth/success>. Si el relleno automático ofrece una sugerencia, no la acepte. En su lugar, ingrese la URL de devolución de llamada.
  6. Debajo de Á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)  
  7. Haga clic en Agregar. Este conjunto mínimo de ámbitos funciona correctamente para la mayoría de aplicaciones Mobile SDK.
  8. Desmarque la casilla Require Secret for Web Server Flow (Requerir secreto para flujo de servidor web).
  9. Haga clic en Guardar.
Tras guardar la configuración, observe los detalles de la nueva aplicación conectada:
  • La URL de devolución de llamada y la Clave de consumidor. Copie estos valores en la configuración de su aplicación Mobile SDK antes de distribuir la aplicación.
  • Las aplicaciones de Mobile SDK no utilizan la pregunta secreta del consumidor, por lo que puede ignorar este valor.

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, le recomendamos completar el proyecto Configurar las herramientas de desarrollador de Mobile SDK.

¡Siga aprendiendo gratis!
Regístrese para obtener una cuenta y continuar.
¿Qué hay para usted?
  • Consiga recomendaciones personalizadas para sus objetivos profesionales
  • Practique sus aptitudes con retos prácticos y pruebas
  • Siga y comparta su progreso con empleadores
  • Póngase en contacto para recibir asesoramiento y oportunidades laborales