You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure应用目录登录中添加XboxLive.signin范围并获取Xbox Gamertag?

获取Xbox Gamertag的解决方案(Azure AD登录场景)

一、解决Azure应用配置中看不到Xbox权限的问题

Xbox Live相关权限属于Microsoft Graph委托权限,需按以下步骤添加:

  1. 登录Azure门户,进入你的应用注册页面
  2. 切换到「API权限」选项卡,点击「添加权限」
  3. 选择「Microsoft Graph」,再选择「委托权限」
  4. 在搜索框输入XboxLive.signin,勾选该权限后点击「添加权限」
  5. 若应用面向组织账户,需点击「授予管理员同意」;若仅面向个人Microsoft账户,用户授权时会自动触发权限确认

二、修复AADSTS70011错误

报错原因是授权请求的scope参数格式错误,需注意:

  • scope必须是空格分隔的字符串,而非数组格式
  • 正确的scope示例:user.read offline_access openid XboxLive.signin

授权请求URL示例

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=你的客户端ID
&response_type=code
&redirect_uri=你的重定向URI
&scope=user.read offline_access openid XboxLive.signin
&response_mode=query

若使用SDK(如MSAL),需将权限数组转换为空格分隔的字符串传递,比如在JavaScript中:

const scopes = ['user.read', 'offline_access', 'openid', 'XboxLive.signin'].join(' ');

三、获取Gamertag的具体步骤

Microsoft Graph不会直接返回Gamertag,需通过Xbox Live API获取:

  1. 获取Xbox XSTS令牌与用户哈希
    使用带有XboxLive.signin权限的access_token调用Xbox身份验证接口:

    POST https://user.auth.xboxlive.com/user/authenticate
    Content-Type: application/json
    
    {
      "Properties": {
        "AuthMethod": "RPS",
        "SiteName": "user.auth.xboxlive.com",
        "RpsTicket": "d=你的Access_Token"
      },
      "RelyingParty": "http://xboxlive.com",
      "TokenType": "JWT"
    }
    

    响应中会包含Token(XSTS令牌)和DisplayClaims.xui[0].uhs(用户哈希)

  2. 调用Xbox Profile API获取Gamertag
    使用上一步的结果请求用户配置:

    GET https://profile.xboxlive.com/users/me/profile/settings?settings=Gamertag
    Authorization: XBL3.0 x=用户哈希;XSTS令牌
    

    响应中settings[0].value字段即为Gamertag

四、注意事项

  • 确保应用注册的账户类型支持个人Microsoft账户(选择「任何组织目录中的账户和个人Microsoft账户」或「仅个人Microsoft账户」)
  • 若用户没有关联的Xbox账户,Xbox Live API会返回对应错误,需提前处理这种情况

内容的提问来源于stack exchange,提问作者Harshil shrivastava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 23:12:31