Single Sign-Out SAML 프로토콜

Microsoft Entra ID는 SAML 2.0 웹 브라우저 Single Sign-Out 프로필을 지원합니다. Single Sign-Out이 제대로 작동하려면, 애플리케이션 등록 중에 애플리케이션에 대한 LogoutURL이 Microsoft Entra ID에 명시적으로 등록되어야 합니다.

앱이 Azure 앱 갤러리에 추가되면 기본값으로 이 값을 설정할 수 있습니다. 그렇지 않으면 앱을 Microsoft Entra 테넌트에 추가하는 사람이 값을 결정하고 설정해야 합니다. Microsoft Entra ID는 LogoutURL을 사용하여 로그아웃한 후 사용자를 리디렉션합니다. Microsoft Entra ID는 HTTP POST 바인딩이 아닌 리디렉션 바인딩(HTTP GET)을 지원합니다.

다음 다이어그램에서는 Microsoft Entra Single Sign-Out 프로세스의 워크플로를 보여 줍니다.

Screenshot of the Microsoft Entra Single Sign Out Workflow.

LogoutRequest

클라우드 서비스는 세션이 종료되었음을 나타내는 LogoutRequest 메시지를 Microsoft Entra ID로 보냅니다. 다음 발췌문은 샘플 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>

Microsoft Entra ID로 전송된 LogoutRequest 요소에는 다음 특성이 필요합니다.

  • ID - 로그아웃 요청을 식별합니다. ID의 값은 숫자로 시작할 수 없습니다. 일반적인 방법은 id 를 GUID의 문자열 표현에 추가하는 것입니다.
  • Version - 이 요소의 값을 2.0으로 설정합니다. 이러한 값이 필요합니다.
  • IssueInstant - UTC(Coordinate Universal Time) 값과 왕복 형식("o")이 포함된 DateTime 문자열입니다. Microsoft Entra ID에는 이 형식의 값이 필요하지만 적용되지는 않습니다.

SAML 2.0 코어 사양의 섹션 3.7에 따라 세션에는 애플리케이션 외에 여러 참가자(다른 애플리케이션)가 있을 수 있습니다. 다른 참가자 중 하나가 Microsoft ID 플랫폼(세션 기관)에 LogoutRequest를 보내면 초기 LogoutRequest를 보낸 참가자를 제외한 모든 세션 참가자에게 LogoutRequest를 다시 보냅니다. 다른 참가자가 동시에 로그아웃을 시작한 경우 어떤 LogoutRequest가 먼저 Microsoft ID 플랫폼에 도달하는지 확인하기 위한 경합이 있을 것입니다. 따라서 애플리케이션은 항상 LogoutRequest를 처리할 준비가 되어 있어야 합니다.

Issuer

LogoutRequestIssuer 요소는 Microsoft Entra ID에서 클라우드 서비스의 ServicePrincipalNames 중 하나와 정확히 일치해야 합니다. 일반적으로 애플리케이션 등록 중에 지정된 앱 ID URI 로 설정됩니다.

NameID

NameID 요소 값은 로그아웃한 사용자의 NameID와 정확히 일치해야 합니다.

참고 항목

SAML 로그아웃 요청 중에는 Microsoft Entra ID에서 NameID 값을 고려하지 않습니다.
단일 사용자 세션이 활성화된 경우 Microsoft Entra ID는 자동으로 해당 세션을 선택하고 SAML 로그아웃이 진행됩니다.
여러 사용자 세션이 활성화된 경우 Microsoft Entra ID는 사용자 선택을 위해 활성 세션을 열거합니다. 사용자 선택 후 SAML 로그아웃이 진행됩니다.

LogoutResponse

Microsoft Entra ID는 LogoutRequest 요소에 대한 응답으로 LogoutResponse을(를) 보냅니다. 다음 발췌문은 샘플 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는 LogoutResponse 요소에 ID, VersionIssueInstant 값을 설정합니다. 또한 InResponseTo 요소를 응답을 도출한 LogoutRequestID 특성 값으로 설정합니다.

Issuer

Microsoft Entra ID는 이 값을 https://login.microsoftonline.com/<TenantIdGUID>/로 설정합니다. 여기서 <TenantIDGUID>는 Microsoft Entra 테넌트의 테넌트 ID입니다.

발급자 요소를 올바르게 식별하려면 샘플 LogoutResponse에 표시된 대로 https://login.microsoftonline.com/<TenantIdGUID>/ 값을 사용합니다. 이 URL 형식은 Microsoft Entra 테넌트를 발급자로 식별하여 응답 발급을 담당하는 기관을 나타냅니다.

상태

Microsoft Entra ID는 Status 요소의 StatusCode 요소를 사용하여 로그아웃 성공 또는 실패를 표시합니다. 로그아웃 시도가 실패하면 StatusCode 요소에 사용자 지정 오류 메시지가 포함될 수도 있습니다.