共用方式為


教學課程:將 Microsoft Entra 單一登入 (SSO) 與 SAP NetWeaver 整合

在本教學課程中,您會了解如何將 SAP NetWeaver 與 Microsoft Entra ID 整合。 將 SAP NetWeaver 與 Microsoft Entra ID 整合時,您可以:

  • 在 Microsoft Entra ID 中控制可存取 SAP NetWeaver 的人員。
  • 讓使用者使用其 Microsoft Entra 帳戶自動登入 SAP NetWeaver。
  • 在一個集中式位置管理您的帳戶。

必要條件

若要開始使用,您需要下列項目:

  • Microsoft Entra 訂用帳戶。 如果您沒有訂用帳戶,可以取得免費帳戶
  • 啟用 SAP NetWeaver 單一登入 (SSO) 的訂用帳戶。
  • SAP NetWeaver V7.20 或更新版本

案例描述

  • SAP NetWeaver 支援 SAML (SP 起始的 SSO) 和 OAuth。 在本教學課程中,您會在測試環境中設定及測試 Microsoft Entra SSO。

注意

此應用程式的識別碼是固定的字串值,因此一個租用戶中只能設定一個執行個體。

注意

依據您的組織需求,以 SAML 或 OAuth 設定應用程式。

若要設定 SAP NetWeaver 與 Microsoft Entra ID 整合,您需要從資源庫將 SAP NetWeaver 新增到受控 SaaS 應用程式清單中。

  1. 以至少 雲端應用程式系統管理員 的身分登入 Microsoft Entra 系統管理中心
  2. 瀏覽至 [身分識別] > [應用程式] > [企業應用程式] > [新增應用程式]
  3. 在 [從資源庫新增] 區段的搜尋方塊中輸入 SAP NetWeaver
  4. 從結果面板選取 [SAP NetWeaver],然後新增應用程式。 將應用程式新增至您的租用戶時,請稍候幾秒鐘。

或者,您也可以使用企業應用程式組態精靈。 在此精靈中,您可以將應用程式新增至租用戶、將使用者/群組新增至應用程式、指派角色,以及逐步進行 SSO 設定。 深入了解 Microsoft 365 精靈。

設定及測試適用於 SAP NetWeaver 的 Microsoft Entra SSO

以名為 B.Simon 的測試使用者,設定及測試使用 SAP NetWeaver 的 Microsoft Entra SSO。 若要讓 SSO 能夠運作,您必須建立 Microsoft Entra 使用者與 SAP NetWeaver 中相關使用者之間的連結關聯性。

若要設定及測試使用 SAP NetWeaver 的 Microsoft Entra SSO,請執行下列步驟:

  1. 設定 Microsoft Entra SSO,讓您的使用者使用此功能。
    1. 建立 Microsoft Entra 測試使用者,以使用 B.Simon 測試 Microsoft Entra 單一登入。
    2. 指派 Microsoft Entra 測試使用者,以允許 B.Simon 使用 Microsoft Entra 單一登入。
  2. 使用 SAML 設定 SAP NetWeaver,以在應用程式端設定 SSO 設定。
    1. 建立 SAP NetWeaver 測試使用者,使 SAP NetWeaver 中 B.Simon 的對應身分連結到該使用者在 Microsoft Entra 中的代表身分。
  3. 測試 SSO,以驗證組態是否能運作。
  4. 設定適用於 OAuth 的 SAP NetWeaver在應用程式端設定 OAuth 設定。
  5. 從 Azure AD 要求存取令牌,以使用 Azure AD 作為識別提供者(IdP)。

設定 Microsoft Entra SSO

在本節中,您會啟用 Microsoft Entra 單一登入。

若要使用 SAP NetWeaver 設定 Microsoft Entra 單一登入,請執行下列步驟:

  1. 開啟新的 Web 瀏覽器視窗,以系統管理員身分登入您的 SAP NetWeaver 公司網站

  2. 確定 httphttps 服務為作用中,並已在 SMICM T-Code 中指派適當的連接埠。

  3. 登入 SAP 系統 (T01) 的商務用戶端 (需要 SSO),並啟用 HTTP 安全性工作階段管理。

    1. 移至交易代碼 SICF_SESSIONS。 它會顯示所有相關的設定檔參數以及目前的值。 如下所示:

      login/create_sso2_ticket = 2
      login/accept_sso2_ticket = 1
      login/ticketcache_entries_max = 1000
      login/ticketcache_off = 0  login/ticket_only_by_https = 0 
      icf/set_HTTPonly_flag_on_cookies = 3
      icf/user_recheck = 0  http/security_session_timeout = 1800
      http/security_context_cache_size = 2500
      rdisp/plugin_auto_logout = 1800
      rdisp/autothtime = 60
      

      注意

      依照貴組織的需求來調整上述參數。這裡所提供的上述參數僅作為指示。

    2. 如果需要調整參數,在 SAP 系統的執行個體/預設設定檔中,重新啟動 SAP 系統。

    3. 在相關用戶端上按兩下,以啟用 HTTP 安全性工作階段。

      HTTP 安全性工作階段

    4. 啟用以下 SICF 服務:

      /sap/public/bc/sec/saml2
      /sap/public/bc/sec/cdc_ext_service
      /sap/bc/webdynpro/sap/saml2
      /sap/bc/webdynpro/sap/sec_diag_tool (This is only to enable / disable trace)
      
  4. 在 SAP 系統 [T01/122] 的商務用戶端中,移至交易代碼 SAML2。 它會在瀏覽器中開啟使用者介面。 在此範例中,我們假設 122 為 SAP 商務用戶端。

    交易代碼

  5. 提供您的使用者名稱和密碼以在使用者介面中輸入,然後按一下 [編輯]

    使用者名稱和密碼

  6. 將 [提供者名稱] 從 T01122 取代為 http://T01122,然後按一下 [儲存]

    注意

    根據預設,提供者名稱格式為 <sid><client>,但 Microsoft Entra ID 預期該名稱的格式為 <protocol>://<name>,因此建議將提供者名稱保持為 https://<sid><client>,以允許在 Microsoft Entra ID 中設定多個 SAP NetWeaver ABAP 引擎。

    多個 SAP NetWeaver ABAP 引擎

  7. 產生服務提供者中繼資料:在 SAML 2.0 使用者介面上設定好 [本機提供者][信任的提供者] 設定後,下一個步驟是產生服務提供者的中繼資料檔案 (其中包含 SAP 中的所有設定、驗證內容和其他組態)。 產生此檔案之後,請將此檔案上傳至 Microsoft Entra ID。

    產生服務提供者中繼資料

    1. 移至 [本機提供者] 索引標籤。

    2. 按一下 [中繼資料]

    3. 在電腦上儲存產生的 [中繼資料 XML 檔案],然後在 [基本 SAML 設定] 區段中上傳該檔案,以在 Azure 入口網站中自動填入 [識別碼] 和 [回覆 URL] 值。

遵循下列步驟來啟用 Microsoft Entra SSO。

  1. 以至少 雲端應用程式系統管理員 的身分登入 Microsoft Entra 系統管理中心

  2. 瀏覽至 [身分識別]>[應用程式]>[企業應用程式]>[SAP NetWeaver] 應用程式整合頁面,尋找 [管理] 區段,並選取 [單一登入]

  3. 在 [選取單一登入方法] 頁面上,選取 [SAML]

  4. 在 [以 SAML 設定單一登入] 頁面上,按一下 [基本 SAML 設定] 的鉛筆圖示,以編輯設定。

    編輯基本 SAML 組態

  5. 在 [基本 SAML 設定] 區段上,如果您想要以 IDP 起始模式設定應用程式,請執行下列步驟:

    1. 按一下 [上傳中繼資料檔案],上傳您稍早取得的 [服務提供者中繼資料檔案]

    2. 按一下資料夾圖示以選取中繼資料檔案,然後按一下 [上傳]

    3. 當中繼資料檔案成功上傳後,會自動在 [基本 SAML 設定] 區段文字方塊中填入 [識別碼] 及 [回覆 URL] 值,如下所示:

    4. 在 [登入 URL] 文字方塊中,以下列模式輸入 URL︰https://<your company instance of SAP NetWeaver>

    注意

    某些客戶遇到錯誤,指出我們為其執行個體設定的回覆 URL 不正確。 如果您收到任何這類錯誤,請使用這些 PowerShell 命令。 請先使用回覆 URL 更新應用程式物件中的回覆 URL,然後更新服務主體。 使用 Get-MgServicePrincipal 來取得服務主體識別碼和值。

    $params = @{
       web = @{
          redirectUris = "<Your Correct Reply URL>"
       }
    }
    Update-MgApplication -ApplicationId "<Application ID>" -BodyParameter $params
    Update-MgServicePrincipal -ServicePrincipalId "<Service Principal ID>" -ReplyUrls "<Your Correct Reply URL>"
    
  6. SAP NetWeaver 應用程式需要特定格式的 SAML 判斷提示,因此您必須將自訂屬性對應加入 SAML 權杖屬性組態。 下列螢幕擷取畫面顯示預設屬性的清單。 按一下 [編輯] 圖示以開啟 [使用者屬性] 對話方塊。

    編輯屬性

  7. 在 [使用者屬性] 對話方塊的 [使用者宣告] 區段中,如上圖所示設定 SAML 權杖屬性,然後執行下列步驟:

    1. 按一下 [編輯] 圖示以開啟 [管理使用者宣告] 對話方塊。

      編輯圖示

      image

    2. 從 [轉換] 清單中,選取 [ExtractMailPrefix()]

    3. 從 [參數 1] 清單中,選取 [user.userprincipalname]

    4. 按一下 [檔案] 。

  8. 在 [以 SAML 設定單一登入] 頁面上的 [SAML 簽署憑證] 區段中,尋找 [同盟中繼資料 XML],然後選取 [下載] 來下載憑證,並將其儲存在電腦上。

    憑證下載連結

  9. [設定 SAP NetWeaver] 區段上,依據您的需求複製適當的 URL。

    複製組態 URL

建立 Microsoft Entra 測試使用者

在本節中,您將建立名為 B.Simon 的測試使用者。

  1. 以至少是使用者管理員的身分登入 Microsoft Entra 系統管理中心
  2. 瀏覽至 [身分識別]>[使用者]>[所有使用者]。
  3. 在畫面頂端選取 [新增使用者]>[建立新使用者]
  4. 在 [使用者] 屬性中,執行下列步驟:
    1. 在 [顯示名稱] 欄位中輸入 B.Simon
    2. 在 [使用者主體名稱] 欄位中輸入 username@companydomain.extension。 例如: B.Simon@contoso.com
    3. 選取 [顯示密碼] 核取方塊,然後記下 [密碼] 方塊中顯示的值。
    4. 選取 [檢閱 + 建立]
  5. 選取 [建立]

指派 Microsoft Entra 測試使用者

在本節中,您會將 SAP NetWeaver 的存取權授與 B.Simon,讓她能夠使用單一登入。

  1. 以至少 雲端應用程式系統管理員 的身分登入 Microsoft Entra 系統管理中心
  2. 瀏覽至 [身分識別]>[應用程式]>[企業應用程式]>[SAP NetWeaver]
  3. 在應用程式的概觀頁面中尋找 [管理] 區段,然後選取 [使用者和群組]
  4. 選取 [新增使用者],然後在 [新增指派] 對話方塊中選取 [使用者和群組]
  5. 在 [使用者和群組] 對話方塊中,從 [使用者] 列表中選取 [B.Simon],然後按一下畫面底部的 [選取] 按鈕。 如果您預期將角色指派給使用者,則可以從 [選取角色] 下拉式清單中選取該角色。 如果未為此應用程式設定任何角色,您會看到已選取 [預設存取權] 角色。
  6. 在 [新增指派] 對話方塊中,按一下 [指派] 按鈕。

使用 SAML 設定 SAP NetWeaver

  1. 登入 SAP 系統並移至交易程式碼 SAML2。 它會開啟包含 SAML 組態畫面的新瀏覽器視窗。

  2. 若要設定信任的識別提供者 (Microsoft Entra ID) 的端點,請移至 [信任的提供者] 索引標籤。

    設定單一登入受信任的提供者

  3. 按下 [新增],然後從操作功能表中選取 [上傳中繼資料檔案]

    設定單一登入 2

  4. 上傳您下載的中繼資料檔案。

    設定單一登入 3

  5. 在下一個畫面中輸入別名名稱。 例如,輸入 aadsts,然後按 [下一步] 繼續。

    設定單一登入 4

  6. 確定 [摘要演算法] 應該是 SHA-256,而不需要任何變更,並且按 [下一步]

    設定單一登入 5

  7. 在 [單一登入端點] 上,使用 [HTTP POST] 並且按 [下一步] 繼續。

    設定單一登入 6

  8. 在 [單一登入端點] 上,選取 [HTTPRedirect] 並且按 [下一步] 繼續。

    設定單一登入 7

  9. 在 [成品端點],按 [下一步] 繼續。

    設定單一登入 8

  10. 在 [驗證需求] 上,按一下 [完成]

    設定單一登入 9

  11. 移至 [信任的提供者] 索引標籤>[識別身分同盟] (位於畫面底部)。 按一下 [編輯]

    設定單一登入 10

  12. 按一下 [識別身分同盟] 索引標籤 (視窗底部) 之下的 [新增]

    設定單一登入 11

  13. 在快顯視窗中,從 [支援的 NameID 格式] 中選取 [未指定],然後按一下 [確定]。

    設定單一登入 12

  14. 提供使用者識別碼來源值作為判斷提示屬性,並提供使用者識別碼對應模式值作為電子郵件,且判斷提示屬性名稱作為 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

    設定單一登入

  15. 請注意,[使用者識別碼來源][使用者識別碼對應模式] 值會決定 SAP 使用者與 Microsoft Entra 宣告之間的連結。

案例 1:SAP 使用者 Microsoft Entra 使用者對應。

  1. SAP 的 NameID 詳細資料螢幕擷取畫面。

    設定單一登入 13

  2. 提及 Microsoft Entra ID 必要宣告的螢幕擷取畫面。

    設定單一登入 14

    案例:根據在 SU01 中設定的電子郵件地址選取 SAP 使用者識別碼。 在此情況下,應針對每位需要 SSO 的使用者在 su01 中設定電子郵件識別碼。

    1. SAP 的 NameID 詳細資料螢幕擷取畫面。

      設定單一登入 15

    2. 提及 Microsoft Entra ID 必要宣告的螢幕擷取畫面。

    設定單一登入 16

  3. 按一下 [儲存],然後按一下 [啟用] 以啟用識別提供者。

    設定單一登入 17

  4. 出現提示時,按一下 [確定]

    設定單一登入 18

建立 SAP NetWeaver 測試使用者

在本節中,您要在 SAP NetWeaver 中建立名為 B.simon 的使用者。 請與您內部的 SAP 專家小組合作,或與貴組織的 SAP 夥伴合作,在 SAP NetWeaver 平台中新增使用者。

測試 SSO

  1. 啟用識別提供者 Microsoft Entra ID 後,請嘗試存取下列 URL 來檢查 SSO,確保不會出現輸入使用者名稱和密碼的提示。

    https://<sapurl>/sap/bc/bsp/sap/it00/default.htm

    (或) 使用下列 URL

    https://<sapurl>/sap/bc/bsp/sap/it00/default.htm

    注意

    以實際的 SAP 主機名稱取代 sapurl。

  2. 上述 URL 應會帶您前往以下所述的畫面。 如果您能夠連到以下頁面,就表示 Microsoft Entra SSO 成功完成設定。

    測試單一登入

  3. 如果出現使用者名稱和密碼提示,您可以使用 URL 啟用追蹤來診斷問題:

    https://<sapurl>/sap/bc/webdynpro/sap/sec_diag_tool?sap-client=122&sap-language=EN#

設定適用於 OAuth 的 SAP NetWeaver

  1. SAP 記載的流程位於位置:NetWeaver 閘道服務啟用和 OAuth 2.0 範圍建立

  2. 移至 SPRO,並尋找 [啟用和維護服務]

    啟用和維護服務

  3. 在此範例中,我們要使用 OAuth 將 OData 服務:DAAG_MNGGRP 連線到 Microsoft Entra SSO。 使用技術服務名稱搜尋 DAAG_MNGGRP 服務,如果尚未啟動則加以啟動 (在 ICF 節點索引標籤底下查看 green 狀態)。 確定系統別名 (已連線的後端系統,也就是實際執行服務的位置) 是否正確。

    OData 服務

    • 然後按一下頂端按鈕列上的 [OAuth]按鈕,並指派 scope (保留所提供的預設名稱)。
  4. 我們範例中的範圍是 DAAG_MNGGRP_001。 這是從自動新增數字的服務名稱所產生。 /IWFND/R_OAUTH_SCOPES 報表可以用來變更範圍的名稱,或以手動方式建立。

    設定 OAuth

    注意

    soft state status is not supported 訊息 – 可以忽略,並不會有問題。

建立 OAuth 2.0 用戶端的服務使用者

  1. OAuth2 會使用 service ID 來代表使用者取得存取權杖。 OAuth 設計的重要限制:OAuth 2.0 Client ID 必須等同 OAuth 2.0 用戶端要求存取權杖時用於登入的 username。 因此,在我們的範例中,我們將註冊名稱為 CLIENT1 的 OAuth 2.0 用戶端。 必要條件是,相同名稱 (CLIENT1) 的用戶必須存在於 SAP 系統中,且我們將設定為供參考應用程式使用的使用者。

  2. 註冊 OAuth 用戶端時,我們會使用 SAML Bearer Grant type

    注意

    如需詳細資訊,請從這裡參閱 SAML 持有人權杖授與類型的 OAuth 2.0 用戶端註冊。

  3. 執行 T-Code SU01 ,以建立使用者 CLIENT1 作為 System type 並指派密碼。 儲存密碼,因為您必須將認證提供給 API 程式設計人員,他們應以使用者名稱將它儲存至呼叫程式碼。 不應指派設定檔或角色。

使用建立精靈來註冊新的 OAuth 2.0 用戶端識別碼

  1. 若要註冊新的 OAuth 2.0 用戶端,請啟動 SOAUTH2 交易。 交易將會顯示已註冊的 OAuth 2.0 用戶端概觀。 選擇 [建立],為新的 OAuth 用戶端 (在此範例中稱為 CLIENT1) 啟動精靈。

  2. 移至 T-Code:SOAUTH2 並提供描述,然後按 [下一步]

    SOAUTH2

    Oauth 2.0 用戶端識別碼

  3. 從下拉式清單中選取已新增的 SAML2 IdP – Microsoft Entra ID,然後儲存。

    SAML2 IdP – Microsoft Entra ID 1

    SAML2 IdP – Microsoft Entra ID 2

    SAML2 IdP – Microsoft Entra ID 3

  4. 在範圍指派底下按一下 [新增],以新增先前建立的範圍:DAAG_MNGGRP_001

    範圍

    範圍指派

  5. 按兩下 [完成]。

從 Azure AD 要求存取令牌

若要使用 Azure Active Directory (Azure AD) 作為識別提供者 (IdP) 向 SAP 系統要求存取令牌,請遵循下列步驟:

步驟 1:在 Azure AD 中註冊應用程式

  1. 登入 Azure 入口網站:流覽至 portal.azure.com Azure 入口網站。
  2. 註冊新的應用程式
    • 移至 [Azure Active Directory]。
    • 選取 [應用程式註冊] > [新增註冊]。
    • 填寫應用程式詳細數據,例如名稱、重新導向 URI 等。
    • 按兩下 [註冊]。
  3. 設定 API 權限
    • 註冊之後,流覽至 「API 許可權」。
    • 按兩下 [新增許可權],然後選取 [我的組織使用的 API]。
    • 搜尋 SAP 系統或相關的 API,並新增必要的許可權。
    • 授與管理員同意許可權。

步驟 2:建立客戶端密碼

  1. 流覽至已註冊的應用程式:移至 [憑證和秘密]。
  2. 建立新的客戶端密碼
    • 按兩下 [新增客戶端密碼]。
    • 提供描述並設定到期期間。
    • 按兩下 [新增],並記下客戶端密碼值,因為它需要驗證。

步驟 3:設定適用於 Azure AD 整合的 SAP 系統

  1. 存取 SAP 雲端平臺:登入您的 SAP Cloud Platform Cockpit。
  2. 設定信任設定
    • 移至 「安全性」 > 「信任設定」。
    • 藉由從 Azure AD 匯入同盟元數據 XML,將 Azure AD 新增為受信任的 IdP。 這可以在 Azure AD 應用程式註冊的[端點] 區段中找到(在 [同盟元數據檔] 下)。
  3. 設定 OAuth2 用戶端
    • 在 SAP 系統中,使用從 Azure AD 取得的用戶端識別碼和用戶端密碼來設定 OAuth2 用戶端。
    • 設定令牌端點和其他相關的 OAuth2 參數。

步驟 4:要求存取令牌

提示

請考慮使用 Azure API 管理 簡化 Azure、Power Platform、M365 等所有用戶端應用程式的 SAP 主體傳播程式,包括智慧令牌快取、安全令牌處理和治理選項,例如要求節流。 深入瞭解 AZURE 主體傳播 API 管理。 如果偏好使用 SAP Business Technology Platform,請參閱 這篇文章

  1. 準備令牌要求

    • 使用下列詳細資料建構令牌要求:
      • 權杖端點:這通常是 https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
      • 用戶端識別碼:來自 Azure AD 的應用程式(用戶端)標識碼。
      • 用戶端密碼:來自 Azure AD 的用戶端密碼值。
      • 範圍:必要範圍(例如 https://your-sap-system.com/.default)。
      • 授與類型:用於 client_credentials 伺服器對伺服器驗證。
  2. 提出令牌要求

    • 使用 Postman 或文稿之類的工具,將 POST 要求傳送至令牌端點。
    • 範例要求 (在 cURL 中):
      curl -X POST \
        https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token \
        -H 'Content-Type: application/x-www-form-urlencoded' \
        -d 'client_id={client_id}&scope=https://your-sap-system.com/.default&client_secret={client_secret}&grant_type=client_credentials'
      
  3. 擷取存取令牌

    • 如果要求成功,回應將會包含存取令牌。 使用此存取令牌向 SAP 系統驗證 API 要求。

步驟 5:使用 API 要求的存取令牌

  1. 在 API 要求包含存取權杖:
    • 針對 SAP 系統的每個要求,請在標頭中包含 Authorization 存取令牌。
    • 範例標頭:
      Authorization: Bearer {access_token}
      

後續步驟