同盟中繼資料
Microsoft Entra ID 會針對設定為接受Microsoft Entra ID 所簽發安全性權杖的服務發佈同盟中繼資料文件。 Web 服務同盟語言 (WS-Federation) 1.2 版 (該說明為適用於 OASIS 安全性聲明標記語言 (SAML) 的中繼資料 2.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
。
若為租用戶獨立端點,TenantDomainName
是 common
。 本文件只會列出託管於 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
屬性的值代表簽發者 (也就是簽發權杖的 Security Token Service (STS))。 請務必在收到權杖時驗證簽發者。
下列中繼資料說明了含有 EntityID
項目的範例租用戶專屬 EntityDescriptor
項目。
<EntityDescriptor
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
ID="_00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
entityID="https://sts.windows.net/00aa00aa-bb11-cc22-dd33-44ee44ee44ee/">
您可以使用租用戶識別碼來取代租用戶獨立端點中的租用戶識別碼,以建立租用戶特定的 EntityID
值。 產生的值會與權杖簽發者相同。 此策略可讓多租使用者應用程式驗證指定租用戶的簽發者。
下列中繼資料說明了範例租用戶獨立 EntityID
項目。 請注意, {tenant}
是常值,而不是預留位置。
<EntityDescriptor
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
ID="="_aaaabbbb-0000-cccc-1111-dddd2222eeee"
entityID="https://sts.windows.net/{tenant}/">
權杖簽署憑證
當服務收到由 Microsoft Entra 租用戶發出的權杖時,權杖的簽章必須使用同盟中繼資料文件中發佈的簽署金鑰進行驗證。 同盟中繼資料包含租用戶用於權杖簽署之憑證的公開部分。 憑證原始位元組會出現在 KeyDescriptor
項目中。 當 use
屬性值為 signing
時,權杖簽署憑證僅能適用於簽署。
Microsoft Entra ID 發行的同盟中繼資料文件可以有多個簽署金鑰,例如 Microsoft Entra ID 準備更新簽署憑證時。 當同盟中繼資料文件包含多個憑證時,正在驗證權杖的服務應會支援該文件中的所有憑證。
下列中繼資料說明了具有簽署金鑰的範例 KeyDescriptor
項目。
<KeyDescriptor use="signing">
<KeyInfo xmlns="https://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>
aB1cD2eF-3gH4i...J5kL6-mN7oP8qR=
</X509Certificate>
</X509Data>
</KeyInfo>
</KeyDescriptor>
KeyDescriptor
項目會出現在同盟中繼資料文件中的兩個位置:WS 同盟專屬區段和 SAML 專屬區段。 發佈在這兩個區段的憑證將會是相同的。
在 WS 同盟專屬區段中,WS 同盟中繼資料讀取器會從 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 同盟端點 URL
同盟中繼資料包含 URL,Microsoft Entra ID 將使用於 Web 服務同盟通訊協定中的單一登入和單一登出。 此端點會出現在 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 同盟端點中,如下列範例所示。
<fed:PassiveRequestorEndpoint>
<EndpointReference xmlns="https://www.w3.org/2005/08/addressing">
<Address>
https://login.microsoftonline.com/common/wsfed
</Address>
</EndpointReference>
</fed:PassiveRequestorEndpoint>
SAML 通訊協定端點 URL
同盟中繼資料包含 URL,Microsoft Entra ID 用於 SAML 2.0 通訊協定中的單一登入和單一登出。 這些端點會出現在 IDPSSODescriptor
項目中。
登入和登出 URL 會出現在 SingleSignOnService
和 SingleLogoutService
項目中。
下列中繼資料說明了租用戶專屬端點的範例 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>