情景:
我在Intranet上的服务器上托管了WCF服务。它暴露了一种方法。
我在同一个内部网上有超过10万个Windows客户端。
在每个客户端上运行的是一个在WCF服务上调用单个方法的应用程序。
但是,我只希望来自该应用程序的调用能够进行该调用。在同一用户帐户下的客户端上运行的任何其他客户端应用程序都不能调用该方法。
问题:
我们如何实现这种安全性?共享秘密(无论如何可能通过反向编译可以发现)是唯一的方法吗?
答案 0 :(得分:0)
看看这个:http://msdn.microsoft.com/en-us/library/aa354513.aspx 此示例使用用户名/密码身份验证,您可以在客户端应用程序设置中轻松配置,并通过调用传递它们。或者您可以使用在一段时间后过期的令牌身份验证。
答案 1 :(得分:0)
应用程序标识通常基于某些客户机密钥。但是,如果攻击者应用程序使用与授权应用程序相同的凭据运行,则很难阻止攻击者应用程序调用您的服务。如何防止攻击者应用程序获取秘密?
如果您可以在任何帐户下运行授权的应用程序,则可以查看grouped managed service accounts。在这种情况下,帐户(和密码)由Windows管理。然后,您可以使用证书身份验证,并仅向托管帐户授予对私钥的读取权限。
分组托管服务帐户确实要求您的域控制器在Windows 2012 R2上运行。