Gerando links com autenticação SSO

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âmetroValorDescrição
idsc_cat_itemPágina de Item de Catálogo
sys_id29a39e830a0a0b27007d1e200ad52253Identificador do Item de Catálogo
sysparm_categorye15706fc0a0a0aa7007fc21e1ab70c2fIdentificador 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!

Leave a Reply

Your email address will not be published. Required fields are marked *