2011-04-19 47 views
8

想用Access Control Service (ACS)Windows Identity Foundation (WIF)来保护我的WCF数据服务Web API应用程序。可以使用NameIdentifier和IdentityProvider(WIF)声明来唯一标识任何用户吗?

如何使用声明来唯一标识用户?

我的想法是使用标准索赔NameIdentifier和WIF索赔IdentityProvider相结合的组合来为任何用户创建唯一的ID。

这个组合是否真正稳定和独特? IP能否突然改变它的IdentityProvider字符串?

这里的想法是将两半的连接字符串存储为任何用户的唯一ID。

NameIdentifier声明是否有任何安全隐患?

干杯,

M.

回答

4

这似乎是合理的。请注意,nameidentifier是特定于IdP的,这意味着它由您通过身份验证的身份提供商提供(例如,LiveID,Google等)。 ACS只是将此值复制到索赔中。请与这些供应商中的每一家联系,看看他们做出了什么保证。我的假设是,他们不应该改变为“返回用户” - >拥有相同用户名/密码的人。

人们还经常使用电子邮件地址。如果可用,您可能也想将它关联起来作为额外的措施。

+0

谢谢你的回答。我同意 - 这也是我的推理线。我可以向输出添加一个IP-ID声明,我将完全控制未来,但对于名称标识,没有这种有用的方法,如果它会改变,我仍然无法将其与我的算法相匹配。另一方面,知识产权会改变其名称标识符或标识符提供者的价值似乎是不合逻辑的。在我的书中,这是全球独一无二且稳定的。从知识产权处看到“行为准则的保证”或这类问题将得到解决的事情,这将是很好的。 – noopman 2011-04-23 05:57:14

2

贾斯廷史密斯在他的MIX11 talk(参见幻灯片22,28分钟的演讲)中提到了这一点 - 我的理解是,ACS为您提供了名称标识和IdP名称。你把这个元组放在一起,它应该是唯一的id。

+0

是的,我同意听起来好像ACS增加了IP声明。但是,当你看到他们在不同的基础上。一个是类似URI的URI,另一个是一个简短的字符串。无论如何,它让我不知道它们是否由IP提供? – noopman 2011-05-20 09:20:29