【问题标题】:Can NameIdentifier and IdentityProvider (WIF) claims be used to uniquely identify any user?NameIdentifier 和 IdentityProvider (WIF) 声明能否用于唯一标识任何用户?
【发布时间】:2023-05-19 15:05:01
【问题描述】:

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

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

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

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

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

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

干杯,

M.

【问题讨论】:

    标签: azure wif claims-based-identity claims acs


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。我同意——这也是我的推理路线。我可以在输出中添加一个 IP-ID 声明,将来我可以完全控制它,但是对于 nameidentifier,没有这样有用的方法,如果它发生变化,我仍然无法将它与我的算法相匹配。另一方面,IP 更改其 nameidentifier 或 identityprovider 的值似乎非常不合逻辑。在我的书中,这是全球独一无二且稳定的。很高兴从 IP 中看到“行为保证准则”或可以解决此类问题的内容。
    【解决方案2】:

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

    【讨论】:

    • 是的,我同意这听起来好像 ACS 添加了 IP 声明。但是,当您查看它们时,它们的基础非常不同。一个是类似 URI 的,另一个是短字符串。让我想知道它们是否不是由 IP 提供的?
    最近更新 更多