다음을 통해 공유


Single Sign-Out SAML 프로토콜

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

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

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

Microsoft Entra Single Sign Out 워크플로의 스크린샷.

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>

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

  • ID - 로그아웃 요청을 식별합니다. 값 ID 은 숫자로 시작해서는 안 됩니다. 일반적인 방법은 GUID의 문자열 표현에 ID 를 추가하는 것입니다.
  • Version - 이 요소의 값을 2.0으로 설정합니다. 이 값은 필수입니다.
  • IssueInstant DateTime- UTC(좌표 세계시) 값과 왕복 형식("o")이 있는 문자열입니다. Microsoft Entra ID는 이 형식의 값을 예상하지만 적용하지는 않습니다.

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

발급자

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

이름ID

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

비고

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

LogoutResponse

Microsoft Entra ID는 LogoutResponse 요소에 대한 응답으로 LogoutRequest 메시지를 보냅니다. 다음 발췌문은 샘플을 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는 ID 요소의 Version, IssueInstantLogoutResponse 값을 설정합니다. 또한 요소를 응답을 유도한 InResponseTo 특성의 ID 값으로 설정합니다LogoutRequest.

발급자

Microsoft Entra ID는 이 값을 https://login.microsoftonline.com/<TenantIdGUID>/ TenantIdGUID<가 Microsoft Entra 테넌트 테넌트 ID인 위치>로 설정합니다.

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

상태

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