考虑使用Access Control Service (ACS)和Windows Identity Foundation (WIF)来保护我的WCF数据服务Web API应用程序。
如何使用声明来唯一标识用户?
我的想法是使用标准声明NameIdentifier和WIF声明IdentityProvider相结合的组合为任何用户创建唯一ID。
这个组合真的稳定而独特吗? IP会突然改变它的IdentityProvider字符串吗?
这里的想法是将两半的连接字符串存储为任何用户的唯一ID。
NameIdentifier声明是否有任何安全隐患?
干杯,
微米。
答案 0 :(得分:4)
这似乎是合理的。请注意,nameidentifier是IdP特定的,这意味着它由您通过身份验证的身份提供商提供(例如LiveID,Google等)。 ACS只是将此值复制到索赔中。检查这些提供商中的每一个,看看他们做出了什么保证。我的假设是他们不应该为“回归用户”而改变 - >拥有相同用户名/密码的人。
人们也经常使用电子邮件地址。如果可用,您可能还想将其关联起来作为一项额外措施。
答案 1 :(得分:2)
贾斯汀史密斯在他的MIX11 talk中提到了这一点(参见幻灯片22,谈话中的28分钟) - 我的理解是ACS为您提供了nameidentifier和IdP名称。你把元组放在一起,这对于唯一的id应该是好的。