【问题标题】:How to get client certificates through identity server 4?如何通过身份服务器 4 获取客户端证书?
【发布时间】:2018-01-24 19:34:04
【问题描述】:

我正在尝试通过 ASP.NET MVC 构建身份验证系统。我正在使用 Identity Server 4 进行身份验证。我已经通过 ResourceOwner 实现了用户 ID 和密码验证。
现在我正在尝试实现智能卡身份验证。当我尝试在调试模式下读取 X509Certificate2 时,我能够读取客户端证书,但是当我将应用程序部署到 IIS 时,我无法读取证书。
当请求从客户端 ASP.NET MVC 发送到 Identity Server 4 时,我想在 IIS 上托管的 Identity Server 上接受客户端证书。我的 Identity Server 4 项目类型是 .NET Framework 上的 .NET Core。

我已经试过了:

  1. 在 IIS 上安装了授权的 SSL 证书
  2. 使用有效端口号向我的身份服务器 4 应用程序池添加了 HTTPS 绑定。
  3. 为身份服务器站点启用 SSL 并设置为接受客户端证书。

【问题讨论】:

  • 在 IIS 上运行时,您让 IIS 扮演反向代理的角色,而 Idsrv4 则在它后面运行在 kestrel 中。 HTTPS 在 IIS 处终止,因此您无法找到连接的证书。
  • 我曾尝试通过红隼获得证书,是的,我无法获得。
  • 当我写下面的代码时,它在调试模式下对我有用,但在 IIS X509Store store = new X509Store(StoreName.Root); store.Open(OpenFlags.ReadOnly); 上托管时不起作用现在如果我检查 store.Certificates,我可以在调试模式下获取证书列表但无法在 IIS 上获取它。

标签: asp.net-mvc certificate smartcard identityserver4


【解决方案1】:

我在 Identity Server 4 中获得了客户端证书,如下所示,但它没有私钥: var clientX509Certificate = new X509Certificate2(this.HttpContext.Connection.ClientCertificate);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多