共用方式為


使用 gx64krb5 將 Kerberos 用於 SAP BW 的單一登入 (SSO)

本文說明如何使用 gx64krb5,設定 SAP Business Warehouse (BW) 數據源,以從 Power BI 服務 啟用單一登錄(SSO)。

重要

Microsoft可讓您使用安全網路通訊 (SNC) 連結庫建立連線(例如 gx64krb5),但不會提供這些設定的支援。 此外,SAP 不再支援 Power BI 中內部部署資料閘道的 gx64krb5,與 CommonCryptoLib 相比,為閘道設定它所需的步驟要複雜得多。 因此,Microsoft 建議改用 CommonCryptoLib。 如需詳細資訊,請參閱 SAP Note 352295 (SAP 附註 352295)。 請注意,gx64krb5.dll 不允許從資料閘道到 SAP BW 訊息伺服器的 SSO 連線;其只能連線到 SAP BW 應用程式伺服器。 如果您使用 CommonCryptoLib 作為 SNC 程式庫,則不會有這個限制。 如需如何使用 CommonCryptoLib 設定 SSO 的資訊,請參閱使用 CommonCryptoLib 針對 SSO 設定 SAP BW。 您可使用 CommonCryptoLib「或」gx64krb5 作為 SNC 程式庫,但請勿同時使用。 請勿同時完成這兩個程式庫的設定步驟。

注意

在同一個閘道伺服器上設定這兩個程式庫 (sapcrypto 和 gx64krb5) 是不受支援的案例。 不建議在同一個閘道伺服器上設定這兩個程式庫,因為這會導致程式庫的混合。 如果您想要同時使用這兩個程式庫,請完全分離閘道伺服器。 例如,為伺服器 A 設定 gx64krb5,然後為伺服器 B 設定 sapcrypto。請記住,不支援使用 gx64krb5 的伺服器 A 上發生任何失敗,因為 SAP 和 Microsoft 不再支援 gx64krb5。

本指南是完整的;如果您已經完成一些所述的步驟,則可予以略過。 例如,您可能已經使用 gx64krb5 為 SSO 設定了您的 SAP BW 伺服器。

在閘道電腦和 SAP BW 伺服器上設定 gx64krb5

用戶端和伺服器都必須使用 gx64krb5 程式庫才能透過閘道完成 SSO 連線。 亦即,用戶端和伺服器都必須使用相同的 SNC 程式庫。

  1. SAP Note 2115486 下載 gx64krb5.dll (需要 SAP S 使用者)。 請確認您具備 1.0.11.x 以上的版本。 此外,如果您想要先在 SAP GUI 中測試 SSO 連線,再嘗試透過閘道的 SSO 連線,則建議下載 gsskrb5.dll (32 位元版本的程式庫)。 需要 32 位元版本才能使用 SAP GUI 進行測試,因為 SAP GUI 只有 32 位元版本。

  2. 將 gx64krb5.dll 放在閘道電腦上可由閘道服務使用者存取的位置。 如果您想要使用 SAP GUI 來測試 SSO 連線,請同時在電腦上放置 gsskrb5.dll 的複本,並將 SNC_LIB 環境變數設定為指向該位置。 閘道服務使用者和服務使用者將模擬的 Active Directory (AD) 使用者都需要 gx64krb5.dll 複本讀取和執行權限。 我們建議將 .dll 的權限授與 [已驗證的使用者] 群組。 為了進行測試,您也可以明確地將這些許可權授與閘道服務使用者,以及您用來測試的 AD 使用者。

  3. 如果您的 BW 伺服器尚未設定好使用 gx64krb5 進行 SSO,請將此 .dll 的另一個複本放在 SAP BW 伺服器電腦上 SAP BW 伺服器可存取位置中。

    如需設定 gx64krb5.dll 以與 SAP BW 伺服器搭配使用的詳細資訊,請參閱 SAP 文件 (需要 SAP S 使用者)。

  4. 在用戶端和伺服器電腦上,設定 SNC_LIBSNC_LIB_64 環境變數:

    • 如果您使用 gsskrb5.dll,請將 SNC_LIB 變數設定為其絕對路徑。
    • 如果您使用 gx64krb5.dll,請將 SNC_LIB_64 變數設定為其絕對路徑。

設定 SAP BW 服務使用者,並在 BW 伺服器上啟用 SNC 通訊

如果您尚未設定 SAP BW 伺服器以使用 gx64krb5 進行 SNC 通訊 (例如 SSO),請完成本節。

注意

本節假設您已經建立 BW 的服務使用者,並將適當的 SPN 繫結到該使用者 (亦即,以 SAP/ 開頭的名稱)。

  1. 授與服務使用者對 SAP BW 應用程式伺服器的存取權:

    1. 在 SAP BW 伺服器電腦上,將服務使用者新增至本機系統管理員群組。 開啟 [電腦管理] 程式,然後找出您伺服器的本機系統管理員群組。

      [電腦管理] 程式

    2. 按兩下 [本機系統管理員] 群組,然後選取 [新增 ] 將服務使用者新增至群組。

    3. 選取 [檢查名稱] 來確保已正確輸入名稱,然後選取 [確定]

  2. 將 SAP BW 伺服器服務使用者設定為在 SAP BW 伺服器電腦上啟動 SAP BW 伺服器服務的使用者:

    1. 開啟 [執行],然後輸入 Services.msc

    2. 尋找對應到 SAP BW 應用程式伺服器執行個體的服務、以滑鼠右鍵按一下,然後選取 [屬性]

      服務的螢幕擷取畫面,其中已醒目提示 [屬性]

    3. 切換至 [ 登入] 索引 標籤,並將使用者變更為您的 SAP BW 服務使用者。

    4. 輸入使用者的密碼,然後選取 [ 確定]。

  3. 在 SAP 登入中登入您的伺服器,並使用 RZ10 交易來設定下列設定檔參數:

    1. snc/identity/as 設定檔參數設定為 p:<您剛剛建立的 SAP BW 服務使用者>。 例如,p:BWServiceUser@MYDOMAIN.COM。 請注意, p: 前面是服務用戶的用戶主體名稱 (UPN),而不是 p:CN=,當您使用 CommonCryptoLib 做為 SNC 連結庫時,該名稱在 UPN 前面。

    2. snc/gssapi_lib 設定檔參數設定為 <BW 伺服器上 gx64krb5.dll 的路徑>。 將程式庫放在 SAP BW 應用程式伺服器可以存取的位置。

    3. 設定下列其他設定檔參數,並根據您的需要來變更值。 最後五個選項可讓用戶端無須設定 SNC 即可使用 SAP 登入連線至 SAP BW 伺服器。

      設定
      snc/data_protection/max 3
      snc/data_protection/min 1
      snc/data_protection/use 9
      snc/accept_insecure_cpic 1
      snc/accept_insecure_gui 1
      snc/accept_insecure_r3int_rfc 1
      snc/accept_insecure_rfc 1
      snc/permit_insecure_start 1
    4. snc/enable 屬性設定為 1。

  4. 設定這些設定檔參數之後,請在伺服器電腦上開啟 SAP 管理主控台並重新啟動 SAP BW 執行個體。

    如果伺服器無法啟動,請確認設定檔參數已正確設定。 如需設定檔參數設定的詳細資訊,請參閱 SAP documentation (SAP 文件)。 您也可以參閱本文中的疑難排解一節。

將 SAP BW 使用者對應至 Active Directory 使用者

如果您尚未這麼做,請將AD用戶對應至SAP BW應用程式伺服器使用者,並在SAP登入中測試SSO連線。

  1. 使用 SAP 登入來登入您的 SAP BW 伺服器。 執行交易 SU01。

  2. 針對 [使用者],輸入您要為其啟用 SSO 連線的 SAP BW 使用者。 選取 SAP 登入視窗左上角附近的編輯圖示 (畫筆圖示)。

    SAP BW [使用者維護] 畫面

  3. 選取 [SNC] 索引標籤。在 SNC 名稱輸入方塊中,輸入 p:<您的 Active Directory 使用者>@<您的網域>。 針對SNC名稱, p: 必須位於AD使用者的UPN之前。 請注意,UPN 會區分大小寫。

    您指定的 AD 使用者應該屬於您想要啟用 SAP BW 應用程式伺服器的 SSO 存取權的人員或組織。 例如,如果您要為使用者 testuser@TESTDOMAIN.COM 啟用 SSO 存取權,請輸入 p:testuser@TESTDOMAIN.COM

    SAP BW [維護使用者] 畫面

  4. 選取畫面左上角附近的儲存圖示 (磁碟片影像)。

測試透過 SSO 登入

確認您可以使用 SAP 登入透過 SSO 登入伺服器,作為您已啟用 SSO 存取權的 AD 使用者:

  1. 身為剛啟用 SSO 存取權的 AD 使用者,登入您網域中已安裝 SAP 登入的電腦。 啟動 SAP 登入,並建立新的連線。

  2. 將您稍早下載的gsskrb5.dll檔案複製到您登入的電腦上的位置。 將 SNC_LIB 環境變數設定為這個位置的絕對路徑。

  3. 啟動SAP登入並建立新的連線。

  4. 在 [Create New System Entry] \(建立新的系統項目\) 畫面中,選取 [User Specified System] \(使用者指定的系統\),然後選取 [下一步]

    [Create New System Entry] \(建立新的系統項目\) 畫面

  5. 在下一個畫面填入適當的詳細資料,包括應用程式伺服器、執行個體數目以及系統識別碼。 然後,選取 [完成]

  6. 以滑鼠右鍵按一下新的連線、選取 [屬性],然後選取 [網路] 索引標籤。

  7. 在 [SNC Name] \(SNC 名稱\) 方塊中,輸入 p:<SAP BW 服務使用者的 UPN>。 例如,p:BWServiceUser@MYDOMAIN.COM。 選取 [確定]。

    [System Entry Properties] \(系統項目屬性\) 畫面

  8. 按兩下您剛才建立的連線,以嘗試與 SAP BW 伺服器建立 SSO 連線。

    如果連線成功,請繼續下一節。 如果未成功,請檢閱此文件中先前的步驟,確定這些步驟已正確完成,或檢閱疑難排解一節。 如果您在此內容中無法透過 SSO 連線至 SAP BW 伺服器,則無法在閘道內容中使用 SSO 連線至 SAP BW 伺服器。

新增登錄項目至閘道電腦

將所需登錄項目新增至閘道安裝所在電腦的登錄中,同時安裝至 Power BI Desktop 所要連線的電腦上。 若要新增這些登錄項目,請執行下列命令:

  • REG ADD HKLM\SOFTWARE\Wow6432Node\SAP\gsskrb5 /v ForceIniCredOK /t REG_DWORD /d 1 /f

  • REG ADD HKLM\SOFTWARE\SAP\gsskrb5 /v ForceIniCredOK /t REG_DWORD /d 1 /f

將新的 SAP BW 應用程式伺服器資料來源新增至 Power BI 服務,或編輯現有的資料來源

  1. 在資料來源設定視窗中,輸入 SAP BW 應用程式伺服器的 [主機名稱]、[系統編號] 和 [用戶端識別碼],如同您用來從 Power BI Desktop 登入 SAP BW 伺服器的資訊。

  2. 在 [SNC 合作夥伴名稱] 欄位中,輸入 p:<您對應至 SAP BW 服務使用者的 SPN>。 例如,如果 SPN 是 SAP/BWServiceUser@MYDOMAIN.COM,請在 [SNC 合作夥伴名稱] 欄位中輸入 p:SAP/BWServiceUser@MYDOMAIN.COM

  3. 對於 SNC 程式庫,選取 [自訂 選項,並提供閘道電腦上 GX64KRB5.DLL 或 GSSKRB5.DLL 的絕對路徑。

  4. 選取 [Use SSO via Kerberos for DirectQuery queries] \(透過 Kerberos 使用 SSO 進行 DirectQuery 查詢),然後選取 [套用]。 如果測試連線不成功,請確認已正確完成先前的安裝和設定步驟。

  5. 執行 Power BI 報表

疑難排解

針對 gx64krb5 設定進行疑難排解

如果您遇到下列任何問題,請遵循下列步驟針對 gx64krb5 安裝和 SSO 連線進行疑難排解:

  • 完成 gx64krb5 設定步驟時遇到錯誤。 例如,變更設定檔參數之後,SAP BW 伺服器無法啟動。 檢視伺服器記錄檔 (伺服器電腦上的 …work\dev_w0) 來針對這些錯誤進行疑難排解。

  • 因為登入失敗,所以無法啟動 SAP BW 服務。 設定 SAP BW start-as 使用者時,可能提供了錯誤的密碼。 以AD環境中電腦上的SAP BW服務使用者身分登入來驗證密碼。

  • 您會收到基礎數據源認證的錯誤(例如 SQL Server),這可防止伺服器啟動。 確認您已將 SAP BW 資料庫的存取權授與服務使用者。

  • 您可能會收到下列訊息:「(GSS-API) 指定的目標未知或無法存取」。 這個錯誤通常表示指定了錯誤的 SNC 名稱。 在用戶端應用程式中,在服務使用者的 UPN 前面,請務必只使用 p:,而不要使用 p:CN=

  • 您可能會收到下列訊息:「(GSS-API) 提供了無效的名稱」。 確認 p: 是伺服器 SNC 身分識別設定檔參數的值。

  • 您可能會收到下列訊息:「(SNC 錯誤) 無法找到指定的模組」。 這個錯誤通常是因為將 gx64krb5.dll 放在需要提高權限 (../管理員權限) 才能存取的位置而導致的。

針對閘道連線問題進行疑難排解

  1. 檢查閘道記錄。 開啟閘道組態應用程式,然後選取 [診斷],然後選取 [匯出記錄]。 最新錯誤會在您檢查的任何記錄檔結尾。

    [內部部署的資料閘道] 應用程式,其中已醒目提示診斷

  2. 開啟 SAP BW 追蹤並檢閱產生的記錄檔。 有許多不同類型的 SAP BW 追蹤可供使用 (例如 CPIC 追蹤):

    a. 若要啟用 CPIC 追蹤,請設定兩個環境變數:CPIC_TRACECPIC_TRACE_DIR

    第一個變數會設定追蹤層級,第二個變數則會設定追蹤檔案目錄。 此目錄必須是 [已驗證的使用者] 群組成員可以寫入其中的位置。

    b. 將 CPIC_TRACE 設為 3,並將 CPIC_TRACE_DIR 設為要將追蹤檔寫入其中的任何目錄。 例如:

    CPIC 追蹤

    c. 重現問題,並確定 CPIC_TRACE_DIR 包含追蹤檔。

    d. 檢查追蹤檔案的內容,以判斷執行問題。 例如,您可能會發現gx64krb5.dll未正確載入,或 AD 使用者與您預期的 SSO 連線嘗試不同。

如需內部部署資料閘道和 DirectQuery 的詳細資訊,請參閱下列資源: