如何在MSAL保护的Azure AD ASP.NET Core Web API配置RSA安全算法
ASP.NET Core 6 Web API 对接Azure AD 令牌签名问题处理
问题背景
- 已在Azure AD完成ASP.NET Core 6 Web API和Angular SPA的应用注册
- Angular SPA通过MSAL库调用
AcquireToken获取令牌,但令牌采用HMAC256签名,不符合API安全要求 - 遇到的困惑:
- 不清楚API的Startup.cs中需编写的认证配置代码
- 因令牌由MSAL生成而非自定义
CreateToken方法,不知道如何指定RSA签名算法 - 已有代码中使用了
AddAuthenticationScheme,不确定AddJwtBearer(及签名算法配置)的正确位置
解决步骤
- 在
AddAuthentication中明确指定默认认证方案 - 安装
Microsoft.Identity.WebNuGet包,用AddMicrosoftIdentityWebApi替代原生AddJwtBearer(该库专为Azure AD场景优化,无需手动配置签名算法等细节) - 清空控制器
[Authorize]特性的参数,依赖之前指定的默认认证方案即可完成授权校验 - 移除原有的
AddAzureAD配置(若之前使用过该方式绑定Azure AD),当前配置已解决签名错误问题,API与Azure AD同步正常
注意事项
Azure相关认证技术迭代周期约2-3年,无需纠结旧版配置,聚焦当前Azure AD的官方标准方案即可完成对接。
内容的提问来源于stack exchange,提问作者user1914725
相关产品推荐
相关产品推荐

