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 프로세스의 워크플로를 보여 줍니다.
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
LogoutRequest
의 Issuer
요소는 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
, Version
및 IssueInstant
값을 설정합니다. 또한 InResponseTo
요소를 응답을 도출한 LogoutRequest
의 ID
특성 값으로 설정합니다.
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
요소에 사용자 지정 오류 메시지가 포함될 수도 있습니다.