【问题标题】:Enrich Azure ACS security tokens丰富 Azure ACS 安全令牌
【发布时间】:2013-01-25 04:32:03
【问题描述】:

我们正在考虑将 ACS 作为我们的联合 STS。我们可以将我们自己的自定义 STS 配置为 IP-STS,以及 Facebook、Live 和 Google 等“内置”身份提供商。然而,我们得到的索赔相当“差”。 ACS 中的声明转换仅在非常简单的场景中有所帮助。
我们正在寻找处理“遗失索赔”情况的最佳实践。我们认为我们需要在 ACS 前面放置一个“装饰 STS”。当 ACS 返回一个安全令牌时,这个装饰器可以用额外的声明“丰富”安全令牌。如果只是缺少声明,它可以设置一些用户界面来要求用户(一次)完成她的个人资料。这样,无论用户来自哪里,我们都有应用程序需要的声明。这是一个好主意吗 ?在这种情况下,“最佳实践”是什么? (ACS 似乎不允许任何程序化扩展。)

【问题讨论】:

    标签: azure wif acs


    【解决方案1】:

    我认为答案实际上取决于具体情况。 ACS 并非旨在管理配置文件,因此它可以和应该做的事情,关于传出索赔或多或少受到设计的限制 - 它在所有情况下都是中间人。

    除了管理服务身份之外,它只能处理从身份提供者那里收到的输入,并且没有管理用户配置文件或类似内容的权限。

    考虑到这一点,我认为您实际上只有两个合理的选择 - 您的身份提供提供更多信息,这些信息可以通过 ACS 并可能被 ACS 转换,或者您的应用程序通过 ACS 从 IP 接收基本身份,管理其扩展配置文件。

    我写过后者here

    【讨论】:

    • 您好,感谢您的回答。由于我几乎无法控制身份提供者(除了我自己的),我不能让他们提供我需要的数据。您的方法将“配置文件”放置在客户端应用程序中。这种方法有效,但我必须在每个客户端应用程序中“重复”这项工作。如果每个客户端应用程序都有不同的“配置文件需求”,我想这是一种可行的方法。我有点希望将其“外包”给 STS。
    【解决方案2】:

    您想要的称为 RP-STS,而且设置起来非常简单。联邦可以被认为是一个链,在 ACS 的情况下,这通常是 RP -> ACS -> IdP,其中令牌请求从左到右移动,令牌从右到左移动。在联邦链中,每个实体只明确知道它的邻居。你想要的是 RP -> RP-STS -> ACS -> IdP。事实上,ACS 也可以被认为是一个 RP-STS,因为它既不是身份提供者也不是依赖方。您只是在链中添加另一个链接,这没关系,因为联邦链可以任意长。

    您的 RP-STS 将有两个主要操作:

    1. 当 RP 发送登录请求时,将该请求的详细信息(例如原始 RP 的域和回复地址、任何 RP 上下文等)打包在 wctx 中,并创建一个此登录请求到 ACS。
    2. 当 ACS 将令牌发送回 RP-STS 时,解压缩上下文,添加所需的任何值(例如提示用户提供更多详细信息或查找配置文件),然后使用添加的声明和任何ACS 发布的声明您希望保留。

    在这种情况下,您实际上正在做的是将身份验证外包给 Google/FB/etc。到 ACS,因为您不想处理这些协议,然后在身份验证完成后添加您自己的值。从 ACS 的角度来看,只注册了一个 RP:您的 RP-STS。从您实际 RP 的角度来看,只有一个身份提供者:您的 RP-STS。

    【讨论】:

    • 显然,您的 RP-STS 可以放在任意数量的 RP 前面。
    猜你喜欢
    • 1970-01-01
    • 2023-02-01
    • 2014-04-18
    • 1970-01-01
    • 2014-03-20
    • 2014-11-02
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    相关资源
    最近更新 更多