使用MS Graph API验证企业邮箱后缀是否为有效Microsoft 365账户
验证Microsoft 365域名有效性并启用SSO的解决方案
一、验证邮箱后缀对应的M365域名
1. 使用Microsoft Graph API查询域名
如果你的应用能获取目标租户的授权(比如用户允许你的应用访问其租户数据),可以调用Graph API的域名查询端点:
GET https://graph.microsoft.com/v1.0/domains/{domain-name}
- 若返回
200 OK及域名详情,说明该后缀已在M365租户中注册; - 若返回
404 Not Found,则该域名未关联任何M365租户。
所需权限:Domain.Read.All(支持应用权限或委派权限)
2. 通过租户发现端点快速验证
如果仅需确认域名是否绑定M365(无需访问租户内部数据),可以调用Azure AD的OpenID发现端点:
GET https://login.microsoftonline.com/{domain-name}/v2.0/.well-known/openid-configuration
- 若返回包含
authorization_endpoint、issuer等字段的有效JSON,说明域名已关联M365租户; - 若返回租户不存在的错误(如
AADSTS90002),则该域名未注册M365。
二、为验证通过的用户启用SSO
确认域名有效后,按以下步骤配置SSO:
- 在Azure AD中注册你的应用,选择OpenID Connect或SAML 2.0作为认证协议;
- 提取目标租户ID:从上述发现端点的
issuer字段中提取(格式为https://login.microsoftonline.com/{tenant-id}/v2.0); - 构造授权URL引导用户登录:
https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/authorize? client_id=你的应用ID &response_type=code &redirect_uri=你的回调地址 &scope=openid%20profile%20email &state=随机状态值 - 在应用的回调接口中处理授权码,获取ID令牌和访问令牌,完成认证后启用用户的SSO会话。
内容的提问来源于stack exchange,提问作者Harsh Kanakhara
相关产品推荐
相关产品推荐

