请建议我在下面提到的场景中实现的最佳身份验证方式:
要求是我必须在全球多个国家/地区部署 WCF Web 服务。
注意:部署服务的所有机器都在同一个域中。
1.访问该服务的客户端应该属于同一个域,否则身份验证应该失败。
目前我正在使用“Windows”使用消息安全模式
请建议我在下面提到的场景中实现的最佳身份验证方式:
要求是我必须在全球多个国家/地区部署 WCF Web 服务。
注意:部署服务的所有机器都在同一个域中。
1.访问该服务的客户端应该属于同一个域,否则身份验证应该失败。
目前我正在使用“Windows”使用消息安全模式
我很好奇如果需要将域部署在世界各地的不同国家,为什么您会希望域相同。除非您正在谈论将服务托管在未公开公开的内部网络上,否则执行相同的域名可能会很困难。不同的国家有不同的域名标准。美国有更丰富的域根可供选择。其他国家通常有一个国家特定的根,可能有一个区域子根。
我不会将您的服务与托管它的域耦合,也不建议将域用作身份验证的一个因素。如果您的服务需要在这些国家/地区的 Internet 上公开公开,我建议您使用 Windows 安全以外的其他东西。基于声明的安全机制可能效果最好。在服务实现内部,可以检查声明,如有必要,可以将 Windows 身份与 WCF 身份验证分开进行身份验证。声明还允许您使用不仅仅是用户名/密码或证书来完全验证和授权客户端请求。您可以要求将调用方的域、国家、地区和其他证据包含在索赔中,
由于您在 Intranet 上运行并假设您的 Windows 应用程序将直接连接到该服务,因此我将使用 Windows 身份验证使用传输安全性。
有关一些指导,请参阅改进 Web 服务安全指南的模式和实践。
我仍然怀疑您是否需要授权。如果您在没有任何授权的情况下使用 Windows 身份验证,它将简化您的服务,但将允许任何域用户访问您的服务,无论他们是否使用 Windows 应用程序。当然,他们必须了解端点和消息结构,但他们仍然可以这样做。
如果真的只需要 Windows 身份验证,我仍然会提出授权问题并记录它(如果适用,请签字)。一方面,这涵盖了您,但也使人们明确意识到决策和可能的风险。