SAML 型單一登入:設定和限制

在本文中,您將瞭解如何使用Microsoft Entra識別碼設定 SAML 型單一登入 (SSO) 的應用程式。 本文涵蓋根據規則將使用者對應至特定應用程式角色,以及對應屬性時要記住的限制。 它也涵蓋 SAML 簽署憑證、SAML 權杖加密、SAML 要求籤章驗證,以及自訂宣告提供者。

使用 SAML 2.0 進行驗證的應用程式可以設定為 (SSO) 的 SAML 型單一登入。 使用 SAML SSO 時,您可以根據在 SAML 宣告中定義的規則,將使用者對應至特定的應用程式角色。

若要設定 SAML 型 SSO 的 SaaS 應用程式,請參閱 快速入門:設定 SAML 型單一登入

[SAML SSO 設定] 刀鋒視窗的螢幕擷取畫面。

許多 SaaS 應用程式都有一個 應用程式特定的教學課程,可逐步引導您完成 SAML 型 SSO 的設定。

某些應用程式可以輕鬆地遷移。 具有更複雜的需求的應用程式,例如自訂宣告,可能需要Microsoft Entra識別碼和/或Microsoft Entra Connect Health中的額外設定。 如需支援的宣告對應相關資訊,請參閱如何自訂租用戶中特定應用程式的權杖所發出的宣告 (預覽)

對應屬性時請記住下列限制:

  • 並非所有可在 AD FS 中發行的屬性都會顯示在Microsoft Entra識別碼中,做為要發出給 SAML 權杖的屬性,即使這些屬性已同步處理也一樣。 當您編輯屬性時,[值] 下拉式清單會顯示Microsoft Entra識別碼中可用的不同屬性。 請檢查Microsoft Entra Connect Sync 發行項設定,以確保必要的屬性,例如samAccountName已同步處理至Microsoft Entra識別碼。 您可以使用擴充屬性來發出任何不屬於Microsoft Entra識別碼中標準使用者架構的宣告。
  • 在大多數的常見情況下,應用程式只需要 NameID 宣告和其他常見的使用者識別碼宣告。 若要判斷是否需要任何額外的宣告,請檢查您從 AD FS 發出的宣告。
  • 並非所有宣告都可以發出,因為某些宣告在Microsoft Entra識別碼中受到保護。
  • 使用加密 SAML 權杖的功能現已進入預覽階段。 請參閱做法:針對企業應用程式自訂 SAML 權杖中發出的宣告

軟體即服務 (SaaS) 應用程式

如果您的使用者登入 SaaS 應用程式 (例如 Salesforce、ServiceNow 或 Workday),並與 AD FS 整合,則您會使用 SaaS 應用程式的同盟登入。

大部分 SaaS 應用程式都可以在Microsoft Entra識別碼中設定。 Microsoft 在Microsoft Entra應用程式庫中有許多 SaaS 應用程式的預先設定連線,可讓您更輕鬆地進行轉換。 SAML 2.0 應用程式可以透過Microsoft Entra應用連結庫或非資源庫應用程式,與Microsoft Entra識別碼整合。

使用 OAuth 2.0 或 OpenID Connect 的應用程式可以類似地與Microsoft Entra識別碼整合為應用程式註冊。 使用舊版通訊協定的應用程式可以使用Microsoft Entra應用程式 Proxy,以Microsoft Entra識別碼進行驗證。

針對將 SaaS 應用程式上架的任何問題,您可以聯絡 Saas 應用程式整合支援別名

適用於 SSO 的 SAML 簽署憑證

簽署憑證是所有 SSO 部署的重要部分。 Microsoft Entra識別碼會建立簽署憑證,以建立 SAML 型同盟 SSO 至您的 SaaS 應用程式。 新增資源庫或非資源庫應用程式之後,您將使用同盟 SSO 選項設定新增的應用程式。 請參閱在Microsoft Entra識別碼中管理同盟單一登入的憑證

SAML 權杖加密

AD FS 和Microsoft Entra識別碼都提供權杖加密—能夠加密移至應用程式的 SAML 安全性判斷提示。 判斷提示會使用公開金鑰進行加密,並由具有相符私密金鑰的接收應用程式解密。 設定權杖加密時,您要上傳 x.509 憑證檔案以提供公開金鑰。

如需Microsoft Entra SAML 權杖加密以及如何設定的資訊,請參閱如何:設定Microsoft Entra SAML 權杖加密

注意

權杖加密是MICROSOFT ENTRA識別碼 P1 或 P2 功能。 若要深入瞭解Microsoft Entra版本、功能和定價,請參閱Microsoft Entra定價

SAML 要求籤章驗證

此功能會驗證已簽署驗證要求的簽章。 應用程式管理員會啟用和停用強制執行已簽署的要求,並上傳應該用來進行驗證的公開金鑰。 如需詳細資訊,請參閱 如何強制執行已簽署的 SAML 驗證要求

預覽 (自訂宣告提供者)

若要從舊版系統移轉資料,例如 ADFS 或 LDAP 之類的資料存放區,您的應用程式會相依于權杖中的特定資料。 您可以使用自訂宣告提供者,將宣告新增至權杖。 如需詳細資訊,請參閱 自訂宣告提供者概觀

可以立即移動的應用程式和設定

您目前可以輕鬆移動的應用程式包括使用一組標準設定元素和宣告的 SAML 2.0 應用程式。 這些標準項目如下:

  • 使用者主體名稱
  • 電子郵件地址
  • 指定的名稱
  • Surname
  • 替代屬性作為 SAML NameID,包括Microsoft Entra識別碼郵件屬性、郵件前置詞、員工識別碼、擴充屬性 1-15 或內部部署SamAccountName屬性。 如需詳細資訊,請參閱編輯 NameIdentifier 宣告
  • 自訂宣告。

下列需要更多設定步驟才能移轉至Microsoft Entra識別碼:

目前Microsoft Entra不支援的應用程式和設定

目前無法遷移需要某些功能的應用程式。

通訊協定功能

目前無法移轉需要下列功能的應用程式:

  • 支援 WS-Trust ActAs 模式
  • SAML 成品解析

將應用程式設定從 AD FS 對應至Microsoft Entra識別碼

移轉需要評估應用程式在內部部署設定的方式,然後將該設定對應至Microsoft Entra識別碼。 AD FS 和Microsoft Entra識別碼的運作方式類似,因此設定信任、登入和登出 URL 和識別碼的概念適用于這兩種情況。 記錄應用程式的 AD FS 組態設定,以便您可以輕鬆地在Microsoft Entra識別碼中加以設定。

對應應用程式的組態設定

下表描述 AD FS 信賴憑證者信任與 Microsoft Entra企業應用程式之間一些最常見的設定對應:

  • AD FS-尋找應用程式 AD FS 信賴憑證者信任中的設定。 以滑鼠右鍵按一下信賴憑證者,然後選取 [屬性]。
  • Microsoft Entra識別碼— 設定是在每個應用程式的 SSO 屬性Microsoft Entra系統管理中心內設定。
組態設定 AD FS 如何在Microsoft Entra識別碼中設定 SAML 權杖
應用程式登入 URL

在服務提供者所起始的 SAML 流程中,使用者用來登入應用程式的 URL (SP)。

N/A 從 SAML 型登入開啟基本 SAML 設定 N/A
應用程式回覆 URL

以識別提供者 (IdP) 觀點看待的應用程式 URL。 IdP 會在使用者登入 IdP 之後,將使用者和權杖傳送到此處。 這也稱為 SAML 判斷提示取用者端點

選取 [端點] 索引標籤 從 SAML 型登入開啟基本 SAML 設定 SAML 權杖中的 [目的地] 元素。 值範例: https://contoso.my.salesforce.com
應用程式登出 URL

這是使用者登出應用程式時,要將登出清除要求傳送至其中的 URL。 IdP 會傳送要求,以將使用者從其他所有應用程式登出。

選取 [端點] 索引標籤 從 SAML 型登入開啟基本 SAML 設定 N/A
應用程式識別碼

這是來自 IdP 觀點的應用程式識別碼。 登入 URL 值經常用於此識別碼 (但並不一定)。 ‎有時候,應用程式會將此稱為「實體識別碼」。

按一下 [識別碼] 索引標籤 從 SAML 型登入開啟基本 SAML 設定 對應到 SAML 權杖中的 [對象] 元素。
應用程式同盟中繼資料

這是應用程式的同盟中繼資料位置。 IdP 會使用此位置來自動更新特定組態設定,例如端點或加密憑證。

選取 [監控] 索引標籤 N/A。 Microsoft Entra識別碼不支援直接取用應用程式同盟中繼資料。 您可以手動匯入同盟中繼資料。 N/A
使用者識別碼/名稱識別碼

屬性,用來唯一指出應用程式從Microsoft Entra識別碼或 AD FS 的使用者身分識別。 ‎此屬性通常是 UPN 或使用者的電子郵件地址。

宣告規則。 在大部分情況下,宣告規則所發出的宣告會具有以 nameidentifier 結尾的類型。 您可以在標頭使用者屬性和宣告下找到識別碼。 預設會使用 UPN 地圖至 SAML 權杖中的 NameID 元素。
其他宣告

通常會從 IdP 傳送至應用程式的其他宣告資訊範例包括名字、姓氏、電子郵件地址和群組成員資格。

在 AD FS 中,您可以在信賴憑證者上的其他宣告規則中找到此項目。 您可以在標頭使用者屬性&宣告下找到識別碼。 選取 [檢視] 並編輯所有其他使用者屬性。 N/A

對應識別提供者 (IdP) 設定

將您的應用程式設定為指向MICROSOFT ENTRA識別碼與 AD FS for SSO。 在這裡,我們將著重於使用 SAML 通訊協定的 SaaS 應用程式。 不過,此概念也會延伸至自訂的企業營運應用程式。

注意

Microsoft Entra識別碼的組態值會遵循您的 Azure 租使用者識別碼取代 {tenant-id} 且應用程式識別碼取代 {application-id} 的模式。 您可以在Microsoft Entra系統管理中心[Microsoft Entra識別碼 > 屬性] 下找到此資訊:

  • 選取 [目錄識別碼] 以查看您的租用戶識別碼。
  • 選取 [應用程式識別碼] 以查看您的應用程式識別碼。

在高層級中,將下列重要的 SaaS 應用程式組態元素對應至Microsoft Entra識別碼。

元素 設定值
識別提供者簽發者 https://sts.windows.net/{tenant-id}/
識別提供者登入 URL https://login.microsoftonline.com/{tenant-id}/saml2
識別提供者登出 URL https://login.microsoftonline.com/{tenant-id}/saml2
同盟中繼資料位置 https://login.windows.net/{tenant-id}/federationmetadata/2007-06/federationmetadata.xml?appid={application-id}

針對 SaaS 應用程式對應 SSO 設定

SaaS 應用程式必須知道傳送驗證要求的位置,以及如何驗證所收到的權杖。 下表描述在應用程式中設定 SSO 設定的專案,以及其在 AD FS 和Microsoft Entra識別碼內的值或位置

組態設定 AD FS 如何在Microsoft Entra識別碼中設定
IdP 登入 URL

從應用程式的觀點 (使用者重新導向登入) 的 IdP 登入 URL。

AD FS 登入 URL 為 AD FS 同盟服務名稱後面加上 "/adfs/ls/"。

例如:https://fs.contoso.com/adfs/ls/

將 {tenant-id} 取代為您的租用戶識別碼。

‎針對使用 SAML-P 通訊協定的應用程式:https://login.microsoftonline.com/{tenant-id}/saml2

‎針對使用 WS-Federation 通訊協定的應用程式:https://login.microsoftonline.com/{tenant-id}/wsfed

IdP 登出 URL

以應用程式觀點看待的 IdP 登出 URL (使用者選擇登出應用程式時會被重新導向)。

登出 URL 與登入 URL 相同,或是附加 "wa=wsignout1.0" 的相同 URL。 例如:https://fs.contoso.com/adfs/ls/?wa=wsignout1.0 將 {tenant-id} 取代為您的租用戶識別碼。

針對使用 SAML-P 通訊協定的應用程式:

https://login.microsoftonline.com/{tenant-id}/saml2

‎針對使用 WS-Federation 通訊協定的應用程式:https://login.microsoftonline.com/common/wsfederation?wa=wsignout1.0

權杖簽署憑證

IdP 會使用憑證的私密金鑰來簽署已發行的權杖。 它會驗證權杖是否來自應用程式設定要信任的相同 IdP。

在 AD FS 管理的 [憑證] 之下可找到 AD FS 權杖簽署憑證。 在應用程式單一登入屬性的 [SAML 簽署憑證] 標頭底下,于Microsoft Entra系統管理中心中找到它。 您可以在該處下載憑證以便上傳至應用程式。

如果應用程式有多個憑證,您可以在同盟中繼資料 XML 檔案中找到所有的憑證。

識別碼/「簽發者」

以應用程式觀點看待的 IdP 識別碼 (有時稱為「簽發者識別碼」)。

‎在 SAML 權杖中,此值會顯示為 [簽發者] 元素。

AD FS 的識別碼通常是 AD FS 管理中 [服務]> [編輯同盟服務屬性] 之下的同盟服務識別碼。 例如:http://fs.contoso.com/adfs/services/trust 將 {tenant-id} 取代為您的租用戶識別碼。

https://sts.windows.net/{tenant-id}/

IdP 同盟中繼資料

IdP 的公開可用同盟中繼資料位置。 (有些應用程式會使用同盟中繼資料,作為系統管理員個別設定 URL、識別碼和權杖簽署憑證的替代方式)。

在 AD FS 管理的服務>端點>中繼資料>類型:同盟中繼資料下尋找 AD FS 同盟中繼資料 URL。 例如:https://fs.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml Microsoft Entra識別碼的對應值遵循模式 https://login.microsoftonline.com/{TenantDomainName}/FederationMetadata/2007-06/FederationMetadata.xml 。 {TenantDomainName} 的值會取代為您的租用戶名稱,格式為 "contoso.onmicrosoft.com."

如需詳細資訊,請參閱同盟中繼資料

下一步