【问题标题】:Using WIF, what is the difference between audienceUris and realm?使用WIF,audienceUris和realm有什么区别?
【发布时间】:2012-07-31 11:52:44
【问题描述】:

我们有一个使用 WIF 的 ASP.NET 应用程序。我们的 web.config 文件有这样的部分:

<audienceUris>
    <add value="https://someapp.mycompany.com/App/" />
</audienceUris>
<federatedAuthentication>
    <wsFederation passiveRedirectEnabled="true" issuer="https://adfs.mycompany.com/adfs/ls/" realm="https://someapp.mycompany.com/App/" requireHttps="true" />
    <cookieHandler requireSsl="false" />
</federatedAuthentication>

我看到的每个示例 audienceUrisrealm 都是相同的值。这两者有什么区别?我们两个都需要吗?

【问题讨论】:

    标签: wif adfs2.0 adfs


    【解决方案1】:

    realm 是应用程序的唯一标识符——登录时发送到 STS 的身份。但是,audienceUris 元素用于限制哪些应用程序将接受令牌。

    例如,用户可以登录并从不同的依赖方接收他们的令牌,然后导航到您的应用程序。如果该应用程序的领域列在audienceUris 中,则令牌将被接受并且他们可以访问该站点(假设该应用程序也可以读取 cookie)。

    如果您将令牌视为护照,这就像说英国将允许持有美国或英国护照的人入境。

    在回答您的问题时,您应该同时包含它们,但它们可以相同。

    【讨论】:

    • 谢谢,这确实有帮助。问这个问题的原因之一是我们想知道是否/如何可以直接连接到场中的服务器。因此,如果应用程序位于农场中,那么 AudienceUris 和 Realm 将是农场的 URL。但是,如果我们想直接连接到农场中的一台机器怎么办?这可能吗?
    • 领域并不是真正的 URL。它只是一个标识符。它可以是 iloveadfsandidontcare.com 或任何 URI,只要它对您的 STS 是唯一的。终结点的实际 URL 在 AD FS 中定义,它定义了登录响应的发送位置。因此,如果您想直接访问服务器场中的特定 URL,您可以在 AD FS 中进行配置。
    • 如果我将 web.config 中的领域更改为您拥有的 URI 并且保持 AudienceUris 相同(我的应用程序的实际 URL),我会收到一条错误消息,指出两者必须匹配。 (AudienceUriValidationFailedException:ID1038:AudienceRestrictionCondition 无效,因为指定的 Audience 不在 AudienceUris 中。)所以看起来它们都是必需的,而且它们都必须相同。
    • 对,您的领域必须在受众列表中(排除您自己的依赖方没有意义),但该列表还可以包括其他人。
    • 我有 localhost/ApplicationA 和 localhost/ApplicationB 项目。那么我是否可以在 AudienceUris 中添加两个 url ...?我的领域是 localhost/ApplicationA.... 这是我的帖子:stackoverflow.com/q/17739147/1343516
    猜你喜欢
    • 2014-05-09
    • 2011-12-20
    • 1970-01-01
    • 2021-01-15
    • 2010-10-20
    相关资源
    最近更新 更多