x509 证书和身份服务器 v2 的问题
Posted
技术标签:
【中文标题】x509 证书和身份服务器 v2 的问题【英文标题】:Issues with x509 certificate and identityserver v2 【发布时间】:2018-12-02 11:01:56 【问题描述】:我知道身份服务器 v2 已被弃用,但我正在尝试解决生产问题。我们在服务器上安装了新证书,并更新了 web.config 文件中的指纹,但出现以下错误。我查看了 sdf 文件,但没有找到任何内容。我也试图让跟踪工作,但我似乎无法生成日志文件(我希望它可以告诉我故障是什么)有什么想法吗?
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add value="https://website.com" />
</audienceUris>
<certificateValidation certificateValidationMode="None" />
<issuerNameRegistry type="System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry">
<authority name="http://identityserver.v2.thinktecture.com/samples">
<keys>
<add thumbprint="thecertificatethumbprint" />
</keys>
<validIssuers>
<add name="http://identityserver.v2.thinktecture.com/samples" />
</validIssuers>
</authority>
</issuerNameRegistry>
</identityConfiguration>
</system.identityModel>
<system.identityModel.services>
“/”应用程序中的服务器错误。 WIF10201:未找到 securityToken 的有效密钥映射: 'System.IdentityModel.Tokens.X509SecurityToken' 和颁发者: 说明:在执行当前 Web 请求期间发生 > 未处理的异常。 > 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.IdentityModel.Tokens.SecurityTokenValidationException:> WIF10201:未找到 securityToken:“System.IdentityModel.Tokens.X509SecurityToken”和颁发者:“http://identityserver.v2.thinktecture.com/samples”的有效密钥映射。
来源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:
[SecurityTokenValidationException:WIF10201:未找到 securityToken:'System.IdentityModel.Tokens.X509SecurityToken' 和颁发者:'http://identityserver.v2.thinktecture.com/samples'的有效密钥映射。] System.IdentityModel.Tokens.Saml2SecurityTokenHandler.ValidateToken(SecurityToken token) +1333 System.IdentityModel.Services.TokenReceiver.AuthenticateToken(SecurityToken token, Boolean ensureBearerToken, String endpointUri) +137 System.IdentityModel.Services.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequestBase 请求)+665 System.IdentityModel.Services.WSFederationAuthenticationModule.OnAuthenticateRequest(对象发送者,EventArgs args)+467 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +139 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep 步骤) +197 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +8
【问题讨论】:
【参考方案1】:我最近在迁移到新服务器时遇到了这个问题。 至少对我来说,这与应用程序池的身份相关,无法读取证书的私钥。 这可以通过证书 mmc 视图进行管理。
【讨论】:
【参考方案2】:我最终使用了旧指纹并开始工作。
【讨论】:
以上是关于x509 证书和身份服务器 v2 的问题的主要内容,如果未能解决你的问题,请参考以下文章
Apache HttpClient 4.3 和 x509 客户端证书进行身份验证
如何配置 WCF 以通过 Internet 使用 x509 证书?