EDS 권한 부여
소개
엔터테인먼트 검색 서비스(EDS) 3.1은 익명 트래픽을 지원하지 않습니다. EDS에 대한 모든 요청에는 인증이 필요합니다. EDS의 경우 클라이언트를 올바르게 인증하려면 호출자의 XToken이 필요합니다. 이 토큰은 XSTS에서 생성하며 다양한 Xbox 인증 서비스(XAS)를 통해 얻을 수 있습니다. 저마다 토큰의 ID를 정의하는 장치, 사용자 및 타이틀에 대한 별도 인증 서비스가 있습니다.
XSTS는 Xbox LIVE용 게이트 키퍼로서, 사용자 또는 장치가 Xbox LIVE 서비스 중 어느 것에라도 연결할 수 있는 권한이 있는지 확인하기 위한 첫 번째 방어선입니다. XSTS는 사용자를 인증한 후 사용자가 서비스의 구성 요소에 대해 자신의 신원을 안전하게 확인하는 데 사용할 수 있는 XToken을 생성합니다. 이 XToken은 LIVE에 대한 passport입니다.
사람과 사물은 Microsoft의 서비스를 사용하기 원합니다. 이러한 사물과 사람 대부분이 Microsoft의 서비스를 사용할 수 있기를 바랍니다. 하지만 사물이 사람인 척하는 게 아니고 사람은 실제로 그 사람이라는 것을 어떻게 확신할 수 있을까요? Microsoft는 다른 사람 또는 사물에게 자신의 신원을 증명하는 데 사용할 수 있는 토큰을 제공합니다.
이 토큰은 XSTS에서 생성하며 일반적으로 XTokens라고 합니다. XToken은 다양한 것을 포함하며 여러 가지 형태를 띨 수 있지만 모두 XSTS 서버에서 생성, 서명 및 선택적 암호화되는 토큰을 지칭할 때 사용하는 광범위한 용어입니다. 내부적으로 XSTS는 MXAN을 사용해 토큰을 생성하고 토큰의 형식을 지정합니다. MXAN은 XToken에서 정보를 추출하는 유일한 구성 요소입니다. 토큰을 소모하는 서비스는 해독을 위해 요청 헤더를 MXAN에 전달합니다. 토큰은 처리 및 검증되고 토큰에 표현된 클레임은 서비스로 반환됩니다. 그러면 이 서비스에서는 이 클레임 값을 사용하여 호출 사용자 또는 장치를 식별하고 해당 정보에 따라 작업을 수행할 수 있습니다.
사용자, 장치 및 타이틀에 대한 기본 ID 토큰은 Xbox 인증 서비스(XAS)에서 제공합니다. 각 XAS는 자신이 맡은 다양한 클레임에 값을 지정하는 ID 토큰을 생성해야 합니다.
- XASD(장치에 대한 XAS): 장치 ID를 제공하는 DToken을 생성합니다.
- XASU(사용자에 대한 XAS): 사용자 ID를 제공하는 UToken을 생성합니다.
- XAST(타이틀에 대한 XAS): 타이틀 ID를 제공하는 TToken을 생성합니다.
권한 부여 프로세스
하나 이상의 ID 토큰을 얻습니다. D, U 및 T 토큰이 최대 1개씩 있는 XToken을 요청할 수 있습니다. D 또는 U를 최소 1개 제공해야 합니다.
- 장치 인증 세부 정보를 제공하여 XASD에게 DToken 요청
- 몇 가지 형태의 사용자 인증을 통해 XASU에게 UToken을 요청합니다. 사용자 인증은 아마도 MSA(RPS) 토큰 형태로 제공될 것입니다.
- XAST에게 TToken을 요청합니다. 사용할 수 있는 타이틀은 현재 실행 중인 플랫폼에 따라 다르므로 XAST에 DToken도 제공해야 합니다.
XSTS 요청을 생성합니다.
- 요청하는 토큰이 속한 신뢰 당사자를 정의합니다.
- D, U 및/또는 T 토큰으로 요청 속성을 채웁니다. * XSTS 요청을 실행하고 그 결과로 얻은 XToken을 캐싱합니다. 반환된 XToken은 ID 토큰에서 얻은 (최대) 모든 장치, 사용자 및 타이틀 ID 정보와 추가 클레임(현재 구독 상태, 사용자 그룹 등)을 포함합니다.
3.0 토큰: 다중 사용자 대 단일 사용자
3.0 토큰의 형식은 XBL3.0 x=<hash>;<token>
입니다.
다음과 같이 <해시>에 따라 토큰은 다르게 취급됩니다.
- <해시>가 *(별표)와 같으면 요청을 수행하는 특정 사용자가 없고 토큰 내 모든 사용자는 역직렬화된 계정에 있습니다. 이것은 진정한 다중 사용자 형식입니다.
- <해시>가 -(대시)와 같으면 요청을 수행하는 사용자가 없습니다. 역직렬화된 계정에 있는 모든 사용자가 제거됩니다.
- <해시>가 * 또는 -와 같지 않다면 토큰에 있는 어떤 사용자가 요청하고 있는지 나타내는 식별자입니다. 이 식별자를 통해 알려진 사용자만 역직렬화된 계정에 있게 됩니다. 다른 모든 사용자는 제거됩니다. 이것은 단일 사용자 3.0 토큰입니다.
EDS는 다중 사용자를 지원하나요?
- 대답은 '지원하지 않습니다'입니다. 설명된 사례에서 콘솔은 항상 단일 사용자 토큰을 전송합니다. 여러 사용자가 로그인한 경우라도 표시된 "호출자"가 있어야 하고, 이 경우 다른 모든 ID는 삭제됩니다.