已配置Azure AD SSO,如何获取登录成功后的身份验证结果?
获取Azure AD SSO身份验证结果的步骤
1. 确认应用的身份验证模式
先明确你的应用是用哪种方式集成Azure AD SSO的,常见的有OAuth 2.0/OpenID Connect(现代应用首选)、SAML 2.0。不同模式获取验证结果的方式不同,优先推荐OAuth 2.0/OpenID Connect,它能直接返回可复用的令牌。
2. OAuth 2.0/OpenID Connect场景:获取并解析令牌
登录成功后,Azure AD会返回两种核心令牌:
- ID Token:JWT格式,包含用户身份信息(邮箱、姓名、用户ID等),可直接解析后提取数据传给其他系统。
- Access Token:用于调用Azure AD保护的API,若其他系统需访问Azure服务,可传递此令牌做授权。
具体操作:
- 登录流程完成后,应用会从Azure AD的回调地址获取令牌(授权码流中需先拿授权码,再兑换成ID Token和Access Token)。
- 用对应语言的JWT库解析令牌,比如后端用
System.IdentityModel.Tokens.Jwt(.NET)、pyjwt(Python),前端用jwt-decode。示例解码后的ID Token结构:
{ "sub": "用户唯一ID", "email": "user@example.com", "name": "用户名", "iss": "https://login.microsoftonline.com/租户ID/v2.0", "exp": 过期时间戳 }
3. SAML 2.0场景:解析SAML断言
若应用用SAML配置SSO,登录成功后Azure AD会返回XML格式的SAML断言,里面包含用户身份属性。
- 用对应语言的SAML库解析断言,比如.NET的
System.IdentityModel.Tokens.Saml、Java的OpenSAML,提取NameID(通常对应邮箱)及自定义属性。
4. 传递验证结果给其他系统
拿到身份数据后,可按以下方式传递:
- 直接将关键信息(邮箱、用户ID等)以API参数形式传给其他系统,供对方做身份校验。
- 若其他系统支持Azure AD验证,可传递Access Token,让其调用Azure AD的令牌验证接口确认有效性。
- 注意:传递时必须用HTTPS加密;Access Token有过期时间,需用Refresh Token处理刷新逻辑。
5. 新手注意事项
- 登录Azure AD门户的应用注册页面,确认应用的身份验证配置:回调地址正确、令牌颁发权限已开启。
- 用Azure AD的测试用户登录测试,查看返回的令牌内容,确认信息准确。
- 不要将原始令牌明文传给不信任的系统,优先传递解析后的必要字段,或让对方自行验证令牌有效性。
内容的提问来源于stack exchange,提问作者npatil
相关产品推荐
相关产品推荐

