WCF WsHttpBinding Certificate Transport Security - Windows C



我有两个使用 WsHttpBinding 的 WCF 服务,它们与传输安全相互证书身份验证托管在同一台 Windows 服务器上。 可以访问一个 WCF 服务的客户端不应有权访问另一个 WCF 服务。 我需要有关在 Windows 主机上配置客户端证书的一些帮助。 客户端证书由受信任的 CA 签名,并且中间证书链和根证书链已安装在服务器上。 似乎该服务自动依赖于信任链,并且在让客户端访问服务之前根本不需要在服务器上安装实际的客户端证书 - 这不是我想要的行为。 有人可以告诉我应该如何配置这些客户端证书,以便明确允许访问一项服务而不是另一项服务吗?

谢谢。

这与证书本身无关。使用相互 SSL 身份验证时,证书仅用于对客户端进行身份验证,并且身份验证是在应用程序外部完成的(这与消息安全性不同,您可以在其中创建自定义证书验证程序(。一旦证书受信任,客户端就会使用证书自动对服务器上的任何内容进行身份验证。

您正在寻找授权 - 定义经过身份验证的客户端可以对服务执行的操作的步骤。您可以使用基于角色的安全性将授权逻辑硬编码到服务中,也可以实现两个自定义ServiceAuthorizationManager并将每个自定义分配给单个服务。

最新更新