Compatibilidad con inicio de sesión único
Introducción
La redirección de contenido del explorador ahora ofrece una experiencia de usuario optimizada con compatibilidad con inicio de sesión único, lo que permite la autenticación del lado del VDA y el uso compartido de cookies.
Esta mejora elimina los inicios de sesión redundantes, lo que aumenta la productividad al mantener la autenticación y la persistencia de las cookies en todas las sesiones de BCR, incluso después de cerrar la ventana de BCR.
Esta experiencia fluida mejora aún más la seguridad al garantizar que la autenticación se origine en el VDA, no en el cliente.
Sin inicio de sesión único
- Abrir una página autenticada dentro de BCR requería que los usuarios volvieran a introducir sus credenciales cada vez, rompiendo la persistencia del SSO.
- El SSO solo se mantenía mientras la ventana de BCR permanecía abierta; cerrar y volver a abrir la ventana obligaba a los usuarios a repetir el proceso de inicio de sesión.
- El flujo de autenticación se producía desde el cliente, lo que obligaba a los administradores a proporcionar acceso a la red a sitios de autenticación seguros desde el dispositivo cliente.
Con inicio de sesión único
- Ya no se solicita a los usuarios las credenciales (cuando ya están autenticados en el VDA), ya que el SSO se conserva sin problemas desde el explorador del VDA.
- La autenticación se produce desde el VDA, lo que mejora la postura de seguridad al limitar los requisitos de red y la exposición del lado del cliente, proporcionando una experiencia significativamente mejorada e ininterrumpida.
Requisitos mínimos
- Citrix Aplicaciones Virtuales y Escritorios 2511
- Citrix Workspace App para Windows 2511
- Citrix Workspace App para Linux 2511 (Vista previa)
- Extensión de redirección del navegador (Chrome o Edge) 25.11 o posterior
Secuencias de autenticación admitidas
Actualmente, se admiten dos tipos de secuencias de autenticación con el inicio de sesión único de BCR.
Autenticación basada en redirección
En este método estándar, la aplicación utiliza una redirección HTTP para forzar al usuario a una página dedicada para la autenticación.
Por ejemplo, si un usuario intenta acceder a https://my.intranet.app sin las cookies de sesión necesarias, la aplicación web responderá con una redirección HTTP 302 al punto de conexión de autenticación, como https://my.intranet.app/auth .
Una vez que el usuario se autentica correctamente en esa página, el navegador se redirige de nuevo a la URL de la aplicación original, incluyendo ahora las cookies de autenticación necesarias.
Autenticación basada en formularios en la página [Preview]
Este método mantiene al usuario en la URL de la aplicación prevista mientras presenta dinámicamente la interfaz de inicio de sesión.
Por ejemplo, si un usuario navega a una página protegida, como https://my.intranet.app , la página carga el formulario de autenticación directamente sin activar una redirección, porque faltan las cookies necesarias. Este proceso puede implicar varios intercambios internos entre la interfaz de la página y el proveedor de identidades (IDP). Estos intercambios continúan hasta que se proporciona y utiliza una cookie final y válida, otorgando al usuario acceso al contenido de la página original.
Nota:
En caso de que su escenario no esté cubierto por los mecanismos especificados anteriormente y no sea posible configurar su aplicación web para usar los mecanismos anteriores, póngase en contacto con el equipo de productos de Citrix.
Configuración
Paso 0: Introducción
Existen dos métodos para configurar el inicio de sesión único con BCR. La elección del método de configuración depende del mecanismo de autenticación para los sitios web de BCR deseados y de la flexibilidad que necesite para configurar varias aplicaciones web para la compatibilidad con el inicio de sesión único.
Método 1: Este método utiliza las directivas de BCR existentes en Web Studio y las utiliza para lograr la compatibilidad con el inicio de sesión único.
Antes de la introducción de la compatibilidad con el inicio de sesión único, la directiva de sitios de autenticación de redirección de contenido del explorador se utilizaba para especificar las URL utilizadas para la autenticación (o páginas intermedias) que se redirigirían al cliente para garantizar que no hubiera interrupciones en el flujo.
Con la introducción de la compatibilidad con el inicio de sesión único, BCR aprovechará las cookies de autenticación en el explorador del lado de VDA y, por lo tanto, las URL de la directiva de sitios de autenticación ahora deben configurarse en la directiva de lista de bloqueo de redirección de contenido del explorador. Esto garantiza que la autenticación se realice a través del VDA.
Método 2: Este método funciona con una lógica similar a la del Método 1, pero las URL se configuran mediante JSON (bcrconfig.json) y la URL de JSON alojada se llama en la directiva ACL de BCR. La configuración JSON ofrece flexibilidad adicional.
- Las empresas utilizan varias aplicaciones web en su entorno, y cada aplicación puede utilizar un mecanismo de autenticación diferente según su implementación. El nuevo método JSON permite que la configuración sea más intuitiva, sólida y escalable.
- Cuando se trata de la autenticación basada en formularios en la página, el Método 1 no ofrece una forma de establecer una cookie de autenticación específica, ya que no existen directivas para admitir dicha configuración. Por lo tanto, si su sitio web requiere autenticación basada en formularios en la página, JSON es la única forma de hacerlo.
De cara al futuro, JSON ofrece una forma escalable de introducir funciones más sólidas, y Citrix recomienda probar la configuración basada en JSON.
Paso 1: Determinación del mecanismo de autenticación
Para determinar qué método usar para su configuración, el primer paso es determinar qué tipo de mecanismo de autenticación está usando su aplicación. Para determinar con precisión el método de autenticación de la aplicación web, el mejor enfoque es ponerse en contacto con el administrador de la aplicación web.
Si esa no es una opción, debe inspeccionar las interacciones de solicitud/respuesta en las herramientas de desarrollador del explorador, en la pestaña Red, mientras realiza el flujo de autenticación sin la extensión BCR instalada. Los siguientes resultados pueden ayudarle a determinar el tipo de autenticación:
Para la autenticación basada en redirección: Busque en la columna Estado una o más respuestas 302 (Redirección). Las respuestas 302 deben contener un encabezado de ubicación que apunte a la página de autenticación. Esta URL de página debe establecerse en la directiva de lista de bloqueo de redirección de contenido del explorador si utiliza el Método 1 y en la sección denyList de la configuración de la aplicación en el archivo bcrconfig.json si utiliza el Método 2.
Para la autenticación basada en formularios en la página: Busque en la columna Método varias solicitudes POST. Una de las últimas respuestas a una solicitud POST debe devolver un encabezado set-cookie con la cookie de autenticación específica de la aplicación web. Esta cookie debe establecerse en la sección de cookies de la configuración de la aplicación en el archivo bcrconfig.json. Como el Método 1 no admite la autenticación basada en formularios en la página, el Método 2 es la única opción de configuración para este escenario.
Ejemplo: Aquí tiene un ejemplo con github.com. Este método se puede utilizar para cualquier sitio web que desee redirigir con BCR y asegurarse de que tiene la configuración correcta.
- Abra Chrome y, a continuación, pulse CTRL+MAYÚS+I para abrir sus herramientas de desarrollador.
- Haga clic en la pestaña Network.
- Marque la configuración Preserve log.
- Haga clic en el filtro Doc para simplificar los registros de red.
- Haga clic con el botón derecho junto a Name y añada la columna URL.
- Navegue a github.com mientras las herramientas de desarrollador siguen abiertas.
- Inicie sesión en github.com
- Anote todos los saltos intermedios entre la página inicial de github.com y su destino después de que se haya producido el inicio de sesión.
- Analice los encabezados de solicitud/respuesta para determinar el tipo de autenticación especificado anteriormente.
Paso 2: Elija un método de configuración
-
Si solo trabaja con autenticación basada en redirección y no necesita redirigir varias aplicaciones web con diferentes necesidades (por ejemplo, una aplicación web con autenticación basada en redirección y otra aplicación web con autenticación basada en formularios en la página), puede elegir el Método 1 para configurar el inicio de sesión único.
-
Si trabaja con autenticación basada en formularios en la página (o) si trabaja con varias aplicaciones web con diferentes mecanismos de autenticación (o) simplemente quiere más flexibilidad, incluso si solo tiene autenticación basada en redirección, puede elegir el Método 2.
Paso 3: Configurar
Método 1: Configurar el inicio de sesión único de BCR con las directivas existentes
- Habilite la función en el VDA creando el siguiente valor de registro en el
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\HDXMediaStream key: Dword BrowserProfileSharing value 1 - Configure la directiva de configuración de ACL de redirección de contenido del explorador con los sitios web que se van a redirigir. No hay cambios en la configuración en este aspecto.
- En caso de que ya tenga URLs configuradas en la política de sitios de autenticación, cópielas en la política de lista de bloqueo de redirección de contenido del navegador y deshabilite la política de sitios de autenticación.
- En caso de que no haya configurado sitios de autenticación/intermediarios previamente, identifique las URL intermediarias (a partir de las interacciones de solicitud/respuesta en las herramientas de desarrollador del navegador, en la pestaña Red, mientras realiza el flujo de autenticación sin la extensión BCR instalada) y configúrelas en la lista de bloqueo.
Método 2: Configurar el inicio de sesión único de BCR con JSON
Creación de bcrconfig.json
El bcrconfig.json puede contener varias configuraciones de aplicaciones web. La extensión BCR intentará hacer coincidir la URL solicitada con una de las allowList especificadas por una de las aplicaciones en la matriz de aplicaciones y aplicará dinámicamente sus reglas relacionadas para decidir cómo manejar la redirección de página y el procesamiento de inicio de sesión único. Las siguientes claves se pueden utilizar para controlar cómo la extensión BCR trata una aplicación web (tenga en cuenta que los valores booleanos deben estar en minúsculas según las especificaciones JSON - solo true o false):
- appName [string value, mandatory]: Se utiliza principalmente internamente por la extensión y para fines de registro.
-
allowList [string array, mandatory]: Una aplicación debe contener al menos una URL en
allowList, que es la URL que se pretende redirigir para que el cliente renderice la página, no el VDA. Se pueden definir varias URL y se aceptan comodines. Las reglas de comodín son exactamente las mismas que la configuración de ACL de redirección de contenido del navegador. Por ejemplo, para configurar todas las aplicaciones de Google para que se redirijan, utilice la siguiente matriz:[“.google.com/”, “.google.com”, “.youtube.com”, “.youtube.com/”]
- denyList [string value, optional]: Define las URL a las que la aplicación web redirige al usuario cuando se requiere autenticación. Esta configuración es principalmente esencial para la autenticación basada en redirección, pero también se puede usar para evitar redirecciones específicas en algunos flujos de autenticación basados en formularios. Las URL enumeradas en esta clave no se redirigirán para que se produzca la autenticación del lado del servidor. También puede usar esto cuando no se necesita compartir el perfil para restringir que sub-URL específicas de un dominio no se redirijan al cliente.
- profileSharing [boolean value, mandatory]: Este es el valor clave que debe establecerse para garantizar que las cookies de autenticación de inicio de sesión único y otras cookies que almacenan las preferencias del usuario se compartan, asegurando un comportamiento consistente entre las páginas renderizadas en el lado del servidor y en el lado del cliente.
- cookies [string array, optional]: Defina una o más cookies de autenticación necesarias para que la aplicación web se cargue sin solicitar al usuario. La extensión evitará la redirección del lado del cliente hasta que todas las cookies enumeradas aquí se detecten como establecidas para la URL de la aplicación web dada. Esta configuración se utiliza principalmente para la autenticación basada en formularios en la página, pero también se puede utilizar para la autenticación basada en redirección, además de especificar denyList en ciertos escenarios.
-
deleteClientCache[boolean value, optional]: Si se utiliza el mecanismo de configuración
bcrconfig.json, el cliente BCR elimina su caché del navegador de forma predeterminada para mejorar la seguridad. Este proceso ocurre cuando el usuario cierra todas las pestañas redirigidas o inicia una página redirigida por primera vez en una sesión. Establezca el valor de esta clave en false para evitar este comportamiento. Si el dispositivo cliente es de confianza, establecer esta clave en false puede mejorar la experiencia del usuario. Si el dispositivo cliente no es de confianza, no establecer esta clave (o) establecer esta clave en true puede mejorar la postura de seguridad. - schemaVersion [string value, mandatory]: Se utiliza principalmente internamente por la extensión y para fines de registro. En el momento de redactar este documento, su valor debe establecerse en 2511.
Configuración de ejemplo
{
"apps": [
{
"appName": "myWebApp1",
"allowList": [
"https://myWebApp1.com/*"
],
"denyList": [],
"requires": {
"profileSharing": false,
"cookies": []
}
},
{
"appName": "myWebApp2",
"allowList": [
"https://myWebApp2.com/*"
],
"denyList": [
"https://myWebApp2.com/authPortal/*"
],
"requires": {
"profileSharing": true,
"cookies": []
}
},
{
"appName": "myWebApp3",
"allowList": [
"https://*.myWebApp3.com/"
],
"denyList": [
"https://myWebApp3.com/authPortal/*"
],
"requires": {
"profileSharing": true,
"cookies": [
"requiredAuthCookie1",
"requiredAuthCookie2"
]
}
}
],
"preferences": {
"deleteClientCache": true
},
"schemaVersion": "2511"
}
<!--NeedCopy-->
Aquí tiene un archivo bcrconfig.json de ejemplo. Sus elementos se explican en detalle a continuación:
La estructura JSON anterior contiene 3 aplicaciones con diferentes configuraciones:
Escenario myWebApp1, sin SSO:
- El valor de la matriz de cadenas de la clave
allowListespecifica que todas las rutas dentro de https://myWebApp1.com deben redirigirse al cliente, excepto los valores enumerados en la clavedenyList, si los hubiera. - El valor de la matriz de cadenas de la clave
denyListestá vacío, por lo que no se impedirá la redirección de ningún sitio de autenticación. Por lo tanto, la autenticación no se mantendrá estrictamente en el lado del servidor. - El valor booleano de la clave
profileSharingse establece en false, por lo que no se compartirán con el cliente las cookies relacionadas con las entradasallowList. - La matriz de cadenas de la clave de cookies está vacía, pero se habría ignorado de todos modos, ya que la clave de uso compartido
profileSharingestá establecida en false.
myWebApp2, escenario de autenticación basada en redirección:
-
El valor de la matriz de cadenas de la clave
allowListespecifica que todas las rutas dentro de https://myWebApp2.com deben redirigirse al cliente, excepto los valores enumerados en la clavedenyList, si los hubiera. -
El valor de la matriz de cadenas de la clave
denyListespecifica que las rutas que comienzan con/authPortal/en el dominio myWebApp2.com se evitarán de la redirección del lado del cliente para que se pueda realizar la autenticación del lado del servidor. -
El valor booleano de la clave
profileSharingse establece en true, por lo que las cookies relacionadas con las entradas de la lista de permitidos se compartirán con el cliente y se realizará el inicio de sesión único. -
La matriz de cadenas de la clave de cookies está vacía, por lo que la extensión no esperará a que se establezca una cookie específica después de la autenticación del lado del servidor antes de que se compartan con el cliente.
myWebApp3, escenario de autenticación basada en formularios:
- El valor de la matriz de cadenas de la clave
allowListespecifica que todas las rutas dentro de https://myWebApp3.com deben redirigirse al cliente, excepto los valores enumerados en la clavedenyList, si los hubiera. - El valor de la matriz de cadenas de la clave
denyListespecifica que las rutas que comienzan con/authPortal/en el dominio myWebApp2.com se evitarán de la redirección del lado del cliente para que se pueda realizar la autenticación del lado del servidor. - El valor booleano de la clave
profileSharingse establece en true, por lo que las cookies relacionadas con las entradasallowListse compartirán con el cliente. - La matriz de cadenas de la clave de cookies contiene un nombre de cookie, por lo que la extensión esperará a que se establezca esta cookie después de la autenticación del lado del servidor. La cookie para la URL relacionada en
allowListse compartirá con el cliente y se producirá una redirección del lado del cliente.
Preferencias
- La clave
deleteClientCachese establece en true, por lo que el cliente de BCR elimina su caché del navegador de forma predeterminada para mejorar la seguridad. Este es el comportamiento predeterminado incluso si la clave no está configurada.
Configuración de la directiva de BCR
Una vez que haya creado el bcrconfig.json, siga los pasos siguientes para configurar la configuración de ACL de redirección de contenido del explorador para usar el contenido del archivo JSON.
-
Asigne un nombre al archivo con la extensión
.bcrconfig.json, por ejemplo,myrules.bcrconfig.json -
Aloje el archivo JSON en un servidor web accesible para el VDA y anote la URL.
Nota:
El servidor debe permitir las descargas de archivos; los sitios de Microsoft IIS permiten las descargas de archivos JSON de forma predeterminada.
-
En Citrix Studio, en Directivas, agregue la URL del paso anterior a la configuración de ACL de redirección de contenido del explorador:
Nota:
Otras entradas en la configuración de ACL de redirección de contenido del explorador pueden permanecer. La extensión BCR prioriza la configuración de
bcrconfig.jsonsi surgen conflictos. Citrix recomienda trasladar toda la configuración a JSON para facilitar la administración, la configuración a nivel de aplicación y la escalabilidad. -
Guarde la directiva e inicie una sesión para probar la configuración de la directiva.
Nota:
Después de establecer la directiva, puede editar el archivo
bcrconfig.jsonalojado en cualquier momento para ajustarlo. El archivo se recarga y aplica los cambios solo cuando se inicia o reinicia el proceso principal del explorador que ejecuta la extensión BCR.
Nota:
En esencia, desde la perspectiva de la política, solo necesita habilitar la política de Redirección de contenido del explorador (que está habilitada de forma predeterminada) y configurar la política de configuración de ACL de Redirección de contenido del explorador con la URL que apunta al archivo JSON.
La configuración JSON se aplica actualmente a las siguientes políticas y las hace flexibles, pero el resto de las políticas siguen realizando las mismas acciones que antes.
- Configuración de ACL de redirección de contenido del explorador: Las URL de la ACL ahora se pueden configurar mediante JSON a través de la clave
allowList.- Configuración de la lista de bloqueo de redirección de contenido del explorador: La lista de bloqueo ahora se puede configurar mediante JSON a través de la clave
denyList.- Sitios de autenticación de redirección de contenido del explorador: Los sitios de autenticación también se pueden configurar mediante JSON a través de la clave
denyList.