---
sourceDocument: Segurança da plataforma Yokohama
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/yokohama/platform-security

 Release :

    - yokohama

ft:locale :

    - pt-BR

ft:publication_title :

    - Segurança da plataforma Yokohama

ft:clusterId :

    - psec

bundleId :

    - psec

workflow :

    - Platform


---

# Fluxo do processo de login (AuthnRequest)

# Fluxo do processo de login (AuthnRequest) {#ariaid-title1}

* Versão de lançamento: Yokohama
* 
* Atualizado 30 de jan. de 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 min. de leitura

O SAML 2.0 especifica um perfil de SSO do navegador da Web que envolve a troca de informações entre um provedor de identidade (IdP), um provedor de serviço (SP) e uma entidade de segurança (usuário) em um navegador da Web.

O provedor de identidade pode ser qualquer serviço SSO que ofereça serviços de autenticação SAML (por exemplo, SSOCircle). O provedor de serviço é sempre uma instância. O fluxo de mensagens começa com uma solicitação de um recurso protegido no provedor de serviço.

## Como solicite o recurso de destino no SP

A entidade de segurança solicita um recurso de destino no provedor de serviço:

https://instance.service-now.com/

A instância verifica a solicitação para ver se os parâmetros de URL "SAMLRequest" e "RelayState" estão presentes. Se eles existirem, o usuário já foi validado com o IdP e pode ignorar as etapas 2 a 6.

## Como emitir um AuthnRequest para o provedor de identidade

A instância constrói um `AuthnRequest` a ser enviado ao IdP usando o valor `SAMLRequest`. A instância também constrói e envia um valor de parâmetro de URL `RelayState`.  
O token `RelayState` é uma referência opaca às informações de estado mantidas no provedor de serviço. O valor do parâmetro `SAMLRequest` é o valor deflacionado e codificado em base64 do elemento `<samlp:AuthnRequest>`:

    <samlp:AuthnRequest    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"    ID="identifier_1"    Version="2.0"    IssueInstant="2004-12-05T09:21:59Z"    AssertionConsumerServiceIndex="0"><saml:Issuer>https://sp.example.com/SAML2</saml:Issuer><samlp:NameIDPolicy      AllowCreate="true"      Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/></samlp:AuthnRequest>

A integração codifica por URL o elemento `<samlp:AuthnRequest>` e o envia como o parâmetro de URL `SAMLRequest`

O serviço de SSO processa o elemento `<samlp:AuthnRequest>` por decodificação de URL, decodificação base64 e aumento da solicitação, nessa ordem. Em seguida, ele executa uma verificação de segurança. Se o usuário não tiver um contexto de segurança válido, o IdP identificará o usuário solicitando credenciais de login. Se o usuário já estiver conectado, o IdP simplesmente responderá com os parâmetros de URL `SAMLResponse<tt> e <tt>RelayState` (consulte a etapa 3).

## Como responder com um SAMLResponse e RelayState

Depois de coletar as credenciais de login necessárias, o serviço SSO valida a solicitação e responde com um documento que contém um formulário XHTML:

    <formmethod="post"action="https://instance.service-now.com/navpage.do" ...><input type="hidden" name="SAMLResponse" value="response ..." /><input type="hidden" name="RelayState" value="token ..." />
        ...
        <input type="submit" value="Submit" /></form>

O valor do parâmetro `RelayState` vem desta etapa. O valor do parâmetro `SAMLResponse` é a codificação em base64 do seguinte elemento `<samlp:Response>`:

    <samlp:Responsexmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"  ID="s2cdc74f37f923e26fe1aeec42b70a93d24230334f"  InResponseTo="90AA6073F01567BFB0DF194F596314E2"  Version="2.0"  IssueInstant="2010-04-29T23:21:51Z"  Destination="https://dloomac.service-now.com/navpage.do"><saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://idp.ssocircle.com</saml:Issuer><samlp:Status xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"><samlp:StatusCode xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"       Value="urn:oasis:names:tc:SAML:2.0:status:Success"></samlp:StatusCode></samlp:Status><saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"    ID="s23e536bfc51b8487d4d3299dec162d9c2e338823b"    IssueInstant="2010-04-29T23:21:51Z"    Version="2.0"><saml:Issuer>http://idp.ssocircle.com</saml:Issuer><Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
     
    ...
          </Signature><saml:Subject><saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"            NameQualifier="http://idp.ssocircle.com"             SPNameQualifier="https://dloomac.service-now.com/navpage.do">david.loo@service-now.com</saml:NameID><saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"><saml:SubjectConfirmationData              InResponseTo="90AA6073F01567BFB0DF194F596314E2"              NotOnOrAfter="2010-04-29T23:31:51Z"              Recipient="https://dloomac.service-now.com/navpage.do" /></saml:SubjectConfirmation></saml:Subject><saml:Conditions NotBefore="2010-04-29T23:11:51Z"        NotOnOrAfter="2010-04-29T23:31:51Z"><saml:AudienceRestriction><saml:Audience>https://dloomac.service-now.com</saml:Audience></saml:AudienceRestriction></saml:Conditions><saml:AuthnStatement AuthnInstant="2010-04-29T23:21:51Z"        SessionIndex="s2dbf89ab99001e0e8cdaed67266d9d4b21b968a04"><saml:AuthnContext><saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef></saml:AuthnContext></saml:AuthnStatement></saml:Assertion></samlp:Response>

## Como validar o SAMLResponse

O valor `SAMLResponse` é decodificado em base64 e aumentado para revelar o documento XML na etapa 3. O script de login extrai o valor XML do elemento `//Subject/NameID` e o usa para pesquisar um usuário existente na tabela Usuário.

O script de login também extrai o ID da sessão do elemento `//AuthnStatement/@SessionIndex` e o armazena para o `LogoutRequest`.

