O recurso Multimarca permite que você controle todas as marcas de sua empresa em uma única instância do Zendesk Support. No entanto, as configurações de segurança permitem apenas a configuração de uma única URL para acesso remoto, o que pode ser um problema se você tem diferentes bancos de dados de usuários para cada marca.
Mas temos a solução! Essa abordagem permitirá que você crie um script fácil entre o Zendesk Support e o script de acesso por SSO em seu servidor para encaminhar seus clientes para URLs específicas com base na marca em que desejam acessar.
Essa dica se aplica se você já configurou o JWT em seu servidor. Caso ainda não tenha feito isso, será necessário primeiro seguir as instruções listadas no artigo Configuração de single sign-on com JWT (Token da web JSON) .
No exemplo, usamos php, mas é possível adaptar isso para outras linguagens.
Este artigo abrange as seções a seguir:
- Configuração de duas ou mais marcas
- Configuração de dois ou mais sistemas de autenticação de usuário com JWT
- Os scripts
- Atualização das configurações de segurança
- Solução de problemas
Configuração de duas ou mais marcas
Para que essa dica seja útil, você precisará de, no mínimo, duas marcas configuradas. Para obter detalhes, consulte Configuração de várias marcas (complemento do Professional e Enterprise).
Feita a configuração, salve a URL da marca e a URL da marca mapeada por host. Em breve, precisamos dessas informações em nosso script.
Configuração de dois ou mais sistemas de autenticação de usuário de SSO com JWT
Conforme mencionado anteriormente, primeiramente é necessário configurar o SSO com JWT em seus sistemas de autenticação de usuários. Você pode criar um para cada marca, mas lembre-se de que o segredo compartilhado que você obter das opções de segurança precisará ser o mesmo em todos os seus sistemas de autenticação.
Salve as URLs de acesso e de saída com as informações da seção anterior.
Os scripts
Agora vem a parte mais legal! A lista das URLs salvas será assim:
Marca 1
URL sem mapeamento por host: https://brand1.zendesk.com
URL com mapeamento por host: https://support1.example.com
Marca 2
URL sem mapeamento por host: https://brand2.zendesk.com
URL com mapeamento por host: https://support2.example.com
Sistema 1
URL de acesso: https://page1.example.com/zdlogin.php
URL de saída: https://page1.example.com/zdlogout.php
Sistema 2
URL de acesso: https://page2.example.com/zdlogin.php
URL de saída: https://page2.example.com/zdlogout.php
Agora vamos criar o script. Nas URLs de cada marca, remova https:// da URL. Mantenha-os nos links do website.
Script de acesso
<? $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 saída
<? $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(); } } ?>
Atualização das configurações de segurança
- Na Central de administração, clique no ícone Conta (
) na barra lateral e selecione Segurança > Single sign-on.
- Para o Token da web JSON, clique em Ativado e aponte para os scripts que criamos. Veja o exemplo abaixo.
- Salve suas alterações.
- URL de acesso remoto - essa precisa ser a URL para o Script do acesso.
- URL de saída remota - essa precisa ser a URL para o Script da saída.
- Atualizar IDs externas? - caso alguns de seus clientes tenham uma conta em mais de um sistema de autenticação de usuários com o mesmo endereço de email, para evitar conflitos no acesso, você deve selecionar “Ativado” nesta opção.
Agora que agentes e clientes podem autenticar usando seu próprio sistema específico de autenticação, dependendo da marca que eles estão tentando acessar.
Você pode também encontrar scripts aqui:
Observação 1: o risco de segurança é baixo se você usar o script como está. Se você o modificar extensivamente fora das alterações mencionadas aqui, criará uma vulnerabilidade de segurança em seu próprio servidor (e não no do Zendesk).
Observação 2: como fornecemos apenas 1 token JWT, todos seus scripts de SSO usarão os mesmos tokens em seus sistemas de autenticação. Se um de seus sistemas for comprometido, isso resultará no comprometimento de todas as suas marcas.
Observação 3: se o erro "Solicitação de JWT inválida" for exibido quando você testar o SSO, consulte as instruções de Solução de problemas a seguir.
Solução de problemas
Para que não ocorram erros de solicitação de JWT inválida, codifique https://(subdominiopadrao).zendesk.com/ como/access/jwt?jwt=
nas duas marcas em que (subdominiopadrao) corresponde ao subdomínio da sua marca principal. Por exemplo, meudominio.zendesk.com.
- Codifique https://(subdominiopadrao).zendesk.com no script para SSO para que a carga útil do JWT seja sempre enviada para https://(subdominiopadrao).zendesk.com/access/jwt
- Implemente o trecho no script para usar o 'return_to'; assim o usuário final é redirecionado para a Central de Ajuda de origem. Lembre-se de anexar a carga útil para as duas marcas para fazer as URLs fixadas como '(subdominiopadrao)' e anexe o 'return_to'.
O trecho a seguir serve apenas como referência:
if(isset($_GET["return_to"])) {
$location .= "&return_to=" . urlencode($_GET["return_to"]);
}
0 Comentários
Por favor, entre para comentar.