Login en Sandbox de test desde Producción

El otro día vi el video de #AwsomeAdmin en el que Gorav Set explica como hacer más fácil el acceso a una sandbox desde producción. Si no has visto el video, básicamente consiste en hacer que la org de producción actúe como Identity Provider, utilizando el ID de usuario como parte de la aserción SAML. Del otro lado, la org de sandbox se configura como service provider (es el servicio que queremos acceder). Dado que al refrescar una sandbox los IDs de usuario se mantienen, no hace falta utilizar federation ID o similares; basta con utilizar el ID de usuario. Por último, un pequeño gran truco hace que la app conectada en pro se muestre en la home, completando el círculo.

El efecto para el usuario es que en el entorno de producción tiene una app "Sandbox Pruebas". Al hacer click en esta app, se abre una nueva pestaña y se inicia sesión automáticamente en la Sandbox para dicho usuario.

Anotación 2022-09-26 224501.png

En mi caso es muy útil, por dos motivos, que dificultaban mucho el acceso a las sandboxes por los usuarios:

  1. La org de producción usa SSO contra el directorio corporativo, por lo que los usuarios no conocen los passwords de salesforce. Así que al refrescar la sandbox desconocen su contraseña inicial.
  2. A veces los correos de Sandbox saltan como spam, lo que hace que no lleguen los reset de contraseña.

El paso a paso completo (en inglés) se puede consultar en la web de Gorav Set.

Un pequeño resumen:

  1. En Producción, configurar Salesforce como Identity Provider (Setup > Identity Provider)
  2. En Sandbox, configurarla como Service Provider mediante SSO (Setup > Single Sign-On Settings) utilizando los datos generados en el Identity Provider.
  3. En Producción, configurar una connected APP apuntando al entorno Sandbox, utilizando los entity ID y login URL. El login es por User ID. Utilizando el login URL en la connected app se crea el enlace en el app manager.

Actualización: Tras un refresh de la sandbox hay que volver a aplicar algunas configuraciones:

  1. En Sandbox, configurarla como Service Provider:
    • Añadir el entorno de producción a los remote sites
    • Activar SAML (Setup > Single Sign-On Settings)
    • Saml Settings > Botón New from metadata url, y pegar la URL de Identity (https://[mydomain]/.well-known/samlidp.xml)
      • Identity type: User ID
    • Salvar, y copiar Login URL (Entity Id y Issuer no cambian)
  2. En Producción editar la app conectada
    • Actualizar el ACS URL con el Login URL