Partilhar via


Protocolo SAML de Fim de Sessão Único

O Microsoft Entra ID suporta o perfil de saída única do navegador SAML 2.0. Para que o logon único funcione corretamente, o LogoutURL do aplicativo deve ser explicitamente registrado com o ID do Microsoft Entra durante o registro do aplicativo.

Se o aplicativo for adicionado à Galeria de Aplicativos do Azure, esse valor poderá ser definido por padrão. Caso contrário, o valor deve ser determinado e definido pela pessoa que adiciona o aplicativo ao locatário do Microsoft Entra. O Microsoft Entra ID usa o LogoutURL para redirecionar os usuários depois que eles saem. O Microsoft Entra ID oferece suporte à vinculação de redirecionamento (HTTP GET) e não à vinculação HTTP POST.

O diagrama a seguir mostra o fluxo de trabalho do processo de saída única do Microsoft Entra.

Screenshot of the Microsoft Entra Single Sign Out Workflow.

LogoutRequest

O serviço de nuvem envia uma mensagem para o Microsoft Entra ID para indicar que uma LogoutRequest sessão foi encerrada. O trecho a seguir mostra um elemento de exemplo LogoutRequest .

<samlp:LogoutRequest xmlns="urn:oasis:names:tc:SAML:2.0:metadata" ID="idaa6ebe6839094fe4abc4ebd5281ec780" Version="2.0" IssueInstant="2013-03-28T07:10:49.6004822Z" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
  <Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">https://www.workaad.com</Issuer>
  <NameID xmlns="urn:oasis:names:tc:SAML:2.0:assertion"> Uz2Pqz1X7pxe4XLWxV9KJQ+n59d573SepSAkuYKSde8=</NameID>
</samlp:LogoutRequest>

O LogoutRequest elemento enviado para o Microsoft Entra ID requer os seguintes atributos:

  • ID - Isso identifica a solicitação de saída. O valor de ID não deve começar com um número. A prática típica é acrescentar id à representação de cadeia de caracteres de um GUID.
  • Version - Defina o valor deste elemento como 2.0. Este valor é obrigatório.
  • IssueInstant - Esta é uma DateTime cadeia de caracteres com um valor UTC (Coordinate Universal Time) e formato de ida e volta ("o"). O Microsoft Entra ID espera um valor desse tipo, mas não o impõe.

De acordo com a seção 3.7 da especificação principal do SAML 2.0, pode haver vários participantes (outros aplicativos) em uma sessão além do seu aplicativo. Se um dos outros participantes enviar um para a plataforma de identidade da Microsoft (a autoridade da sessão), ele enviará um LogoutRequestLogoutRequest retorno para todos os participantes da sessão, exceto o participante que enviou o .LogoutRequest Se outro participante iniciasse simultaneamente a saída, haveria uma corrida para ver qual LogoutRequest chega primeiro à plataforma de identidade da Microsoft. Portanto, um aplicativo deve estar sempre preparado para lidar com um LogoutRequestarquivo .

Emissor

O Issuer elemento em um deve corresponder exatamente a um LogoutRequest dos ServicePrincipalNames no serviço de nuvem no Microsoft Entra ID. Normalmente, isso é definido como o URI da ID do aplicativo especificado durante o registro do aplicativo.

NomeID

O valor do NameID elemento deve corresponder exatamente ao NameID do usuário que está sendo desconectado.

Nota

Durante a solicitação de logout do SAML, o valor não é considerado pelo ID do NameID Microsoft Entra.
Se uma única sessão de usuário estiver ativa, o ID do Microsoft Entra selecionará automaticamente essa sessão e o logout do SAML continuará.
Se várias sessões de usuário estiverem ativas, o ID do Microsoft Entra enumerará as sessões ativas para seleção de usuários. Após a seleção do usuário, o logout do SAML continuará.

LogoutResponse

Microsoft Entra ID envia um em resposta a um LogoutResponseLogoutRequest elemento. O trecho a seguir mostra um exemplo LogoutResponse.

<samlp:LogoutResponse ID="_f0961a83-d071-4be5-a18c-9ae7b22987a4" Version="2.0" IssueInstant="2013-03-18T08:49:24.405Z" InResponseTo="iddce91f96e56747b5ace6d2e2aa9d4f8c" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
  <Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/</Issuer>
  <samlp:Status>
    <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
  </samlp:Status>
</samlp:LogoutResponse>

Microsoft Entra ID define o ID, Version e IssueInstant valores no LogoutResponse elemento . Ele também define o elemento para o InResponseTo valor do ID atributo do LogoutRequest que provocou a resposta.

Emissor

Microsoft Entra ID define esse valor para https://login.microsoftonline.com/<TenantIdGUID>/ onde <TenantIdGUID> é a ID do locatário do Microsoft Entra.

Para identificar corretamente o elemento emissor, use o valor https://login.microsoftonline.com/<TenantIdGUID>/ conforme mostrado no exemplo LogoutResponse. Esse formato de URL identifica o locatário do Microsoft Entra como o emissor, representando a autoridade responsável pela emissão da resposta.

Status

O Microsoft Entra ID usa o elemento no Status elemento para indicar o StatusCode sucesso ou falha da saída. Quando a tentativa de saída falha, o StatusCode elemento também pode conter mensagens de erro personalizadas.