La multimarca le permite controlar todas las marcas de su compañía en una sola cuenta de Zendesk Support. Sin embargo, la configuración de seguridad solo le permite configurar un URL para los inicios de sesión remotos, algo que puede ser problemático si tiene varias bases de datos de usuarios para cada una de sus marcas.
Eso era antes. El nuevo método le permitirá crear un script fácil entre Zendesk Support y el script de inicio de sesión único (SSO) en su servidor con el que podrá dirigir a los clientes a URL específicos conforme a la marca que deseen acceder.
La sugerencia presentada aquí hace de cuenta que ya tiene configurado JWT en su servidor. Si no es así, asegúrese de seguir las instrucciones que se describen en el artículo Configuración de inicio de sesión único con JWT (Token Web JSON).
En este ejemplo, se utiliza php, pero se puede adaptar a otros lenguajes si fuera necesario.
Este artículo contiene las siguientes secciones:
- Dos o más marcas o más configuración
- Dos o más sistemas de autenticación de usuario con JWT configurado
- Los scripts
- Actualizar configuración de seguridad
- Resolución de problemas
Configuración de dos o más marcas
Para que esta sugerencia tenga sentido, debe tener al menos dos marcas configuradas. Si desea ver detalles, consulte Configuración de varias marcas (complemento de Professional, incluido en Enterprise).
Después de configurarlas, guarde el URL de la marca y el URL de la marca con mapeo de host. Los usaremos con el script más adelante.
Dos o más sistemas de autenticación de usuario configurados con SSO con JWT
Como se mencionó anteriormente, tiene que tener configurado el SSO con JWT en sus sistemas de autenticación de usuario. Podría tener uno por cada marca, pero tome en cuenta que el secreto compartido que obtiene de sus opciones de seguridad tiene que ser el mismo en todos los sistemas de autenticación.
Guarde el URL de inicio de sesión y el URL de cierre de sesión junto con la información de la sección anterior.
Los scripts
Ahora viene la parte interesante. La lista de URL guardados podría ser parecida a esta:
Marca 1
URL sin mapeo de host: https://brand1.zendesk.com
URL con mapeo de host: https://support1.example.com
Marca 2
URL sin mapeo de host: https://brand2.zendesk.com
URL con mapeo de host: https://support2.example.com
Sistema 1
URL de inicio de sesión: https://page1.example.com/zdlogin.php
URL de cierre de sesión: https://page1.example.com/zdlogout.php
Sistema 2
URL de inicio de sesión: https://page2.example.com/zdlogin.php
URL de cierre de sesión: https://page2.example.com/zdlogout.php
Ahora vamos a crear el script. Elimine https:// del URL para el URL de cada marca. Consérvelos en los vínculos de sitio web.
Script de inicio de sesión
<? $brand_URLs = array( "brand1.zendesk.com" => "https://page1.example.com/yourcustomloginjwtscript.php", "support1.example.com" => "https://page1.example.com/yourcustomloginjwtscript.php", "brand2.zendesk.com" => "https://page2.example.com/yourcustomloginjwtscript2.php", "support2.example.com" => "https://page2.example.com/yourcustomloginjwtscript2.php" ); foreach($brand_URLs as $k => $v){ if(strpos($_GET['return_to'],$k)){ header("Location: ". $v); die(); } } ?>
Script de cierre de sesión
<? $brand_URLs = array( "brand1.zendesk.com" => "https://page1.example.com/yourcustomlogoutjwtscript.php", "support1.example.com" => "https://page1.example.com/yourcustomlogoutjwtscript.php", "brand2.zendesk.com" => "https://page2.example.com/yourcustomlogoutjwtscript.php", "support2.example.com" => "https://page2.example.com/yourcustomlogoutjwtscript.php" ); foreach($brand_URLs as $k => $v){ if(strpos($_GET['return_to'],$k)){ header("Location: ". $v); die(); } } ?>
Actualizar configuración de seguridad
- En el Centro de administración, haga clic en el icono Cuenta (
) en la barra lateral y luego seleccione Seguridad > Inicio de sesión único.
- Para Token Web JSON, haga clic en Activado y apunte hacia los scripts que creamos. Vea el ejemplo a continuación.
- Guarde los cambios.
- URL de inicio de sesión remoto - Este tiene que ser el URL al script de inicio de sesión.
- URL de cierre de sesión remoto - Este tiene que ser el URL al script de cierre de sesión.
- ¿Actualizar ID externas? - Si se da el caso de que algunos de sus clientes tienen una cuenta en más de un sistema de autenticación de usuarios con la misma dirección de correo electrónico, deberá seleccionar “Activado” para esta opción para evitar conflictos a la hora de iniciar sesión.
Ahora sus agentes o clientes podrán realizar la autenticación mediante su propio sistema de autenticación, conforme a la marca a la cual estén tratando de acceder.
Estos scripts también se pueden encontrar aquí:
Nota 1: El riesgo de seguridad es reducido si usa el script tal y como es. En cambio, si lo modifica considerablemente (excepto por los cambios aquí mencionados), podría provocar una vulnerabilidad en la seguridad de su propio servidor (no el de Zendesk).
Nota 2: Puesto que solo ofrecemos un token JWT, todos los scripts SSO usarán los mismos tokens en sus sistemas de autenticación. Si uno de sus sistemas se ve comprometido, existe la posibilidad de que todas sus marcas se vean comprometidas.
Nota 3: Si recibe un error "Solicitud de JWT no válida" cuando intenta usar SSO, consulte las instrucciones de Resolución de problemas a continuación.
Resolución de problemas
Para evitar errores de solicitud de JWT no válida, codifique https://(subdominiopredeterminado).zendesk.com/ como /access/jwt?jwt=
para ambas marcas donde (subdominiopredeterminado) es el subdominio de la marca principal. Por ejemplo, midominio.zendesk.com.
- Codifique https://(subdominiopredeterminado).zendesk.com en un script de SSO, para que la carga JWT siempre sea enviada a https://(subdominiopredeterminado).zendesk.com/access/jwt
- Implemente ese fragmento en el script para usar “return_to” para que el usuario final sea redirigido de nuevo al Centro de ayuda de origen. Asegúrese de anexar la carga para los URL de ambas marcas como fijos “(subdominiopredeterminado)” y anexe “return_to”.
El fragmento para su referencia:
if(isset($_GET["return_to"])) {
$location .= "&return_to=" . urlencode($_GET["return_to"]);
}
0 Comentarios
Inicie sesión para dejar un comentario.