是否可以在WCF中实施双因素(或多因素)自定义身份验证? 例如,我想使用两种不同的凭证类型对客户端进行身份验证:
1)用户输入登录名和密码
2)WCF服务验证登录名+密码
3)如果上一步成功,服务器返回秘密查询(或OTP密码编号)
4)用户输入收到的查询的答案并将其发送到服务器
5)如果答案是正确的 - 用户在服务器上进行身份验证。他可以执行服务器方法。
经过身份验证的用户具有安全令牌。在下一个服务器上,调用客户端仅发送没有显式凭据的服务器安全令牌。
我在msdn - http://msdn.microsoft.com/en-us/library/ms788756.aspx
上找到了一个关于它的引用在.NET Framework 3.5中,客户端消息可以包含多个令牌 给定类型,以及不同类型的令牌。
此功能支持多种方案,包括:
增量声明发送。服务上的所有操作可能都需要 一系列声明存在,但某些操作可能需要 其他索赔。而不是为每个使用单独的发行令牌 操作,客户端可以获得一个具有初始设置的已发布令牌 声称并使用另一个已发行的令牌与其余的权利要求 被调用的操作所需。
多因素身份验证。当客户必须收集发行的令牌 来自多个发行人或发行具有不同权利要求的代币 在被允许执行操作之前。 WCF认为已发布 令牌是一种令牌类型,因此这种情况需要能力 在邮件中有两个支持发行的令牌。
但是没有实际的例子如何实现它:( 我只能使用自定义用户凭据进行身份验证。
答案 0 :(得分:0)
是的,你可以这样做。我能想到的两种常见方式是,
Active Directory身份验证 - 您知道它是如何工作的
证书身份验证 - 主机将拥有证书存储区。客户提供的证书必须存在于商店中。如果是,则通过,否则失败。
后者可用于业务伙伴通信或跨机器调用,以便更好地实施另一层安全性。绑定可以是WebServiceBinding(WS绑定)或NetTCPBinding
许多教程可用于创建证书及其工作。如果你被卡住,请发帖。