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

已部署API出现426(InvalidRequest)错误,求微软认证相关解决方案

解决Azure AD认证API出现426(InvalidRequest)错误的方案

问题描述

我方API此前运行正常,但自2023年5月31日起出现**426(InvalidRequest)**状态码错误,报错堆栈信息如下:

[HttpRequestException: Response status code does not indicate success:426 (InvalidRequest).]
System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode() +210
Microsoft.Owin.Security.ActiveDirectory.WsFedMetadataRetriever.GetSigningKeys(String metadataEndpoint, TimeSpan backchannelTimeout, HttpMessageHandler backchannelHttpHandler) +160
Microsoft.Owin.Security.ActiveDirectory.WsFedCachingSecurityTokenProvider.RetrieveMetadata() +423
Microsoft.Owin.Security.ActiveDirectory.WsFedCachingSecurityTokenProvider..ctor(String metadataEndpoint, ICertificateValidator backchannelCertificateValidator, TimeSpan backchannelTimeout, HttpMessageHandler backchannelHttpHandler) +361
Owin.WindowsAzureActiveDirectoryBearerAuthenticationExtensions.UseWindowsAzureActiveDirectoryBearerAuthentication(IAppBuilder app, WindowsAzureActiveDirectoryBearerAuthenticationOptions options) +163
Startup.ConfigureAuth(IAppBuilder app) in C:\Code\Release\API\App_Start\Startup.Auth.cs:13
API.Startup.Configuration(IAppBuilder app) in C:\Code\Release\API\Startup.cs:9

该错误大概率与微软Azure AD(现Microsoft Entra ID)认证层面的变更有关,以下是针对性调整方案:

调整步骤

1. 强制启用TLS 1.2协议

微软在2023年完成了对TLS 1.0/1.1的淘汰,AD元数据端点已不再支持旧版TLS协议。若API依赖的库默认使用旧版协议,会导致请求被拒绝返回426错误。

在Startup.cs的Configuration方法开头添加如下代码,强制设置TLS版本:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

2. 更新元数据端点URL

旧版的AD WS-Federation元数据端点https://login.windows.net/{tenantId}/federationmetadata/2007-06/federationmetadata.xml已被逐步弃用,需切换到新版Microsoft Entra ID端点:

https://login.microsoftonline.com/{tenantId}/federationmetadata/2007-06/federationmetadata.xml

在Startup.Auth.cs中找到WindowsAzureActiveDirectoryBearerAuthenticationOptions的配置,更新MetadataAddress属性为上述新地址。

3. 升级相关依赖库版本

旧版Microsoft.Owin.Security.ActiveDirectory库可能不兼容微软最新的认证规则,需升级以下NuGet包至最新稳定版:

  • Microsoft.Owin.Security.ActiveDirectory
  • Owin
  • Microsoft.Owin及其他相关依赖包

4. 调整证书验证策略(排查用)

若元数据端点的SSL证书更新,旧版库的证书验证逻辑可能无法适配。可临时调整验证策略排查问题(生产环境建议保持严格验证):
在认证选项配置中添加证书验证器:

options.BackchannelCertificateValidator = new Microsoft.IdentityModel.Tokens.X509CertificateValidatorChain();
// 临时禁用验证(仅排查用,生产不推荐)
// options.BackchannelCertificateValidator = ICertificateValidator.None;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 13:22:36