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.
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 deID
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 é umaDateTime
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 LogoutRequest
LogoutRequest
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 LogoutRequest
arquivo .
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 LogoutResponse
LogoutRequest
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.