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 的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何从 X509Store 加载受密码保护的证书?

Apache HttpClient 4.3 和 x509 客户端证书进行身份验证

如何配置 WCF 以通过 Internet 使用 x509 证书?

用于身份验证的 Grails Spring Security X509 和用于权限的 LDAP

如何使用 WCF 签署 X509 令牌

Grails 中基于 RESTful 证书的 (X509) 登录身份验证