同盟中繼資料
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
。
對於 與租用戶無關的端點, 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
代表簽發者,也就是發行令牌的安全性令牌服務 (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
。 只有在 屬性值為 signing
時use
,令牌簽署憑證才有效。
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-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
同盟元數據包含 URL,Microsoft Entra ID 用於單一登錄和 WS-Federation 通訊協定中的單一登錄。 此端點會出現在 元素中 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
同盟元數據包含 URL,Microsoft Entra ID 用於 SAML 2.0 通訊協定中的單一登錄和單一登錄。 這些端點會出現在 元素中 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>