销售电话: 1-800-867-1380

联合元数据

发布时间: 2013年4月

更新时间: 2014年12月

对于配置为接受 Azure Active Directory 颁发的安全令牌的服务,Azure Active Directory (Azure AD) 发布了一个联合元数据文档。在扩展了 OASIS 安全断言标记语言 (SAML) V2.0 元数据Web 服务联合语言(WS 联合身份验证)版本 1.2 中描述了联合元数据文档格式。

本主题列出了元数据终结点,并说明了接受 Azure AD 令牌的服务需要使用的元数据文档中的内容。

Azure AD 发布了特定于租户和独立于租户的终结点。特定于租户的终结点面向特定的租户。特定于租户的联合元数据包含有关租户的信息,包括特定于租户的颁发者和终结点信息。限制访问单个租户的应用程序使用特定于租户的终结点。

独立于租户的终结点提供所有 Azure AD 租户通用的信息。此信息适用于托管在 login.windows.net 上的租户,并在租户间共享。对于多租户应用程序,建议使用独立于租户的终结点,因为它们不与任何特定租户相关联。

Azure AD 在 https://login.windows.net/<TenantDomainName>/FederationMetadata/2007-06/FederationMetadata.xml 上发布联合元数据,其中,<TenantDomainName> 的值可以是“common”或特定于租户的值。

这些终结点可寻址,因此你可以转到地址站点,以查看租户的联合元数据。

对于特定于租户的终结点,<TenantDomainName> 可以是以下类型之一:

  • Azure AD 租户的已注册域名,例如:contoso.onmicrosoft.com.

  • 域的不可变租户 ID,例如 72f988bf-86f1-41af-91ab-2d7cd011db45

对于独立于租户的终结点,<TenantDomainName> 为 common。此名称指示只能使用托管在 login.windows.net 上的所有 Azure AD 租户通用的联合元数据元素。

例如,特定于租户的终结点可以是 https://login.windows.net/contoso.onmicrosoft.comFederationMetadata/2007-06/FederationMetadata.xml。独立于租户的终结点是 https://login.windows.net/common/FederationMetadata/2007-06/FederationMetadata.xml

以下部分提供使用 Azure AD 颁发的令牌的服务所需的信息。

EntityDescriptor 元素包含 EntityID 属性。EntityID 属性的值表示颁发者,即,颁发令牌的安全令牌服务 (STS)。必须验证颁发者,以确认令牌是由哪个租户颁发的。

以下元数据显示了包含 EntityID 元素的特定于租户的 EntityDescriptor 元素示例。

<EntityDescriptor 
xmlns="urn:oasis:names:tc:SAML:2.0:metadata" 
ID="_b827a749-cfcb-46b3-ab8b-9f6d14a1294b" 
entityID="https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db45/">

独立于租户的终结点中的 EntityID 提供了一个模板,可用来生成特定于租户的 EntityID 值。请将独立于租户的终结点中的“{tenant}”文本替换为令牌中 TenantID 声明的值。生成的值将与令牌颁发者的值相同。此策略允许多租户应用程序验证给定租户的颁发者。

以下元数据显示了独立于租户的 EntityID 元素示例。在此元素中,{tenant} 是一个文本而不是占位符。

<EntityDescriptor 
xmlns="urn:oasis:names:tc:SAML:2.0:metadata" 
ID="="_0e5bd9d0-49ef-4258-bc15-21ce143b61bd" 
entityID="https://sts.windows.net/{tenant}/">

当服务收到 Azure AD 租户颁发的令牌时,必须使用联合元数据文档中发布的签名密钥来验证该令牌的签名。

联合元数据包含租户用来进行令牌签名的证书的公共部分。证书原始字节显示在 KeyDescriptor 元素中。仅当 use 属性值为 signing 时,才可以使用令牌签名证书进行签名。

Azure AD 发布的联合元数据文档可以包含多个签名密钥,例如,当 Azure AD 准备更新签名证书时。如果联合元数据文档包含多个证书,验证令牌的服务应该支持文档中的所有证书。

以下元数据显示了一个包含签名密钥的示例 KeyDescriptor 元素。

<KeyDescriptor use="signing">
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>
MIIDPjCCAiqgAwIBAgIQVWmXY/+9RqFA/OG9kFulHDAJBgUrDgMCHQUAMC0xKzApBgNVBAMTImFjY291bnRzLmFjY2Vzc2NvbnRyb2wud2luZG93cy5uZXQwHhcNMTIwNjA3MDcwMDAwWhcNMTQwNjA3MDcwMDAwWjAtMSswKQYDVQQDEyJhY2NvdW50cy5hY2Nlc3Njb250cm9sLndpbmRvd3MubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArCz8Sn3GGXmikH2MdTeGY1D711EORX/lVXpr+ecGgqfUWF8MPB07XkYuJ54DAuYT318+2XrzMjOtqkT94VkXmxv6dFGhG8YZ8vNMPd4tdj9c0lpvWQdqXtL1TlFRpD/P6UMEigfN0c9oWDg9U7Ilymgei0UXtf1gtcQbc5sSQU0S4vr9YJp2gLFIGK11Iqg4XSGdcI0QWLLkkC6cBukhVnd6BCYbLjTYy3fNs4DzNdemJlxGl8sLexFytBF6YApvSdus3nFXaMCtBGx16HzkK9ne3lobAwL2o79bP4imEGqg+ibvyNmbrwFGnQrBc1jTF9LyQX9q+louxVfHs6ZiVwIDAQABo2IwYDBeBgNVHQEEVzBVgBCxDDsLd8xkfOLKm4Q/SzjtoS8wLTErMCkGA1UEAxMiYWNjb3VudHMuYWNjZXNzY29udHJvbC53aW5kb3dzLm5ldIIQVWmXY/+9RqFA/OG9kFulHDAJBgUrDgMCHQUAA4IBAQAkJtxxm/ErgySlNk69+1odTMP8Oy6L0H17z7XGG3w4TqvTUSWaxD4hSFJ0e7mHLQLQD7oV/erACXwSZn2pMoZ89MBDjOMQA+e6QzGB7jmSzPTNmQgMLA8fWCfqPrz6zgH+1F1gNp8hJY57kfeVPBiyjuBmlTEBsBlzolY9dd/55qqfQk6cgSeCbHCy/RU/iep0+UsRMlSgPNNmqhj5gmN2AFVCN96zF694LwuPae5CeR2ZcVknexOWHYjFM0MgUSw0ubnGl0h9AJgGyhvNGcjQqu9vd1xkupFgaN+f7P3p3EVN5csBg5H94jEcQZT7EKeTiZ6bTrpDAnrr8tDCy8ng
</X509Certificate>
</X509Data>
</KeyInfo>
</KeyDescriptor>

KeyDescriptor 元素出现在联合元数据文档中的两个位置:特定于 WS 联合身份验证的部分中,和特定于 SAML 的部分中。在这两个部分中发布的证书将是相同的。

在特定于 WS 联合身份验证的部分中,WS 联合身份验证元数据读取器将读取 SecurityTokenServiceType 类型的 RoleDescriptor 元素中的证书。

以下元数据显示了一个示例 RoleDescriptor 元素。

<RoleDescriptor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fed="http://docs.oasis-open.org/wsfed/federation/200706" xsi:type="fed:SecurityTokenServiceType"protocolSupportEnumeration="http://docs.oasis-open.org/wsfed/federation/200706">

在特定于 SAML 的部分中,WS 联合身份验证元数据读取器将读取 IDPSSODescriptor 元素中的证书。

以下元数据显示了一个示例 IDPSSODescriptor 元素。

<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">

特定于租户和独立于租户的证书格式没有差别。

联合元数据包括 Azure AD 用于在 WS 联合身份验证协议中进行单一登录和单一注销的 URL。此终结点显示在 PassiveRequestorEndpoint 元素中。

以下元数据显示了特定于租户的终结点的示例 PassiveRequestorEndpoint 元素。

<fed:PassiveRequestorEndpoint>
<EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
<Address>
https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db45/wsfed
</Address>
</EndpointReference>
</fed:PassiveRequestorEndpoint>

对于独立于租户的终结点,WS 联合身份验证 URL 显示在 WS 联合身份验证终结点中,如以下示例中所示。

<fed:PassiveRequestorEndpoint>
<EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
<Address>
https://login.windows.net/common/wsfed
</Address>
</EndpointReference>
</fed:PassiveRequestorEndpoint>

联合元数据包括 Azure AD 用于在 SAML 2.0 协议中进行单一登录和单一注销的 URL。这些终结点显示在 IDPSSODescriptor 元素中。

登录和注销 URL 显示在 SingleSignOnServiceSingleLogoutService 元素中。

以下元数据显示了特定于租户的终结点的示例 PassiveResistorEndpoint

<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
…
    <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://login.windows.net/contoso.onmicrosoft.com/saml2" />
    <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https:// login.windows.net/contoso.onmicrosoft.com /saml2" />
  </IDPSSODescriptor>

同样,通用 SAML 2.0 协议终结点的终结点发布在独立于租户的联合元数据中,如以下示例中所示。

<IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
…
    <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://login.windows.net/common/saml2" />
    <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://login.windows.net/common/saml2" />
  </IDPSSODescriptor>

另请参阅

本文是否对您有所帮助?
(1500 个剩余字符)
感谢您的反馈
显示:
© 2015 Microsoft