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

Angular应用Azure AD SSO后端令牌管理的API调用流程咨询

Angular应用Azure AD SSO(后端令牌管理)实现指南

整体SSO调用序列

  • 前端触发登录:Angular应用跳转至构造好的Azure AD授权码URL
  • 用户完成身份验证:Azure AD重定向至后端回调地址,携带授权码
  • 后端兑换令牌:用授权码调用Azure AD令牌端点,获取Access Token/ID Token
  • 后端关联会话:将令牌与已实现的指纹会话对象绑定,返回会话标识给前端
  • 前端后续请求:每次调用业务接口时携带会话标识,后端验证后用令牌调用Azure AD保护的API

构造授权码URL

基于你已有的OAuth 2.0授权端点(v2),拼接以下参数(注意替换占位符):

https://<你的OAuth 2.0授权端点(v2)>?
client_id=<你的Client ID>
&response_type=code
&redirect_uri=<后端回调地址,需提前在Azure AD门户配置>
&response_mode=query
&scope=openid profile offline_access <你需要的API权限>
&state=<随机字符串,用于防CSRF,可关联前端指纹会话标识>
&code_challenge=<PKCE随机码的SHA256哈希,后端生成并存储对应的code_verifier>
&code_challenge_method=S256

注意:redirect_uri必须指向后端接口,不能是前端地址;PKCE是强制要求的,用于避免授权码泄露风险。

后端兑换令牌的API调用

使用你已有的OAuth 2.0令牌端点(v2),发起POST请求,具体如下:

请求参数(采用x-www-form-urlencoded格式)

client_id=<你的Client ID>
&client_secret=<你的Client Secret>
&grant_type=authorization_code
&code=<Azure AD回调传来的授权码>
&redirect_uri=<和授权URL中一致的后端回调地址>
&code_verifier=<之前生成的PKCE原始随机码>

响应处理

成功请求后会返回包含access_token、id_token、refresh_token的响应,后端需完成:

  • 验证ID Token的签名、受众、有效期等(公钥可从OpenID Connect元数据文档获取)
  • 将令牌与指纹会话对象绑定存储(比如存入Redis,键为指纹会话ID)
  • 向前端返回会话标识,后续前端请求业务接口时携带该标识
  • 定期用refresh_token刷新access_token,避免用户重复登录

额外注意事项

  • 后端回调地址必须在Azure AD应用注册的「重定向URI」中配置,类型选择「Web」
  • 必须将offline_access加入scope,才能获取refresh_token实现令牌刷新
  • 指纹会话服务需确保会话的唯一性和安全性,防范会话劫持风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 07:59:51