【问题标题】:Unique identifying a user after federated Authentication联合身份验证后唯一标识用户
【发布时间】:2013-05-09 06:34:38
【问题描述】:

我刚刚开始为我正在编写的一个新应用程序试验 WIF。到目前为止,我已经设法让 LocalSTS 工作并设置我的 web.config 以启用针对 LocalSTS 的联合身份验证。我的计划是暂时使用 LocalSTS,稍后再实施自定义 STS。

我想使用联合身份验证来对用户进行身份验证,一旦他们通过身份验证,就授权他们在内部执行各种操作。因此,STS 将进行身份验证,而应用程序将在内部进行授权。

为此,我需要将每个用户的授权操作(可能有数百个独特的操作)存储在我的应用数据库中,并在用户开始新会话时读取这些操作并兑现。

我想知道的是,如何将使用联合身份验证进行身份验证的用户映射到我的数据库中存在的唯一用户 ID,同时仍然保持应用程序与我使用的 STS 无关(无论是 ADFS,打开身份验证等等)?

nameidentifier 令牌似乎是一个不错的候选者,但后来我读到 SAML 2 用不同的令牌替换了它。

我是不是以完全错误的方式处理这个问题?我错过了什么吗?

任何帮助将不胜感激。

【问题讨论】:

    标签: security authentication authorization wif federated-identity


    【解决方案1】:

    姓名是不错的候选者,但电子邮件、upn 甚至“唯一编号”也一样好。关键是 - 没有最终的候选人。

    我认为,如果您的顾虑是保持不可知论,您应该考虑将 rp 的 sts 定义为“sts 端点的地址和一组用于匹配用户的声明”。

    这样 sts1 可以定义为“https://sts1.blah”和“用户名声明”,但 sts2 可以定义为“https://sts2.blah”和“email”。

    经过几年的经验,我认为这种方法是唯一的可能性,因为不同的 stses 提供了不同的声明,并且没有“保证总是发生的声明”。

    话虽如此,大多数时候我们假设任何 sts 至少会返回用户名或电子邮件,并且 rp 可以信任这一点。这简化了rp端用户的匹配。

    【讨论】:

      猜你喜欢
      • 2012-10-23
      • 1970-01-01
      • 2012-05-25
      • 2010-11-27
      • 1970-01-01
      • 2016-10-18
      • 2011-05-30
      • 2012-12-16
      • 2023-03-25
      相关资源
      最近更新 更多