Share via


使用應用程式 Proxy 對您的應用程式進行單一登錄的 Kerberos 限制委派

您可以為透過使用整合式 Windows 驗證 保護的應用程式 Proxy 所發行的內部部署應用程式提供單一登錄。 這些應用程式需要 Kerberos 票證才能進行存取。 應用程式 Proxy 會使用 Kerberos 限制委派 (KCD) 來支援這些應用程式。

若要深入瞭解單一登錄 (SSO),請參閱 什麼是單一登錄?

您可以使用整合式 Windows 驗證 (IWA) 來啟用應用程式的單一登錄,方法是在 Active Directory 中授與專用網連接器來模擬使用者的許可權。 連接器會使用此權限,來代表他們傳送和接收權杖。

使用 KCD 的單一登錄運作方式

此圖說明當使用者嘗試存取使用 IWA 的內部部署應用程式時,流程。

Microsoft Entra 驗證流程圖

  1. 使用者輸入 URL,以透過應用程式 Proxy 存取內部部署應用程式。
  2. 應用程式 Proxy 會將要求重新導向至 Microsoft Entra 驗證服務,以預先驗證。 目前,Microsoft Entra ID 只會套用適用的驗證和授權原則,例如多重要素驗證。 如果使用者通過驗證,則 Microsoft Entra 會建立權杖,並將其傳送給使用者。
  3. 用戶會將令牌傳遞至應用程式 Proxy。
  4. 應用程式 Proxy 會驗證令牌,並從中擷取用戶主體名稱(UPN),然後 連線 程式會透過雙重驗證的安全通道提取 UPN 和服務主體名稱(SPN)。
  5. 連線 or 會執行 Kerberos 限制委派 (KCD) 與內部部署 AD 交涉,模擬使用者取得應用程式的 Kerberos 令牌。
  6. Active Directory 會將應用程式的 Kerberos 權杖傳送給連接器。
  7. 連接器會使用接收自 AD 的 Kerberos 權杖,以將原始要求傳送給應用程式伺服器。
  8. 應用程式會將回應傳送至 連線 or,然後傳回至應用程式 Proxy 服務,最後傳回給使用者。

必要條件

開始使用 IWA 應用程式的單一登入之前,請確定您的環境已準備好使用下列設定和組態:

  • 您的應用程式 (例如 SharePoint Web 應用程式) 設定為使用整合式 Windows 驗證。 如需詳細資訊,請參閱 啟用 Kerberos 驗證支援,或針對 SharePoint,請參閱 在 SharePoint 2013 中規劃 Kerberos 驗證。
  • 您的所有應用程式都有 服務主體名稱
  • 執行 連線 或執行應用程式的伺服器已加入網域,且屬於相同網域或信任網域的一部分。 如需加入網域的詳細資訊,請參閱 將計算機加入網域
  • 執行連接器的伺服器具有存取權,可讀取使用者的 TokenGroupsGlobalAndUniversal 屬性。 此預設設定可能會受到安全性強化環境的影響。

設定 Active Directory

Active Directory 組態會根據您的專用網連接器和應用程式伺服器是否位於相同的網域而有所不同。

相同網域中的 連線 or 和應用程式伺服器

  1. 在 Active Directory 中,移至 [工具>使用者和計算機]。

  2. 選取執行連接器的伺服器。

  3. 以滑鼠右鍵按下並選取 [屬性>委派]。

  4. 選取 [信任這部計算機只委派至指定的服務]。

  5. 選取 [ 使用任何驗證通訊協定]。

  6. 在 [服務] 下 ,此帳戶可以呈現委派的認證 ,為應用程式伺服器的SPN身分識別新增值。 這可讓專用網連接器針對清單中定義的應用程式模擬 AD 中的使用者。

    連線 or-SVR 屬性視窗 螢幕快照

不同網域中的 連線 或應用程式伺服器

  1. 如需跨網域使用 KCD 的必要條件清單,請參閱 跨網域的 Kerberos 限制委派。

  2. principalsallowedtodelegateto使用 Web 應用程式的服務帳戶 (電腦或專用網域使用者帳戶) 的 屬性,從應用程式 Proxy(連接器)啟用 Kerberos 驗證委派。 應用程式伺服器正在 的內容 webserviceaccount 中執行,委派伺服器為 connectorcomputeraccount。 在的網域 webserviceaccount中,於域控制器上執行下列命令(執行 Windows Server 2012 R2 或更新版本)。 針對這兩個帳戶使用一般名稱(非 UPN)。

    webserviceaccount如果 是電腦帳戶,請使用下列命令:

    $connector= Get-ADComputer -Identity connectorcomputeraccount -server dc.connectordomain.com
    
    Set-ADComputer -Identity webserviceaccount -PrincipalsAllowedToDelegateToAccount $connector
    
    Get-ADComputer webserviceaccount -Properties PrincipalsAllowedToDelegateToAccount
    

    webserviceaccount如果 是使用者帳戶,請使用下列命令:

    $connector= Get-ADComputer -Identity connectorcomputeraccount -server dc.connectordomain.com
    
    Set-ADUser -Identity webserviceaccount -PrincipalsAllowedToDelegateToAccount $connector
    
    Get-ADUser webserviceaccount -Properties PrincipalsAllowedToDelegateToAccount
    

設定單一登入

  1. 根據使用應用程式 Proxy 發佈應用程式中所述的指示發佈應用程式。 請務必選取 [Microsoft Entra 標識符 ] 作為 [預先驗證方法]。

  2. 應用程式出現在企業應用程式清單中之後,請加以選取,然後按兩下 [ 單一登錄]。

  3. 將單一登錄模式設定為 [整合式 Windows 驗證]。

  4. 輸入應用程式伺服器的內部應用程式 SPN。 在這裡範例中,已發佈應用程式的 SPN 是 http/www.contoso.com。 此 SPN 必須位於連接器可以呈現委派認證的服務清單中。

  5. 選擇連接器的委派登入身分識別,以代表您的使用者使用。 如需詳細資訊,請參閱 使用不同的內部部署和雲端身分識別

    進階應用程式組態

非 Windows 應用程式的 SSO

Microsoft Entra 應用程式 Proxy 中的 Kerberos 委派流程會在 Microsoft Entra 驗證雲端中的用戶時啟動。 要求抵達內部部署后,Microsoft Entra 專用網連接器會與本機 Active Directory 互動,代表用戶發出 Kerberos 票證。 此程序稱為 Kerberos 限制委派 (KCD)。

在下一個階段中,系統會使用此 Kerberos 票證將要求傳送至後端應用程式。

有數個機制可定義如何在這類要求中傳送 Kerberos 票證。 大多數非 Windows 伺服器預期會以 SPNEGO 令牌的形式接收它。 Microsoft Entra 應用程式 Proxy 支援此機制,但預設為停用。 連接器可以針對SPNEGO或標準 Kerberos 令牌進行設定,但不能同時設定兩者。

如果您為 SPNEGO 設定連接器電腦,請確定該 連線 or 群組中的所有其他連接器也會使用 SPNEGO 進行設定。 預期標準 Kerberos 令牌的應用程式應該透過未針對 SPNEGO 設定的其他連接器路由傳送。 某些 Web 應用程式接受這兩種格式,而不需要進行任何設定變更。

若要啟用 SPNEGO:

  1. 開啟以系統管理員身分執行的命令提示字元。

  2. 在命令提示字元中,在需要SPNEGO的連接器伺服器上執行下列命令。

    REG ADD "HKLM\SOFTWARE\Microsoft\Microsoft Entra private network connector" /v UseSpnegoAuthentication /t REG_DWORD /d 1
    net stop WAPCSvc & net start WAPCSvc
    

非 Windows 應用程式通常是使用者名稱或 SAM 帳戶名稱,而不是網域電子郵件位址。 如果這種情況適用於您的應用程式,您必須設定委派的登入身分識別欄位,將雲端身分識別連線到您的應用程式身分識別。

使用不同的內部部署和雲端身分識別

應用程式 Proxy 假設使用者在雲端和內部部署中擁有完全相同的身分識別。 但在某些環境中,由於公司原則或應用程式相依性,組織可能必須使用替代標識符進行登入。 在這種情況下,您仍然可以使用 KCD 進行單一登錄。 設定每個應用程式的委派登入身分識別,以指定執行單一登錄時應該使用哪個身分識別。

這項功能可讓許多具有不同內部部署和雲端身分識別的組織,讓SSO 從雲端到內部部署應用程式,而不需要使用者輸入不同的使用者名稱和密碼。 這包括下列組織:

  • 在內部有多個網域 (joe@us.contoso.com, joe@eu.contoso.com) 和雲端中的單一網域(joe@contoso.com)。
  • 在內部有不可路由的功能變數名稱 (joe@contoso.usa) 和雲端中的合法功能變數名稱。
  • 請勿在內部使用功能變數名稱(joe)
  • 在內部部署和雲端中使用不同的別名。 例如, joe-johns@contoso.com 與 joej@contoso.com

透過應用程式 Proxy,您可以選取要用來取得 Kerberos 票證的身分識別。 這個設定是每個應用程式。 其中有些選項適用於不接受電子郵件位址格式的系統,其他選項則設計為替代登入。

委派的登入識別參數螢幕快照

如果使用委派的登入身分識別,則值在組織中所有網域或樹系中可能不是唯一的。 您可以使用兩個不同的 連線 或群組來發行這些應用程式兩次,以避免此問題。 由於每個應用程式都有不同的用戶物件,因此您可以將其 連線 者加入不同的網域。

如果 內部部署 SAM 帳戶名稱 用於登入身分識別,則裝載連接器的電腦必須新增至用戶帳戶所在的網域。

設定不同身分識別的 SSO

  1. 設定 Microsoft Entra 連線 設定,讓主要身分識別是電子郵件地址(郵件)。 這會在自定義程式中完成,方法是在同步設定中變更 [用戶主體名稱 ] 字段。 這些設定也會決定使用者如何登入 Microsoft 365、Windows 計算機,以及其他使用 Microsoft Entra ID 作為其身分識別存放區的應用程式。
    識別用戶螢幕快照 - 用戶主體名稱下拉式清單

  2. 在您想要修改之應用程式的 [應用程式組態] 設定中,選取 要使用的委派登入身 分識別:

    • 使用者主體名稱 (例如, joe@contoso.com
    • 替代使用者主體名稱 (例如 joed@contoso.local, )
    • 使用者主體名稱的使用者名稱部分 (例如, joe
    • 替代使用者主體名稱的使用者名稱部分 (例如, joed
    • 內部部署 SAM 帳戶名稱 (取決於網域控制器組態)

針對不同身分識別的 SSO 進行疑難解答

如果 SSO 程式中發生錯誤,它會出現在連接器電腦事件記錄檔中,如疑難解答中所述。 但是,在某些情況下,要求會成功傳送至後端應用程式,而此應用程式會以各種其他 HTTP 回應回復。 針對這些案例進行疑難解答應該從在應用程式 Proxy 工作階段事件記錄檔中的連接器電腦上檢查事件號碼 24029 開始。 用於委派的使用者身分識別會出現在事件詳細數據內的 [使用者] 字段中。 若要開啟會話記錄,請選取 [事件查看器檢視] 功能表中的 [顯示分析和偵錯記錄 ]。

下一步