- User Store ID 및 Microsoft Entra ID: 인증 및 결과를 Microsoft Store 앱에 로그인한 사용자 계정과 연결합니다.
- 위임된 인증 X-토큰: 인증 및 결과를 현재 게임을 플레이 중인 사용자의 XBOX 서비스 계정과 연결합니다.
Microsoft Entra ID 및 User Store ID로 인증
모든 Microsoft Store 서비스 API는 Microsoft Entra ID 및 User Store ID를 통한 인증을 지원합니다. 이 인증을 사용하려면 사용자(또는 조직)가 Microsoft Entra ID 테넌트를 보유하고 그 아래에 애플리케이션 ID를 등록해야 합니다. 애플리케이션을 등록하려면 계정에 테넌트 내 전역 관리자 역할이 있어야 합니다. 이미 Microsoft Office 365 또는 기타 Microsoft 비즈니스 서비스를 사용하는 경우 Azure 포털에서 관리할 수 있는 Microsoft Entra ID 테넌트가 이미 있습니다. 이 인증 유형에 필요한 User Store ID를 얻는 방법에 대한 안내는 서비스 간 인증을 위한 User Store ID 요청을 참고하세요.PC에서 사용 권한(entitlement)은 현재 타이틀을 플레이 중인 사용자가 아니라 Microsoft Store 앱에 로그인한 사용자와 연결됩니다. 계정이 서로 다를 수 있으므로 PC 타이틀은 PC에서 스토어 계정 불일치 시나리오 처리의 정보를 검토하는 것이 좋습니다.
Authorization 헤더에서 Microsoft Entra 액세스 토큰이 다음과 같이 사용됩니다.
개발자 관리형 소모품 제한 사항: User Store ID 및 Entra ID 인증은 샌드박스 환경의 대부분의 Microsoft Store API 호출에서 작동하지만, Consume API는 개발 샌드박스의 개발자 관리형 소모품에 대해 이 인증 방법을 지원하지 않습니다. 샌드박스에서 개발자 관리형 소모품을 소모하려면 대신 위임된 인증 XSTS 토큰을 사용하세요.
예:
- Microsoft.StoreServices (GitHub): 백엔드에서 Microsoft Store 서비스를 인증하고 호출하기 위한 라이브러리 및 소스입니다.
- Microsoft.StoreServices Sample (GitHub): 인증, 커머스 통합, 환불 조정 패턴을 시연하는 서비스 샘플입니다.
- 서비스 간 인증을 위한 User Store ID 요청
- User Store ID 키 갱신
- 서비스에서 제품 사용 권한 관리
Microsoft Store API 호출 다이어그램
다음 다이어그램은 서비스에서 User Store ID를 사용하여 Microsoft Store API를 호출하는 프로세스를 설명합니다.User Store ID 및 Microsoft Entra ID 인증으로 제품을 보고 관리하기 위한 추가 구성
Microsoft Entra ID 및 User Store ID를 사용하려면 Partner Center에서 게임의 Product collections and purchases 설정에 Microsoft Entra 애플리케이션의 클라이언트 ID를 추가하세요. Collections 및 Purchase 서비스를 통해 제품 및 추가 기능에 액세스하기 위해 최대 두 개의 클라이언트 ID를 구성할 수 있습니다. 제품이 Microsoft Entra 애플리케이션 클라이언트 ID에 제대로 연결되지 않은 경우 가장 흔한 증상은 Collections 호출이 성공하지만 결과에 항목이 없다는 것입니다.Microsoft Entra ID 및 User Store ID를 통해 서비스가 제품을 볼 수 있도록 구성
- 게임의 Partner Center 페이지에서 왼쪽 패널의 Product collections and purchases를 선택합니다.
- 서비스를 인증하는 데 사용 중인 Microsoft Entra 애플리케이션의 클라이언트 ID를 입력합니다.
- Save 버튼을 선택합니다.
- 샌드박스 또는 개발자 환경의 Microsoft Store에 게임 제품과 해당 제품의 모든 추가 기능을 다시 게시합니다.
위임된 인증 X-토큰으로 인증
위임된 인증 X-토큰을 사용하여 서비스 간 호출을 인증하려면 다음 형식으로Authorization 헤더를 요청에 추가합니다.
- Game Service Sample: 클라이언트의 X-토큰 유효성 검사 및 처리, 서버 간 인증, 커머스 서비스 등을 시연하는 포괄적인 웹 서비스 샘플입니다. 최신 버전은 GDK 다운로드 사이트에서 다운로드하세요. All Samples의 최신 릴리스를 다운로드합니다. Game Service Sample은 다운로드된 .zip 파일의 samples\Live\GameService 아래에 있습니다.
- Xfest 2019 - XSTS Auth and Server to Server made Easy: X-토큰의 개요 및 설명과 Game Service Sample이 자체 서비스 간 인증 노력을 시작하는 데 어떻게 도움이 될 수 있는지에 관한 내용입니다. 프레젠테이션 정보를 다운로드하려면 아카이브 사이트에서 GDK Track Downloads를 선택하세요.
- XBOX 서비스 인증 및 서비스 간 호출: 인증, X-토큰, XBOX 서비스에 대한 서비스 간 호출에 필요한 단계 및 호출에 대한 자세한 문서입니다.
위임된 인증 X-토큰으로 제품을 보고 관리하기 위한 추가 구성
X-토큰은 Partner Center 내의 Business Partner ID에 연결되어 있으므로, 제품을 동일한 Business Partner ID에 연결해야 합니다. 실질적으로 제품은 Dev Studio ID가 신뢰 당사자에서 사용하는 Business Partner ID와 일치하는 Product Group에 있어야 합니다. 제품이 올바른 Business Partner ID에 제대로 연결되지 않은 경우 가장 흔한 증상은 Collections 호출이 성공하지만 결과에 항목이 반환되지 않는다는 것입니다. 자세한 내용은 포럼 게시물 B2B call to Collections LicensePreview service returns empty results (Partner Center configured game)를 참고하세요.Partner Center에서 제품 및 웹 서비스를 구성하려면
- 웹 서비스의 Generate Certificate 링크를 사용하여 Business Partner Certificate를 만듭니다. (Developer Settings > XBOX Live > Web Services를 선택합니다.) 신뢰 당사자와 연결된 웹 서비스의 행에 있는 링크를 선택합니다.
- Business Partner 관리 UI로 이동하여(Developer Settings > XBOX Live > Business Partner 선택) 1단계에서 사용한 웹 서비스와 일치하는 Business Partner ID를 복사합니다. (Business Partner ID 예: 12345678-9012-3456-7890-123456789012)
- 제품의 Partner Center Overview 페이지에서 Create a new를 선택한 다음 Product group을 선택합니다.
- 이 제품 그룹을 Dev Studio에 할당하거나, 아직 없다면 Create a new developer studio를 선택합니다.
- 선택한 Dev Studio의 ID가 2단계의 Business Partner ID와 일치하는지 확인합니다. 비어 있는 경우 Business Partner ID를 Dev Studio ID (optional) 에 복사합니다. 이 필드에 이미 사용 중인 값이 있는 경우 기존의 서비스 간 제품 매핑이 손상되지 않도록 덮어쓰기보다는 새 Dev Studio를 만드세요.
- Dev Studio가 Business Partner의 일치하는 ID로 구성된 후 만든 Product Group으로 돌아갑니다. Included in this product group 목록에 게임과 모든 제품을 추가합니다.
- Save를 선택하여 제품 그룹 생성을 완료합니다.
- 게임의 XBOX Settings UI로 이동하여 연결된 Business Partner가 2단계에서 사용한 것과 동일한지 확인합니다.
- 제품 그룹의 모든 항목을 샌드박스 또는 개발자 환경의 Microsoft Store에 다시 게시합니다.
