信赖方应用程序

更新时间:2015 年 6 月 19 日

适用于:Azure

信赖方应用程序(也称为声明感知应用程序基于声明的应用程序)是依赖于声明进行身份验证的应用程序或服务。 在Microsoft Azure Active Directory 访问控制 (也称为访问控制服务或 ACS) 中,信赖方应用程序是网站、应用程序或服务,使用 ACS 实现联合身份验证。

可以使用 ACS 管理门户或通过编程方式使用 ACS 管理服务手动创建和配置信赖方应用程序。

在 ACS 管理门户中,添加和配置的信赖方应用程序是信任特定访问控制命名空间的网站、应用程序或服务的逻辑表示形式。 可以在每个访问控制命名空间中添加和配置许多信赖方应用程序。

在 ACS 管理门户中进行配置

可以使用 ACS 管理门户配置信赖方应用程序的以下属性:

  • Mode

  • 领域和返回 URL

  • 错误 URL(可选)

  • 令牌格式

  • 令牌加密策略

  • 令牌生存期

  • 标识提供者

  • 规则组

  • 令牌签名

  • 令牌加密

Mode

“模式”属性确定你是要手动配置信赖方应用程序设置,还是要指定用于定义应用程序设置的 WS 联合身份验证元数据文档。

WS 联合身份验证元数据文档通常包含应用程序的领域和返回 URL。 它还可以包含一个可选的加密证书,用于加密 ACS 为应用程序颁发的令牌。 如果指定了WS-Federation文档并且元数据包含加密证书,则令牌加密策略设置默认为 “需要加密”。 如果“令牌加密策略”设置值为“需要加密”,但 WS 联合身份验证元数据文档不包含加密证书,则你必须手动上载加密证书。

如果信赖方应用程序与 Windows Identity Foundation (WIF) 集成,WIF 将自动为你的应用程序创建一个 WS 联合身份验证元数据文档。

领域和返回 URL

Realm 属性定义 ACS 颁发的令牌有效的 URI。 返回 URL (也称为 ReplyTo 地址) 定义 ACS 颁发的令牌发送到的 URL。 当请求令牌访问信赖方应用程序时,仅当令牌请求中的领域与信赖方应用程序领域匹配时,ACS 才会颁发令牌。

重要

在 ACS 中,领域值区分大小写。

在 ACS 管理门户中,每个访问控制命名空间中只能配置一个领域和一个返回 URL。 在最简单的情况下,领域和返回 URL 是完全相同的。 例如,如果应用程序的根 URI 为 https://contoso.com,信赖方应用程序的领域和返回 URL 为 https://contoso.com

若要为信赖方应用程序配置多个返回 URL (ReplyTo 地址) ,请在 ACS 管理服务中使用 RelyingPartyAddress 实体。

从 ACS 请求令牌或令牌从标识提供者发布到 ACS 时,ACS 会将令牌请求中的领域值与信赖方应用程序的领域值进行比较。 如果令牌请求使用WS-Federation协议,ACS 使用领域值位于 wtrealm 参数中。 如果令牌使用 OAuth WRAP 协议,ACS 将使用 applies_to 参数中的领域值。 如果 ACS 在信赖方应用程序的配置设置中找到匹配领域,它将创建一个令牌,该令牌对用户进行身份验证,并将其发送到返回 URL。

当信赖方有多个返回 URL 时,此过程是类似的。 ACS 从 wreply 参数获取重定向 URL。 如果重定向 URL 是信赖方应用程序的返回 URL 之一,ACS 会将响应发送到该 URL。

领域值区分大小写。 仅当领域值相同或信赖方应用程序的领域值是令牌请求中领域的前缀时,才颁发令牌。 例如,信赖方应用程序领域值 http://www.fabrikam.com 与令牌请求领域值 http://www.fabrikam.com/billing匹配,但它与令牌请求领域 v 不匹配 https://fabrikam.com

错误 URL(可选)

错误 URL 指定在登录过程中发生错误时 ACS 将用户重定向到的 URL。 它可以是信赖方应用程序的可选属性。

错误 URL 值可以是信赖方应用程序托管的自定义页面,例如http://www.fabrikam.com/billing/error.aspx。 作为重定向的一部分,ACS 将有关错误的详细信息作为 JSON 编码的 HTTP URL 参数提供给信赖方应用程序。 可以制作自定义错误页,以解释 JSON 编码的错误信息,呈现实际错误消息,和/或显示静态帮助文本。

有关错误 URL 用法的详细信息,请参阅代码示例:ASP.NET 简单 MVC 2

令牌格式

Token format 属性确定 ACS 针对信赖方应用程序颁发的令牌的格式。 ACS 可以颁发 SAML 2.0、SAML 1.1、SWT 或 JWT 令牌。 有关令牌格式的详细信息,请参阅 ACS 支持的令牌格式

ACS 使用标准协议将令牌返回到 Web 应用程序或服务。 当令牌格式支持多个协议时,ACS 使用用于令牌请求的相同协议。 ACS 支持以下令牌格式/协议组合:

  • ACS 可以使用 WS-Trust 和 WS-Federation 协议返回 SAML 2.0 令牌。

  • ACS 可以使用WS-Federation和相关WS-Trust协议返回 SAML 1.1 令牌。

  • ACS 可以使用 WS 联合身份验证、WS 信任、OAuth-WRAP 和 OAuth 2.0 协议返回 SWT 令牌。

  • ACS 可以使用 WS 联合身份验证、WS 信任和 OAuth 2.0 协议颁发和返回 JWT 令牌。

有关 ACS 使用的标准协议的详细信息,请参阅 ACS 支持的协议

选择令牌格式时,请考虑访问控制命名空间如何对颁发令牌进行签名。 所有 ACS 颁发的令牌都必须签名。 有关详细信息,请参阅令牌签名。

此外,还应考虑是否要令牌加密。 有关详细信息,请参阅令牌加密策略。

令牌加密策略

令牌加密策略确定是否对信赖方应用程序颁发的 ACS 颁发的令牌进行加密。 若需要加密,请选择“需要加密”值。

在 ACS 中,只能为 SAML 2.0 或 SAML 1.1 令牌配置加密策略。 ACS 不支持对 SWT 或 JWT 令牌进行加密。

ACS 使用包含公钥 (.cer 文件) 的 X.509 证书加密 SAML 2.0 和 SAML 1.1 令牌。 这些加密令牌随后使用由信赖方应用程序所拥有的私钥进行解密。 有关获取和使用加密证书的详细信息,请参阅 证书和密钥

在 ACS 颁发的令牌上配置加密策略是可选的。 但是,如果你的信赖方应用程序是通过 WS 信任协议使用所有权证明令牌的 Web 服务,则必须配置加密策略。 如果没有加密令牌,这一特定方案将无法正常工作。

令牌生存期

Token 生存期属性指定时间间隔 (以秒为单位) ,在此期间 ACS 向信赖方应用程序颁发的安全令牌有效。 默认值为 600(10 分钟)。 在 ACS 中,令牌生存期值必须介于零 (0) 和 86400 (24 小时) (含)。

标识提供者

“标识提供程序”属性指定可向信赖方应用程序发送声明的标识提供程序。 这些标识提供者显示在 Web 应用程序或服务的 ACS 登录页上。 ACS 门户的“ 标识提供者 ”部分中配置的所有标识提供者都显示在标识提供者列表中。 若要向该列表添加标识提供程序,请单击“标识提供程序”

每个信赖方应用程序可与零个或多个标识提供程序关联。 访问控制命名空间中的信赖方应用程序可以与同一标识提供者或不同的标识提供者相关联。 如果未为信赖方应用程序选择任何标识提供者,则必须使用 ACS 为信赖方应用程序配置直接身份验证。 例如,可以使用服务标识来配置直接身份验证。 有关详细信息,请参阅 服务标识

规则组

“规则组”属性确定信赖方应用程序在处理声明时使用的规则。

每个 ACS 信赖方应用程序都必须与至少一个规则组相关联。 如果令牌请求与没有规则组的信赖方应用程序匹配,ACS 不会向 Web 应用程序或服务颁发令牌。

ACS 门户的 “规则组 ”部分配置的所有规则组将显示在规则组列表中。 若要向该列表添加规则组,请单击“规则组”

在 ACS 管理门户中添加新信赖方应用程序时,默认选择“ 新建规则组 ”选项。 强烈建议你为新的信赖方应用程序创建新的规则组。 但是,可以将你的信赖方应用程序与现有规则组关联。 为此,请清除“创建新规则组”选项并选择所需的规则组。

你可以将一个信赖方应用程序与多个规则组关联(也可以将一个规则组与多个信赖方应用程序关联)。 如果信赖方应用程序与多个规则组相关联,则 ACS 以递归方式评估所有规则组中的规则,就像它们是单个规则组中的规则一样。

有关规则和规则组的详细信息,请参阅 规则组和规则

令牌签名

令牌签名设置属性指定 ACS 问题的安全令牌签名方式。 所有 ACS 颁发的令牌都必须签名。

可用的签名选项取决于你为信赖方应用程序的“令牌格式”。 (有关令牌格式的详细信息,请参阅 Token Format.)

  • SAML 令牌:使用 X.509 证书对令牌进行签名。

  • SWT 令牌:使用对称密钥对令牌进行签名。

  • JWT 令牌:使用 X.509 证书或对称密钥对令牌进行签名。

X.509 证书选项。 为使用 X.509 证书签名的令牌提供了以下选项。

  • 使用服务命名空间证书 (标准) — 如果选择此选项,ACS 将使用访问控制命名空间的证书为信赖方应用程序签名 SAML 1.1 和 SAML 2.0 令牌。 如果计划使用 WS-Federation 元数据自动配置 Web 应用程序或服务,请使用此选项,因为命名空间公钥在访问控制命名空间的WS-Federation元数据中发布。 WS-Federation元数据文档的 URL 显示在 ACS 管理门户 的应用程序集成 页上。

  • 使用专用证书 - 如果选择此选项,ACS 将使用特定于应用程序的证书为信赖方应用程序签名 SAML 1.1 和 SAML 2.0 令牌。 该证书不可用于其他信赖方应用程序。 选择此选项后,可以浏览包含私钥的 X.509 证书(.pfx 文件),并输入该 .pfx 文件的密码。

注意

JWT 令牌。 将信赖方应用程序配置为使用访问控制命名空间的 X.509 证书对信赖方应用程序的 JWT 令牌进行签名时,指向访问控制命名空间证书的链接,访问控制命名空间密钥显示在 ACS 管理门户中信赖方应用程序的页面上。 但是,ACS 仅使用命名空间证书为信赖方应用程序签名令牌。

托管命名空间。 当你添加信赖方应用程序到管理的命名空间时(如 Service Bus 命名空间),请不要输入应用程序特定(专用)的证书或密钥。 相反,选择 ACS 定向的选项以使用为管理的命名空间中所有应用程序配置的证书和密钥。 有关详细信息,请参阅 托管命名空间

有关共享和专用证书和密钥的详细信息,请参阅 证书和密钥

对称密钥选项

作为安全最佳做法,在使用对称密钥时,请为每个信赖方应用程序创建专用密钥,而不是为访问控制命名空间使用共享对称密钥。 如果输入或生成专用密钥,只要专用密钥有效,ACS 将使用专用密钥为信赖方应用程序签名令牌。 但是,如果专用密钥过期且未替换,ACS 将使用共享命名空间密钥为信赖方应用程序签名令牌。

如果选择使用共享对称密钥,请复制“证书和密钥”页中的“服务命名空间”密钥值,然后将其粘贴到“信赖方应用程序”页的“令牌签名”部分的字段中

以下选项可用于使用对称密钥签名的令牌。

  • 令牌签名密钥 - 输入 256 位对称密钥,或单击“生成”以生成 256 位对称密钥。

  • 生效日期 - 指定对称密钥的有效日期范围的开始日期。 从此日期开始,ACS 使用对称密钥为信赖方应用程序签名令牌。 ACS 默认值为当前日期。

  • 过期日期 - 指定对称密钥的有效日期范围的结束日期。 从此日期开始,ACS 不使用对称密钥为信赖方应用程序签名令牌。 没有默认值。 作为安全最佳实践,应根据应用程序的要求,每隔一年或两年替换对称密钥一次。

令牌加密

令牌加密证书选项指定用来为信赖方应用程序令牌进行加密的 X.509 证书(.cer 文件)。 在 ACS 中,只能加密 SAML 2.0 或 SAML 1.1 令牌。 ACS 不支持对 SWT 或 JWT 令牌进行加密。

在 ACS 门户的 “证书和密钥 ”部分中指定用于令牌加密的证书。 在信赖方应用程序页的“令牌加密策略”部分中单击“单击此处”链接时,将打开“证书和密钥”的“添加令牌加密证书”页。 使用此页指定证书文件。

有关详细信息,请参阅令牌加密策略。 有关获取和添加加密证书的详细信息,请参阅 证书和密钥

另请参阅

概念

ACS 2.0 组件