WCF中的自定义双因素身份验证

时间:2011-11-30 11:41:56

标签: .net wcf wcf-security authentication two-factor-authentication

是否可以在WCF中实施双因素(或多因素)自定义身份验证? 例如,我想使用两种不同的凭证类型对客户端进行身份验证:

1)用户输入登录名和密码

2)WCF服务验证登录名+密码

3)如果上一步成功,服务器返回秘密查询(或OTP密码编号)

4)用户输入收到的查询的答案并将其发送到服务器

5)如果答案是正确的 - 用户在服务器上进行身份验证。他可以执行服务器方法。

经过身份验证的用户具有安全令牌。在下一个服务器上,调用客户端仅发送没有显式凭据的服务器安全令牌。

我在msdn - http://msdn.microsoft.com/en-us/library/ms788756.aspx

上找到了一个关于它的引用
  

在.NET Framework 3.5中,客户端消息可以包含多个令牌   给定类型,以及不同类型的令牌。

     

此功能支持多种方案,包括:

     

增量声明发送。服务上的所有操作可能都需要   一系列声明存在,但某些操作可能需要   其他索赔。而不是为每个使用单独的发行令牌   操作,客户端可以获得一个具有初始设置的已发布令牌   声称并使用另一个已发行的令牌与其余的权利要求   被调用的操作所需。

     

多因素身份验证。当客户必须收集发行的令牌   来自多个发行人或发行具有不同权利要求的代币   在被允许执行操作之前。 WCF认为已发布   令牌是一种令牌类型,因此这种情况需要能力   在邮件中有两个支持发行的令牌。

但是没有实际的例子如何实现它:( 我只能使用自定义用户凭据进行身份验证。

1 个答案:

答案 0 :(得分:0)

是的,你可以这样做。我能想到的两种常见方式是,

  1. Active Directory身份验证 - 您知道它是如何工作的

  2. 证书身份验证 - 主机将拥有证书存储区。客户提供的证书必须存在于商店中。如果是,则通过,否则失败。

  3. 后者可用于业务伙伴通信或跨机器调用,以便更好地实施另一层安全性。绑定可以是WebServiceBinding(WS绑定)或NetTCPBinding

    许多教程可用于创建证书及其工作。如果你被卡住,请发帖。