Azure OAuth多API端点原因及三类Token端点差异、Common端点疑问
Azure OAuth多API端点的原因及Token端点差异
为什么存在多个API端点?
Azure OAuth设置多个端点,核心是为了适配不同的身份验证场景、用户范围和安全需求。微软通过拆分端点,让开发者能根据应用的目标用户(个人/企业/特定租户)、资源访问范围,选择最匹配的验证路径,同时实现更精细的权限控制。
三个Token端点的差异
1. https://login.microsoftonline.com/common/oauth2/v2.0/token
- 用户范围:支持所有微软身份登录,包括个人Microsoft账户(如Outlook、Xbox)、任意租户的工作/学校账户
- 适用场景:面向广泛用户的公共应用(比如SaaS工具、跨平台客户端)
- 令牌特性:生成的令牌可访问允许跨租户的资源(如Microsoft Graph公共API)
2. https://login.microsoftonline.com/organizations/oauth2/v2.0/token
- 用户范围:仅允许工作/学校账户登录,直接拒绝个人Microsoft账户
- 适用场景:仅服务企业/教育用户的应用,排除个人用户群体
- 令牌特性:验证通过的用户来自任意企业租户,令牌权限适配对应租户的资源
3. https://login.microsoftonline.com/{Directory ID}/oauth2/v2.0/token
- 用户范围:仅允许指定租户(Directory ID对应的租户)内的账户登录,其他租户的工作/学校账户、个人账户均无法通过验证
- 适用场景:企业内部专属应用、仅服务单一租户的定制化系统
- 令牌特性:令牌权限严格限定在指定租户内,安全性更高,避免跨租户的权限泄露风险
使用common端点正常运行的细节确认
你使用common端点能正常生成令牌,说明:
- 你的Azure AD应用注册中,账户类型配置为"任何组织目录中的账户和个人Microsoft账户"(这是common端点兼容的必要条件)
- 请求的资源(如API受众
aud参数)支持跨租户访问,比如Microsoft Graph的公共接口 - 如果后续需要缩小用户范围(比如只允许企业用户或特定租户用户),只需修改应用注册的账户类型,并切换到对应的organizations或指定Directory ID的端点即可
内容的提问来源于stack exchange,提问作者maxisme
相关产品推荐
相关产品推荐

