对某些请求的客户端证书身份验证

时间:2020-07-17 06:57:12

标签: c# asp.net-core https

this question和我得到的答案之后,我决定遵循客户端证书的方法。但是,我实际上只需要对某些请求强制执行安全性,Microsoft's documentation证实了纯SSL身份验证是无法期望的。

这就是我需要的:

  • 我的服务器(ASP.NET Core)公开了HTTP端点;
  • 其中一些是公开的,任何人都可以使用,一些是私有的;
  • 仅允许封闭的已知客户端列表使用私有端点。

是否可以从客户端请求客户端证书,但是也可以

  • 如果请求是针对公共端点的,则忽略它们
  • 如果请求是针对私有端点的,请检查证书是否在列表中?

1 个答案:

答案 0 :(得分:0)

您可以将客户端证书设置为在IIS的SSL设置中接受

IIS Screenshot -> SSL Settings -> Client Certificates

如果接受,则接受将获得证书,但是如果客户端不提供证书,则将继续进行连接。

您可以使用当前的身份验证和授权来检查用户是否已映射到当前的请求以继续使用私有API