NameIdentifier和IdentityProvider(WIF)声明是否可用于唯一标识任何用户?

8

考虑使用Access Control Service (ACS)Windows Identity Foundation (WIF)来保护我的WCF Data Services Web API应用程序。

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

我的想法是使用标准声明NameIdentifier和WIF声明IdentityProvider的组合来创建任何用户的唯一ID。

这种组合真的稳定且唯一吗?一个IP地址会突然更改其IdentityProvider字符串吗?

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

名称标识声明是否有任何安全影响?

干杯,

M.

2个回答

4
这看起来很合理。请注意,nameidentifier是特定于身份提供者的,这意味着它由您进行身份验证的身份提供者(例如LiveID,Google等)提供。 ACS只是将此值复制到声明中。与每个提供程序联系以了解他们提供的保证。我的假设是对于“返回用户”即拥有相同用户名/密码的人,它们不应更改。
人们经常使用电子邮件地址。如果可用,您可能还希望将其作为额外措施进行关联。

感谢您的回答。我同意 - 这也是我的推理方式。我可以向输出添加IP-ID声明,这样我将来就完全掌控它了,但对于nameidentifier,却没有这样有用的方法,如果它改变了,我仍然无法将其与我的算法匹配。另一方面,似乎很不合逻辑,一个IP会改变他们的nameidentifier或identityprovider值。在我的书里,这是全球唯一且稳定的。从IP中看到“行为准则保证”或类似的东西,这种问题得到解决将是很好的。 - noopman

2
贾斯汀·史密斯在他的MIX11演讲中提到了这一点(见幻灯片22,在演讲的第28分钟) - 我的理解是ACS会给你一个名称标识符和IdP名称。你把这个元组放在一起,就可以得到唯一的ID。

是的,我同意ACS似乎添加了IP声明。但是当你看这些声明时,它们非常不同。一个类似于URI,另一个是短字符串。这让我想知道它们是否由IP提供? - noopman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接