Fala pessoal! Artigo de hoje vamos falar sobre como gerar links (URLs) para diversas áreas da plataforma e que ao serem acessados por usuarios não autenticados, invés de exibir a tela de login convencional, a tela de Single Sign On seja exibida.
Isto é bastante útil quando sua instância possui o plugin de Multi-SSO habilitado, isto é, diversas entidades de SSO registradas e cada usuario faz a autenticação por um tenant diferente (Azure, Okta etc).
Antes de tudo, caso voce não saiba se possui o plugin de Multi-SSO habilitado, faça o seguinte:
Vá até System Definition > Plugins
Pequise pelo seguinte ID: com.snc.integration.sso.multi.installer
Só verificar se plugin esteja instalado e habilitado!
Antes de prosseguir, tenha em mãos o Identity Provider que será usado nas URLs. Para encontrá-los faça o seguinte:
Menu > Multi Provider SSO > Identity Providers
Agora sobre as URLs, temos alguns cenários que iremos cobrir:
Será exibida uma lista com todos os seus Identity Providers (IdP). Clique com botão direito no registro que você quer usar e “Copy Sys ID”. Pronto
Link #1 – Endereço Padrão
Esta URL leva à homepage após a autenticação com sucesso. Ela tem o mesmo comportamento de voce abrir a sua instancia, clicar em “Login with SSO” e fazer a autenticação. A grande sacada da URl a seguir, é que ela dispensa o usuário de clicar no link do login com SSO, inserir o nome de usuario e só então ser redirecionado para a página de SSO.
https://debugme.service-now.com/login_with_sso.do?glide_sso_id=<SSO_SYS_ID>
Link #2 – Redirecionamento para uma página específica
Esta outra URL suporta um parametro chamado uri que é o redirecionamento para qualquer página do ServiceNow após a autenticação com sucesso, como por exemplo um ticket específico ou um formulário de Item de Catálogo. Primeiro precisamos ter o endereço original dessa página. Para este exemplo, vamos considerar uma página de formulário de Item de Catálogo no Service Portal e que a URL seja:
https://debugme.service-now.com/sp?id=sc_cat_item&sys_id=29a39e830a0a0b27007d1e200ad52253&sysparm_category=e15706fc0a0a0aa7007fc21e1ab70c2f
Desmontando a URL acima, temos:
Nome do Parâmetro Valor Descrição id sc_cat_item Página de Item de Catálogo sys_id 29a39e830a0a0b27007d1e200ad52253 Identificador do Item de Catálogo sysparm_category e15706fc0a0a0aa7007fc21e1ab70c2f Identificador da Categoria do Item de Catálogo É importante reparar nesses argumentos pois a URL final deverá conter estas mesmas chaves e valores.
Agora vamos incluir parte desse endereço na URL de SSO utilizando o parametro uri conforme abaixo:
https://debug.service-now.com/nav_to.do?glide_sso_id=<SSO_SYS_ID>&uri=/sp%3Fid%3Dsc_cat_item%26sys_id%3D<CAT_ITEM_SYS_ID>%26sysparm_category%3D<CATEGORY_SYS_ID>
// Preenchendo os valores:
https://debug.service-now.com/nav_to.do?glide_sso_id=<SSO_SYS_ID>&uri=/sp%3Fid%3Dsc_cat_item%26sys_id%3D29a39e830a0a0b27007d1e200ad52253%26sysparm_category%3De15706fc0a0a0aa7007fc21e1ab70c2fÉ interessar notas que alguns caracteres desta URL foram encodados para seu devido processamento. Então temos %3D é o sinal de igual, %26 é o E comercial (&) e o %3F é a interrogação (?).
Desta forma, caso um usuario não autenticado abra esta URL, ele será redirecionado primeiramente para a tela de login do SSO informado, e após autenticação, será redirecionado para a página do item de catálogo escolhido.
Muitos clientes utilizam URLs como esta quando eles possuem portais externos e adicionam links para páginas especificas do ServicePortal e não querem que seus usuarios vejam/usem a tela de login nativa do ServiceNow.
Por hoje é isso pessoal!