我必须实现可由已知客户端使用的公共WCF服务。我还想使用自定义标识(而不是Windows身份验证)对客户端进行身份验证。
我已经使用自定义用户名和密码探索了WCF安全性以进行身份验证。由于我必须为Hetrogenious网络实施解决方案,我不能使用Windows身份验证。
我找到了两种方法可以将自定义身份验证合并到WCF中。我对以下每种方法的查询都很少。
1)通过“UserNamePasswordValidator”类。我们可以创建自定义用户名密码验证器并从数据库验证用户。这种方法完全可以实现SSO(单点登录),因为每个请求都有SOAP头中的凭据。客户无需在每次请求之前验证自己。
问题:
2)通过“ServiceAuthenticationManager”类。我只知道使用此类的一种方法,即使用直接认证模式实现解决方案。在验证用户之后,我们需要通过自定义标头提供它的身份或令牌,以便为服务实现SSO(单点登录)的所有后续请求
问题:
我个人认为第一种方法易于实现,它是在WCF服务中实现身份验证的更标准方法,但唯一的问题是我们需要第三方证书。
请回答我的问题,如果可能,请提出符合我要求的最佳方法。
谢谢,
ANKUR