在本文中,您將瞭解如何整合 SAP NetWeaver 與 Microsoft Entra ID。 將 SAP NetWeaver 與 Microsoft Entra ID 整合時,您可以:
- 在 Microsoft Entra ID 中控制可存取 SAP NetWeaver 的人員。
- 讓使用者使用其 Microsoft Entra 帳戶自動登入 SAP NetWeaver。
- 在一個集中式位置管理您的帳戶。
必要條件
本文中所述的案例假設您已經具備下列必要條件:
- 具有有效訂閱的 Microsoft Entra 用戶帳戶。 若尚未有帳戶,可以免費建立帳戶。
- 下列其中一個角色:
- 啟用單一登入 (SSO) 的 SAP NetWeaver 訂用帳戶。
- SAP NetWeaver V7.20 或更新版本
案例描述
- SAP NetWeaver 支援 SAML (SP 起始的 SSO) 和 OAuth。 在本文中,您會在測試環境中進行 Microsoft Entra SSO 的設定和測試。
備註
此應用程式的識別碼是固定的字串值,因此一個租用戶中只能設定一個執行個體。
備註
依據您的組織需求,以 SAML 或 OAuth 設定應用程式。
從圖庫新增 SAP NetWeaver
若要設定 SAP NetWeaver 與 Microsoft Entra ID 整合,您需要從資源庫將 SAP NetWeaver 新增到受控 SaaS 應用程式清單中。
- 以至少 雲端應用程式系統管理員 的身分登入 Microsoft Entra 系統管理中心。
- 請流覽至 Entra ID>企業應用程式>新增應用程式。
- 在 [從資源庫新增] 區段的搜尋方塊中輸入 SAP NetWeaver。
- 從結果面板選取 [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,請執行下列步驟:
-
設定 Microsoft Entra SSO,讓您的使用者使用此功能。
- 建立 Microsoft Entra 測試使用者,以使用 B.Simon 測試 Microsoft Entra 單一登入。
- 指派 Microsoft Entra 測試使用者,以允許 B.Simon 使用 Microsoft Entra 單一登入。
- 使用 SAML 設定 SAP NetWeaver,以在應用程式端設定 SSO 設定。
- 測試 SSO,以驗證組態是否能運作。
- 將 SAP NetWeaver 設定為適用於 OAuth,以便在應用程式端進行 OAuth 設定。
- 向 Microsoft Entra ID 請求存取權杖,以 Microsoft Entra ID 作為身份提供者 (IdP)。
設定 Microsoft Entra SSO
在本節中,您會啟用 Microsoft Entra 單一登入。
若要使用 SAP NetWeaver 設定 Microsoft Entra 單一登入,請執行下列步驟:
開啟新的 Web 瀏覽器視窗,以系統管理員身分登入您的 SAP NetWeaver 公司網站
確定 http 和 https 服務為作用中,並已在 SMICM T-Code 中指派適當的連接埠。
登入 SAP 系統 (T01) 的商務用戶端時需要 SSO,並啟用 HTTP 安全性會話管理。
移至交易代碼 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
備註
依照貴組織的需求來調整上述參數。這裡所提供的上述參數僅作為指示。
如果需要調整參數,在 SAP 系統的執行個體/預設設定檔中,重新啟動 SAP 系統。
點擊兩次相關的客戶端以啟用 HTTP 安全會話。
啟用以下 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)
在 SAP 系統 [T01/122] 的商務客戶端中,移至交易代碼 SAML2。 它會在瀏覽器中開啟使用者介面。 在此範例中,我們假設 122 為 SAP 商務用戶端。
提供您的使用者名稱和密碼,以在使用者介面中輸入,然後選取 [ 編輯]。
將 T01122 的 提供者名稱 取代為 ,
http://T01122
然後選取 [ 儲存]。備註
根據預設,提供者名稱格式為
<sid><client>
,但 Microsoft Entra ID 預期該名稱的格式為<protocol>://<name>
,因此建議將提供者名稱保持為https://<sid><client>
,以允許在 Microsoft Entra ID 中設定多個 SAP NetWeaver ABAP 引擎。產生服務提供者元數據:-完成在SAML 2.0使用者介面上設定 本機提供者 和 信任提供者 設定後,下一個步驟是產生服務提供者的元數據檔案(其中包含SAP中的所有設定、驗證內容和其他組態)。 產生此檔案之後,請將此檔案上傳至 Microsoft Entra ID。
前往 本機提供者 索引標籤。
選取 [元數據]。
在電腦上儲存產生的 [中繼資料 XML 檔案],然後在 [基本 SAML 設定] 區段中上傳該檔案,以在 Azure 入口網站中自動填入 [識別碼] 和 [回覆 URL] 值。
遵循下列步驟來啟用 Microsoft Entra SSO。
以至少 雲端應用程式系統管理員 的身分登入 Microsoft Entra 系統管理中心。
流覽至 Entra ID>企業應用程式>SAP NetWeaver 應用程式整合頁面,尋找 管理 區段,然後選取 單一登錄。
在 [選取單一登入方法] 頁面上,選取 [SAML]。
在 [以 SAML 設定單一登入] 頁面上,選取 [基本 SAML 設定] 的鉛筆圖示,以編輯設定。
在 [基本 SAML 設定] 區段上,如果您想要以 IDP 起始模式設定應用程式,請執行下列步驟:
選擇 上傳元數據檔案 以上傳您稍早取得的 服務提供者元數據檔案。
選擇 資料夾圖示 來選擇元數據檔案,然後點擊 上傳。
當中繼資料檔案成功上傳後,會自動在 [基本 SAML 設定] 區段文字方塊中填入 [識別碼] 及 [回覆 URL] 值,如下所示:
在 [登入 URL] 文字方塊中,以下列模式輸入 URL︰
https://<your company instance of SAP NetWeaver>
備註
某些客戶遇到了一個錯誤,即其執行個體的回覆 URL 配置不正確。 如果您收到任何這類錯誤,請使用這些 PowerShell 命令。 請先使用回覆 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>"
SAP NetWeaver 應用程式需要特定格式的 SAML 斷言,因此您必須將自訂屬性映射加入 SAML 權杖屬性配置。 下列螢幕擷取畫面顯示預設屬性的清單。 選取 [編輯] 圖示以開啟 [使用者屬性] 對話框。
在 [使用者屬性] 對話方塊的 [使用者宣告] 區段中,如上圖所示設定 SAML 權杖屬性,然後執行下列步驟:
選取 [編輯] 圖示 以開啟 [管理使用者宣告] 對話框。
從 [轉換] 清單中,選取 [ExtractMailPrefix()]。
從 [參數 1] 清單中,選取 [user.userprincipalname]。
選取 [儲存]。
在 [以 SAML 設定單一登入] 頁面上的 [SAML 簽署憑證] 區段中,尋找 [同盟中繼資料 XML],然後選取 [下載] 來下載憑證,並將其儲存在電腦上。
在 [設定 SAP NetWeaver] 區段上,依據您的需求複製適當的 URL。
建立並指派 Microsoft Entra 測試使用者
請遵循 建立並指派用戶帳戶 快速入門中的指導方針,以建立名為 B.Simon 的測試用戶帳戶。
使用 SAML 設定 SAP NetWeaver
登入 SAP 系統並移至交易程式碼 SAML2。 它會開啟包含 SAML 組態畫面的新瀏覽器視窗。
若要設定信任的識別提供者 (Microsoft Entra ID) 的端點,請移至 [信任的提供者] 索引標籤。
按下 [新增],然後從操作功能表中選取 [上傳中繼資料檔案]。
請上傳您已下載的中繼資料檔案。
在下一個畫面中輸入別名名稱。 例如,輸入
aadsts
,然後按 [下一步] 繼續。確定 [摘要演算法] 應該是 SHA-256,而不需要任何變更,並且按 [下一步]。
在 [單一登入端點] 上,使用 [HTTP POST] 並且選取 [下一步] 繼續。
在 [單一註銷端點] 上,選取 [HTTPRedirect ],然後選取 [ 下一步 ] 繼續。
在成品端點,按一下下一步以繼續。
在 [驗證需求] 上,選取 [ 完成]。
請轉至畫面底部的信任的提供者索引標籤>識別聯盟。 請選取 ,再編輯。
選取 [新增],位於 [身分識別同盟] 索引標籤(底部視窗)底下。
從彈出視窗中,從 [支援的名稱標識符格式] 中選取 [未指定],然後選取 [確定]。
提供使用者識別碼來源值作為判斷提示屬性,並提供使用者識別碼對應模式值作為電子郵件,且判斷提示屬性名稱作為
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
。請注意,[使用者識別碼來源] 和 [使用者識別碼對應模式] 值會決定 SAP 使用者與 Microsoft Entra 宣告之間的連結。
情境:SAP 使用者與 Microsoft Entra 使用者的映射。
SAP 的 NameID 詳細資料螢幕擷取畫面。
提及 Microsoft Entra ID 所需宣告的螢幕擷取畫面。
案例:根據在 SU01 中設定的電子郵件地址選取 SAP 使用者識別碼。 在此情況下,應針對每位需要 SSO 的使用者在 su01 中設定電子郵件識別碼。
SAP 的 NameID 詳細資料螢幕擷取畫面。
提及 Microsoft Entra ID 必要聲明所載的螢幕擷取畫面。
選取 [儲存],然後選取 [啟用] 以啟用識別提供者。
出現提示后,選取 [確定 ]。
建立 SAP NetWeaver 測試使用者
在本節中,您要在 SAP NetWeaver 中建立名為 B.simon 的使用者。 請與您內部的 SAP 專家小組合作,或與貴組織的 SAP 夥伴合作,在 SAP NetWeaver 平台中新增使用者。
測試 SSO
啟用身分識別提供者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。
上述 URL 應會帶您前往以下所述的畫面。 如果您能夠連線到下列頁面,Microsoft Entra SSO 設定已成功完成。
如果出現使用者名稱和密碼提示,您可以使用 URL 啟用追蹤來診斷問題:
https://<sapurl>/sap/bc/webdynpro/sap/sec_diag_tool?sap-client=122&sap-language=EN#
設定適用於 OAuth 的 SAP NetWeaver
SAP 記載的流程文件位於以下位置:NetWeaver 閘道服務啟用和 OAuth 2.0 範圍建立
移至 SPRO,並尋找 [啟用和維護服務]。
在此範例中,我們要使用 OAuth 將 OData 服務:
DAAG_MNGGRP
連線到 Microsoft Entra SSO。 使用技術服務名稱搜尋DAAG_MNGGRP
服務,如果尚未啟動則加以啟動 (在 ICF 節點索引標籤底下查看green
狀態)。 確定系統別名 (已連線的後端系統,也就是實際執行服務的位置) 是否正確。- 然後選取頂端按鈕列上的按鈕 OAuth 並指派
scope
(保留系統預設提供的名稱)。
- 然後選取頂端按鈕列上的按鈕 OAuth 並指派
我們範例中的範圍是
DAAG_MNGGRP_001
。 它是透過在服務名稱後自動添加數字而生成的。/IWFND/R_OAUTH_SCOPES
報表可以用來變更範圍的名稱,或以手動方式建立。備註
soft state status isn't supported
訊息 – 可以忽略,並不會有問題。
建立服務使用者用於 OAuth 2.0 的用戶端
OAuth2 會使用
service ID
來代表最終使用者取得存取權杖。 OAuth 設計的重要限制:OAuth 2.0 Client ID
必須等同 OAuth 2.0 用戶端要求存取權杖時用於登入的username
。 因此,在我們的範例中,我們將註冊名稱為 CLIENT1 的 OAuth 2.0 用戶端。 必要條件是,相同名稱 (CLIENT1) 的用戶必須存在於 SAP 系統中,且我們將設定為供參考應用程式使用的使用者。註冊 OAuth 用戶端時,我們會使用
SAML Bearer Grant type
。備註
如需詳細資訊,請從這裡參閱 SAML 持有人權杖授與類型的 OAuth 2.0 用戶端註冊。
執行 T-Code
SU01
,以建立使用者 CLIENT1 作為System type
並指派密碼。 儲存密碼,因為您需要提供認證給 API 程式設計人員,他們應該使用使用者名稱將它儲存至呼叫端程式代碼。 不應指派用戶設定或角色。
使用建立精靈來註冊新的 OAuth 2.0 用戶端識別碼
若要註冊新的 OAuth 2.0 用戶端,請啟動 SOAUTH2 交易。 交易將會顯示已註冊的 OAuth 2.0 用戶端概觀。 選擇 [建立],為新的 OAuth 用戶端 (在此範例中稱為 CLIENT1) 啟動精靈。
移至 T-Code: SOAUTH2 並提供描述,然後選取 [下一步]。
從下拉式清單中選取已新增的 SAML2 IdP – Microsoft Entra ID,然後儲存。
選取 [範圍指派] 底下的 [新增 ],以新增先前建立的範圍:
DAAG_MNGGRP_001
選取 [完成]。
從 Microsoft Entra ID 請求存取令牌
若要使用 Microsoft Entra ID(先前稱為 Azure AD)作為識別提供者(IdP)向 SAP 系統要求存取令牌,請遵循下列步驟:
步驟 1:在 Microsoft Entra ID 中註冊應用程式
- 登入 Azure 入口網站:流覽至 portal.azure.com Azure 入口網站。
-
註冊新的應用程式:
- 移至 「Microsoft Entra ID」。
- 選取 [應用程式註冊] > [新增註冊]。
- 填寫應用程式詳細數據,例如名稱、重新導向 URI 等。
- 選取 [註冊]。
-
設定 API 權限:
- 註冊之後,流覽至 「API 許可權」。
- 選取 [新增許可權],然後選取 [我的組織使用的 API]。
- 搜尋 SAP 系統或相關的 API,並新增必要的許可權。
- 授與管理員同意許可權。
步驟 2:建立客戶端密碼
- 流覽至已註冊的應用程式:移至 [憑證和秘密]。
-
建立新的客戶端密碼:
- 選取 [新增客戶端密碼]。
- 提供描述並設定到期期間。
- 選取 [新增],並記下驗證所需的客戶端密碼值。
步驟 3:設定 SAP 系統以整合 Microsoft Entra ID
- 存取 SAP 雲端平臺:登入您的 SAP Cloud Platform Cockpit。
-
設定信任設定:
- 移至 「安全性」 > 「信任設定」。
- 從 Microsoft Entra ID 匯入同盟中繼資料 XML,將其新增為受信任的身份提供者 (IdP)。 這可以在 Microsoft Entra ID 應用程式註冊的[端點] 區段中找到(在 [同盟元數據檔] 下)。
-
設定 OAuth2 用戶端:
- 在 SAP 系統中,使用從 Microsoft Entra ID 取得的用戶端識別碼和用戶端密碼,設定 OAuth2 用戶端。
- 設定令牌端點和其他相關的 OAuth2 參數。
步驟 4:要求存取令牌
小提示
請考慮使用 Azure API 管理來在單一地方簡化 Azure、Power Platform、Microsoft 365 等所有用戶端應用程式的 SAP 主體傳播過程,包括智慧令牌快取、安全令牌處理和治理選項,例如要求節流。 深入瞭解 Azure API 管理中的 SAP 主體傳播。 如果偏好使用 SAP Business Technology Platform,請參閱 這篇文章。
準備令牌要求:
- 使用下列詳細資料生成令牌要求:
-
權杖端點:這通常是
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
。 - 用戶端標識碼:來自Microsoft Entra ID 的應用程式 (client) 識別碼。
- 客戶端密碼:來自 Microsoft Entra ID 的客戶端密碼值。
-
範圍:必要範圍(例如
https://your-sap-system.com/.default
)。 -
授與類型:用於
client_credentials
伺服器間的身份驗證。
-
權杖端點:這通常是
- 使用下列詳細資料生成令牌要求:
提出令牌要求:
- 使用 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'
擷取存取令牌:
- 如果要求成功,回應將會包含存取令牌。 使用此存取令牌向 SAP 系統驗證 API 要求。
步驟 5:使用存取令牌進行 API 請求
-
在 API 請求中包含存取權杖:
- 針對 SAP 系統的每個要求,請在標頭中包含
Authorization
存取令牌。 - 範例標頭:
Authorization: Bearer {access_token}
- 針對 SAP 系統的每個要求,請在標頭中包含
同時為 SAP NetWeaver 設定 SAML2 和 OAuth2 的企業應用程式
若要平行使用 SAML2 進行 SSO 和 OAuth2 進行 API 存取,您可以在這兩種通訊協定的 Microsoft Entra ID 中設定相同的企業應用程式。
一般設定預設為 SAML2 for SSO 和 OAuth2 以進行 API 存取。
相關內容
- 設定Microsoft Entra SAP NetWeaver 以強制執行會話控件,以即時防止組織的敏感數據遭到外泄和滲透。 會話控制是從條件式存取擴展而來的。 學習如何使用 Microsoft Defender for Cloud Apps 來強制執行會話控制。
- 使用 Azure API 管理 設定 SAP 主體傳播 (OAuth2),以控管及保護從 Azure、Power Platform、Microsoft 365 和其他應用程式中的用戶端應用程式存取 SAP 系統的安全。 深入瞭解 Azure API 管理中的 SAP 主體傳播。