Azure APIM开发者门户登录后自动注入Authorization Header需求咨询
实现Azure API Management开发者门户自动注入B2C令牌到API请求头
我们已经完成API集成到APIM、Azure AD B2C身份认证部署的基础配置,现在要优化流程,让开发者登录门户后调用API时无需手动添加Authorization请求头,直接自动注入登录时获取的令牌,具体操作如下:
核心思路
借助APIM开发者门户的内置功能,结合Azure AD B2C的会话令牌机制,将登录时获取的访问令牌自动挂载到API请求的Header中。
具体操作步骤
- 第一步:确认门户B2C配置有效性
先验证开发者门户已正确关联目标B2C租户,登录/注册用户流可正常运行,用户登录后能获取到有效的访问令牌(注意是访问令牌而非ID令牌,访问令牌用于API授权,ID令牌仅做身份验证)。 - 第二步:为APIM中的API配置JWT验证策略
找到目标API,添加验证JWT策略,填入B2C的元数据端点地址:
确保API仅接受合法的B2C令牌。https://<你的B2C租户名>.b2clogin.com/<你的B2C租户名>.onmicrosoft.com/<你的用户流名称>/v2.0/.well-known/openid-configuration - 第三步:开启动态令牌注入功能
- 进入APIM的开发者门户管理后台,找到API测试控制台的设置选项
- 开启「自动携带登录令牌」开关,令牌类型选择
Bearer,指定调用B2C登录会话中的访问令牌 - 保存配置后,登录开发者门户测试:进入API测试控制台发起请求,即可看到请求头自动添加
Authorization: Bearer <你的B2C访问令牌>
- 第四步:验证自动注入效果
登录后发起任意API请求,检查请求头是否自动包含Authorization字段,同时确认API能正常响应,以此验证令牌验证通过。
注意事项
- B2C用户流中必须配置目标API的授权范围,否则获取的令牌无API访问权限,会被API拒绝请求
- 若开发者门户为自定义版本,需在前端代码中通过MSAL.js的
getTokenSilent方法从会话中提取令牌,再自动注入到请求头里
内容的提问来源于stack exchange,提问作者Shakti Singh
相关产品推荐
相关产品推荐

