同盟中繼資料

Microsoft Entra ID 會針對設定為接受 Microsoft Entra ID 所發出的安全性令牌的服務發佈同盟元數據檔。 同盟元數據檔格式會在 Web 服務同盟語言 (WS-Federation) 1.2 版中描述,這會擴充 OASIS 安全性聲明標記語言 (SAML) v2.0 的元數據。

租使用者特定和租用戶無關的元數據端點

Microsoft Entra ID 會發佈租使用者特定和與租用戶無關的端點。

租使用者特定的端點是針對特定租用戶所設計。 租使用者特定的同盟元數據包含租用戶的相關信息,包括租使用者特定的簽發者和端點資訊。 限制對單一租使用者存取的應用程式會使用租使用者特定的端點。

與租用戶無關的端點會提供所有 Microsoft Entra 租使用者通用的資訊。 此資訊適用於裝載於 login.microsoftonline.com 的租使用者,且會跨租用戶共用。 多租使用者應用程式建議使用與租用戶無關的端點,因為它們與任何特定租用戶無關。

同盟元數據端點

Microsoft Entra ID 會在 發佈同盟元數據 https://login.microsoftonline.com/<TenantDomainName>/FederationMetadata/2007-06/FederationMetadata.xml

針對 租使用者特定的端點TenantDomainName 可以是下列其中一種類型:

  • Microsoft Entra 租使用者的已註冊功能變數名稱,例如: contoso.onmicrosoft.com
  • 網域的不可變租使用者標識碼,例如 aaaabbbb-0000-cccc-1111-dddd2222eeee

對於 與租用戶無關的端點, TenantDomainNamecommon。 本檔只會列出裝載於 login.microsoftonline.com 的所有 Microsoft Entra 租使用者通用的同盟元數據元素。

例如,租使用者特定的端點可能是 https://login.microsoftonline.com/contoso.onmicrosoft.com/FederationMetadata/2007-06/FederationMetadata.xml。 與租用戶無關的端點為 https://login.microsoftonline.com/common/FederationMetadata/2007-06/FederationMetadata.xml。 您可以在瀏覽器中輸入此 URL,以檢視同盟元數據檔。

同盟元數據的內容

下一節提供服務所需的信息,這些服務會取用 Microsoft Entra ID 所簽發的令牌。

實體識別碼

元素 EntityDescriptor 包含 EntityID 屬性。 屬性的值 EntityID 代表簽發者,也就是發行令牌的安全性令牌服務 (STS)。 當您收到令牌時,請務必驗證簽發者。

下列元數據顯示具有 元素的範例租使用者EntityID特定EntityDescriptor專案。

<EntityDescriptor
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
ID="_00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
entityID="https://sts.windows.net/11bb11bb-cc22-dd33-ee44-55ff55ff55ff/">

您可以將租用戶獨立端點中的租用戶標識碼取代為您的租用戶標識碼,以建立租使用者特定的 EntityID 值。 產生的值會與令牌簽發者相同。 此策略可讓多租使用者應用程式驗證指定租用戶的簽發者。

下列元數據顯示與租用戶無關 EntityID 的範例專案。 請注意, {tenant} 是常值,而不是佔位符。

<EntityDescriptor
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
ID="="_11bb11bb-cc22-dd33-ee44-55ff55ff55ff"
entityID="https://sts.windows.net/{tenant}/">

令牌簽署憑證

當服務收到由 Microsoft Entra 租使用者發出的令牌時,令牌的簽章必須使用同盟元數據檔中發佈的簽署密鑰進行驗證。 同盟元數據包含租用戶用於令牌簽署之憑證的公開部分。 憑證原始位元組會出現在 元素中 KeyDescriptor 。 只有在 屬性值為 signinguse,令牌簽署憑證才有效。

Microsoft Entra ID 所發佈的同盟元數據檔可以有多個簽署密鑰,例如當 Microsoft Entra ID 準備更新簽署憑證時。 當同盟元數據檔包含多個憑證時,驗證令牌的服務應該支持檔中的所有憑證。

下列元數據顯示具有簽署金鑰的範例 KeyDescriptor 專案。

<KeyDescriptor use="signing">
<KeyInfo xmlns="https://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-Federation-specific 區段和 SAML 特定區段中。 在這兩個區段中發佈的憑證會相同。

在 WS-Federation 特定區段中,WS-Federation 元數據讀取器會從 RoleDescriptor 具有 型別的 SecurityTokenServiceType 元素讀取憑證。

下列元數據顯示範例 RoleDescriptor 專案。

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

在 SAML 特定區段中,WS 同盟元數據讀取器會從 IDPSSODescriptor 元素讀取憑證。

下列元數據顯示範例 IDPSSODescriptor 專案。

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

租使用者特定和租用戶獨立憑證的格式沒有任何差異。

WS-Federation 端點 URL

同盟元數據包含 MICROSOFT Entra ID 在 WS-Federation 通訊協定中用於單一登錄和單一登錄的 URL。 此端點會出現在 元素中 PassiveRequestorEndpoint

下列元數據顯示租使用者特定端點的範例 PassiveRequestorEndpoint 專案。

<fed:PassiveRequestorEndpoint>
<EndpointReference xmlns="https://www.w3.org/2005/08/addressing">
<Address>
https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/wsfed
</Address>
</EndpointReference>
</fed:PassiveRequestorEndpoint>

對於與租用戶無關的端點,WS 同盟 URL 會出現在 WS-Federation 端點中,如下列範例所示。

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

SAML 通訊協定端點 URL

同盟元數據包含 Microsoft Entra ID 在 SAML 2.0 通訊協定中用於單一登錄和單一登錄的 URL。 這些端點會出現在 元素中 IDPSSODescriptor

登入和註銷 URL 會出現在 和 SingleLogoutService 元素中SingleSignOnService

下列元數據顯示租使用者特定端點的範例 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.microsoftonline.com/contoso.onmicrosoft.com/saml2" />
    <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://login.microsoftonline.com/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.microsoftonline.com/common/saml2" />
    <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://login.microsoftonline.com/common/saml2" />
  </IDPSSODescriptor>