8

考虑使用访问控制服务 (ACS)Windows Identity Foundation (WIF)来保护我的 WCF 数据服务 Web API 应用程序。

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

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

这个组合真的稳定且独特吗?IP 会不会突然改变它的 IdentityProvider 字符串?

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

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

干杯,

M。

4

2 回答 2

4

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

人们也经常使用电子邮件地址。如果可用,您可能还希望将其关联起来作为额外的衡量标准。

于 2011-04-22T16:28:21.603 回答
2

Justin Smith 在他的MIX11 演讲中提到了这一点(见幻灯片 22,演讲开始 28 分钟)——据我了解,ACS 为您提供了名称标识符和 IdP 名称。你把元组放在一起,它应该适合唯一的 id。

于 2011-05-19T15:13:06.140 回答