使用WIF,audienceUris和realm有啥区别?
Posted
技术标签:
【中文标题】使用WIF,audienceUris和realm有啥区别?【英文标题】: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>
我看到的每个示例 audienceUris
和 realm
都是相同的值。这两者有什么区别?我们两个都需要吗?
【问题讨论】:
【参考方案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.... 这是我的帖子:***.com/q/17739147/1343516以上是关于使用WIF,audienceUris和realm有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
WIF(使用 Thinktecture Identity Server)和双工 WCF 通道