跳轉到主要內容
有各種案例需要建置網站或 Web 應用程式,讓使用者可以使用其 Microsoft 帳戶 (以前稱為其 XBOX 服務帳戶) 進行驗證。此驗證允許存取 (通常是唯讀) 使用者的 XBOX 服務資料,例如排行榜、統計資料、遊戲短片和個人檔案。 若要啟用使用者的驗證,網站或 Web 應用程式必須先向 Microsoft 註冊,以取得用於 Microsoft 帳戶驗證的身分識別。這是一次性的佈建步驟。在執行階段,網站會先允許使用者使用 Microsoft 帳戶進行驗證,這會提供認證,之後可以將這些認證交換為 XBOX 服務存取權杖。 接著可以使用 XBOX 服務存取權杖來擷取用於帳戶連結的資訊,以及代表使用者存取 XBOX 服務。下一節將更詳細地概述這些驗證流程。

驗證概觀

為使用者啟用驗證並取得存取 XBOX 服務資料之授權的程序包含三個步驟。第一個步驟是一次性的佈建步驟: 網站註冊
  • 網站或 Web 應用程式會取得佈建的身分識別,以搭配 Microsoft 帳戶使用。
  • 此註冊會在發行者的 Microsoft Entra ID 中進行。
完成此步驟之後,您可以開發您的網站或 Web 應用程式,並在執行階段執行下列步驟,以接收 XBOX 玩家授權和驗證: 使用者向 Microsoft 帳戶進行驗證
  1. 使用者存取網站或啟動應用程式。
  2. 使用者會被重新導向,以透過 OAuth2.0 端點登入其 Microsoft 帳戶。
  3. 使用者成功輸入其認證,並同意網站或應用程式代表其存取 XBOX 服務資訊。
  4. 網站或應用程式會收到授權碼。
  5. 網站或應用程式利用授權碼並要求正確的範圍,以要求存取權杖。
  6. 網站或應用程式收到存取權杖 (以及重新整理權杖,如果有要求的話)。
使用者向 XBOX 服務進行驗證
  1. 網站或應用程式使用存取權杖要求 XBOX 服務使用者權杖 (U 權杖)。
  2. 接著會使用使用者權杖從 XBOX 安全性權杖服務 (XSTS) 取得 X 權杖 (存取權杖),以存取 XBOX 服務或遊戲服務。

網站註冊

若要能夠使用 Microsoft 帳戶向網站驗證使用者,必須先透過 Microsoft Entra ID 應用程式註冊介面註冊網站或應用程式。
  1. 使用有權在 Microsoft Entra ID 中註冊應用程式的帳戶登入 Azure 入口網站
  2. 選取 “App Registration”
  3. 選取 ”+ New Registration”
    • 輸入此應用程式的名稱
    • 針對 “Supported account types”,選取 “Personal Microsoft accounts only”
    • 輸入您希望驗證流程在驗證成功後將使用者重新導向的重新導向 URL。請記下此值,因為您稍後會需要它。 您也可以稍後新增其他 URI
    • 完成應用程式註冊
  4. 記下應用程式 (用戶端) 識別碼和目錄 (租用戶) 識別碼
  5. 選取 Certificates & Secrets
    • 選取 ”+ New Client Secret”
    • 輸入描述
    • 選取到期範圍
    • 按一下 Add
    • 記下建立的用戶端祕密值,因為您稍後會需要它。此值只應在您的服務上使用並安全地儲存。

整合

使用註冊程序期間建立的識別碼實作上述流程,並實作下列項目:
  1. 透過要求授權碼開始 OAuth2.0 流程:
    • 將使用者導覽至 https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize?client_id=[Application (client) ID from Registration]&response_type=code&redirect_uri=[RedirectUI given during registration]&scope=xboxlive.signin&xboxlive.offline_access 在此範例中,我們要求登入權杖和離線權杖的存取權,離線權杖可用於在存取權杖到期後重新整理存取權杖。這也會向使用者顯示正確的帳戶隱私權和活動通知。
    • 使用者完成登入其 Microsoft 帳戶之後,會被重新導向至提供的重新導向 URI,並附加 "code=",後面接著授權碼。
    • 使用 xboxlive.offline_access 範圍是選擇性的,只有在需要於原始登入權杖到期後進行呼叫的案例才需要。此要求不能使用其他額外的範圍。
  2. 使用授權碼和在應用程式註冊程序期間產生的用戶端祕密兌換 Microsoft 帳戶存取權杖:
    • 建立具有下列屬性的 POST Web 要求: URL:https://login.microsoftonline.com/consumers/oauth2/v2.0/token 標頭:Content-Type: application/x-www-form-urlencoded 本文:
  • 來自服務的回應會包含具有下列資訊的 JSON 回應: Token Type:Bearer Scope:XboxLive.signin XboxLive.offline_access Expires_in:Value Access_token:[token value] 這是您的存取權杖,您將用它與 XBOX 服務交換 XBOX 使用者權杖。
  1. 您可以呼叫 XBOX 驗證端點來要求 XBOX 使用者權杖,並完成下列要求,將您的 Microsoft 帳戶存取權杖交換為 XBOX 使用者權杖:
    • 建立具有下列屬性的 POST Web 要求: URL:https://user.auth.xboxlive.com/user/authenticate 標頭:x-xbl-contract-version: 1 標頭:content-type: application/json 本文:包含下列資料的格式正確 JSON 承載:
  • 來自服務的回應會包含 JSON 承載,其中包含下列資訊 (包括 XBOX 使用者權杖)。您在下一個步驟中會需要 XBOX 使用者權杖:
  1. 接著,您可以將使用者權杖交換為 X 權杖。如果您想要代表使用者執行服務對服務呼叫,並且需要 DelegationToken 宣告或使用者的 XUID,可以為您自己的信賴憑證者要求 X 權杖,然後像平常一樣處理該權杖以擷取所需的宣告。
最後修改於 2026年10月8日