Blazor Server AAD认证下signin-oidc与aad/callback回调路径差异原因
两种重定向路径的差异原因
你观察到的两种回调地址是两套完全独立的认证体系触发的:
- 重定向到
*/signin-oidc:是应用代码层面的Microsoft Identity Web中间件在处理认证逻辑,这是你当前ConfigureServices中配置的默认行为,回调路径是OpenID Connect中间件的默认预设值,出现这个表现说明你部署的Azure App Service没有开启平台内置的认证功能。 - 重定向到
*/.auth/login/aad/callback:是Azure App Service平台内置的*Easy Auth(简易认证)*功能被开启后触发的,开启该功能后,Azure的前端代理层会优先拦截所有未认证请求,走平台层面的AAD认证流程,回调地址是平台预设值,和应用代码的配置无关。
多次重建站点后行为不一致的原因
你每次重新创建部署站点时,是否开启App Service的内置认证开关是不确定的,才会出现两种不同的表现:如果创建站点时在Azure门户或者VS发布向导里勾选了「启用身份验证」相关选项,就会自动打开Easy Auth,触发第二种回调;如果未勾选就会走代码里的配置,触发第一种回调。
处理建议
两套认证体系不要同时启用,避免逻辑冲突:
- 如果你希望完全由代码控制认证逻辑(即用你当前贴出的Microsoft Identity配置),直接进入对应Azure App Service的「身份验证」管理页,关闭内置认证功能即可,后续回调会统一走
/signin-oidc。 - 如果你希望用Azure平台层面的Easy Auth能力,就删掉代码里
AddAuthentication开头的所有认证相关配置,所有认证逻辑由平台接管即可。
内容的提问来源于stack exchange,提问作者Rob Bowman
相关产品推荐
相关产品推荐

