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

微软Live OAuth登录端点选择及用户信息获取作用域咨询

我来帮你理清这两个问题,都是集成Microsoft OAuth认证时很容易踩的坑:

登录端点选择:login.live.com vs login.microsoftonline.com

简单说,两者对应微软不同的认证体系:

  • login.live.com 是旧版Live Connect的端点,仅支持个人Microsoft账户(比如Outlook.com、Xbox账户),现在已经逐步被新的认证体系取代。
  • login.microsoftonline.com 是Azure AD的认证端点,尤其是它的v2.0版本(路径带/oauth2/v2.0/),支持所有类型的账户:个人Microsoft账户、工作/学校账户,也是微软目前主推的认证方案。

如果你希望你的Web应用能兼容更多用户类型,或者想使用最新的Microsoft Graph API,强烈推荐使用 login.microsoftonline.com 的v2.0端点。

获取用户资料的正确作用域

你之前用的wl.basic是旧版Live Connect API的作用域,现在已经被废弃了,所以不管搭配哪个端点都会报错。现在要获取用户的邮箱、名、姓,需要用OpenID Connect标准作用域 + Microsoft Graph相关的权限:

  • openid:必须包含,开启OpenID Connect认证流程,这样才能获取到包含用户身份信息的ID令牌
  • profile:用于获取用户的基本资料,包括名(givenName)、姓(surname)、显示名称(displayName)等
  • email:用于获取用户的邮箱地址
  • offline_access:可选,如果你需要长期访问权限,可以获取刷新令牌

注意:这些作用域必须搭配login.microsoftonline.com的v2.0端点使用,旧的login.live.com不支持这些标准OIDC作用域。

举个例子,你的授权请求里的作用域参数应该是:

scope=openid profile email offline_access

拿到有效访问令牌后,调用Microsoft Graph的GET /v1.0/me接口,就能获取到你需要的用户资料字段,比如givenName(名)、surname(姓)、mail(邮箱)等。

你之前遇到的openid、profile等作用域不被识别或忽略的问题,大概率是因为用错了端点——比如用了login.live.com而不是v2.0的Azure AD端点,或者端点路径不正确。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:07:08