共用方式為


Microsoft Entra ID (附憑證) -單一登入

本指南將引導您完成連接器的設定,以便您的使用者可以使用其 Microsoft Entra ID 進行身驗證來存取 SAP 資料並在 Microsoft Power Platform 中執行 RFC (遠端函數呼叫)。 該程序涉及設定公共和私人憑證以實現安全通訊。

重要

本文僅用於建立概念驗證。 這些設定和建議不適用於生產用途。 有關此主題的更多資訊,請諮詢您的安全團隊、內部策略和 Microsoft 合作夥伴以獲取更多指導。

必要條件

確保您已經:

您還需要熟悉公開金鑰和私密金鑰技術。

憑證

我們產生一個範例自簽名根憑證,類似於憑證頒發機構提供的憑證。 您可以使用它為您的使用者發行代幣。

建立示範公開金鑰基礎設施

透過實施示範 PKI (公開金鑰基礎設施) 的另一半來擴展設定安全網路通訊文件。

示範 PKI 流程圖

建立資料夾結構。

cd C:\
mkdir pki-certs
cd C:\pki-certs\
mkdir signingUsersCert
mkdir userCerts

建立擴充檔案以確保我們的憑證是使用正確的中繼資料和限制建立的。

signingUsersCert/extensions.cnf

subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints = critical,CA:true,pathlen:0
keyUsage = cRLSign, keyCertSign

userCerts/extensions.cnf

subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth

建立必要的 index.txtserial 檔案來追蹤簽署的憑證。

# Create the necessary serial and index files if they don't exist
if (-Not (Test-Path "signingUsersCert\index.txt")) { New-Item -Path "signingUsersCert\index.txt" -ItemType File }
if (-Not (Test-Path "signingUsersCert\serial")) { Set-Content -Path "signingUsersCert\serial" -Value "0001" }

產生我們的中間使用者憑證。

openssl genrsa -out signingUsersCert/users.key.pem 2048

# Create Certificate Signing Request
openssl req -new -key signingUsersCert/users.key.pem -sha256 -out signingUsersCert/users.csr.pem -subj "/O=Contoso/CN=Users Intermediate Cert"

# Sign the certificate with the rootCA cert.
openssl x509 -req -in signingUsersCert/users.csr.pem -days 3650 `
  -CA rootCA/ca.cert.pem -CAkey rootCA/ca.key.pem `
  -out signingUsersCert/users.cert.pem `
  -extfile signingUsersCert/extensions.cnf -extensions v3_ca `
  -CAserial rootCA/serial

產生使用者憑證

執行以下命令,為具有 SAP 使用者名稱 TESTUSER01的使用者生成並簽署證書:

# Create the private key.
openssl genrsa -out userCerts/TESTUSER01.key.pem 2048

# Generate the certificate signing request
openssl req -key userCerts/TESTUSER01.key.pem -new -sha256 -out userCerts/TESTUSER01.csr.pem -subj "/CN=TESTUSER01"

# Sign the certificate + add extensions with the intermediate cert.
openssl x509 -req -days 365 -in userCerts/TESTUSER01.csr.pem -sha256 `
  -CA signingUsersCert/users.cert.pem -CAkey signingUsersCert/users.key.pem `
  -out userCerts/TESTUSER01.cert.pem -extfile userCerts/extensions.cnf `
  -CAserial signingUsersCert/serial

注意

CN=TESTUSER01 應該是第一個參數。

您現在擁有一個根憑證、一個中間 SNC (安全網路通訊的縮寫) 憑證、一個中間使用者憑證以及一個用於標識使用者憑證的憑證。

使用以下命令驗證鏈:

$ openssl verify -CAfile rootCA/ca.cert.pem -untrusted signingUsersCert/users.cert.pem userCerts/TESTUSER01.cert.pem

userCerts/TESTUSER01.cert.pem: OK

Windows應用程式商店

執行下列步驟將使用者簽署憑證和憑證鏈新增至 Windows 應用程式商店。

  1. 從使用者簽署憑證和私密金鑰產生 .p12 檔案。
openssl pkcs12 -export -out user_signing_cert.p12 -inkey .\signingUsersCert\users.key.pem -in .\signingUsersCert\users.cert.pem
  1. 開啟 Windows 憑證管理員:
    1. Win + R,鍵入 certlm.msc,然後按 Enter。
  2. 匯入公共 Root CA 憑證。
    1. 匯入到 Trusted Root Certification Authorities
  3. 匯入使用者憑證+金鑰:
    1. 在憑證管理員中,導覽至適當的憑證儲存 (例如,個人)。
    2. 以滑鼠右鍵按一下,然後選擇 All Tasks > Import
    3. 依照精靈匯入 .p12 檔案,確保將金鑰標記為可匯出,以便 OPDG (內部部署資料閘道的縮寫) 可以使用它來加密資料。
    4. 以滑鼠右鍵按一下 Users Intermediate Cert,然後選擇 All Tasks>Manage Private Keys...
  4. NT SERVICE\PBIEgwService 使用者新增至具有權限的人員清單。
  5. 在 Windows 憑證儲存區中檢查憑證的使用者名稱:
Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*Users Intermediate Cert*" } | Format-List -Property Subject

Entra ID 到 SAP 使用者對應

您可以使用規則或透過將使用者中間憑證新增至 SAP 來將 X.509 憑證明確地對應到使用者。

將 X.509 憑證明確地對應到使用者

將少量 Entra ID 使用者明確對應到 SAP 使用者。

將 SAP GUI 導覽至 T-Code SM30

進入資料表 VUSREXTID,然後選擇維護按鈕。

出現 Type of ACL 提示時選擇選項 DN

選擇 New Entry 並輸入 CN=TESTUSER01@CONTOSO.COM (取代您自己的 UPN 的內容) 作為外部 ID。 確保 CN 優先。 在使用者名欄位中選擇您的 UPN;最後檢查 Activated 選項並儲存結果。

注意

請勿包含 p: 首碼。

使用規則將 X.509 憑證對應到使用者

使用憑證規則輕鬆將 Entra ID 使用者批次對應到 SAP 使用者。

確保 login/certificate_mapping_rulebased 設定檔參數設定為目前值 1

注意

此對應方法在重新啟動之間不會持續存在。

然後在 t-code CERTRULE 中建立以下規則

T-Code:CETRULE

注意

等待兩分鐘以確保快取的 SAP 連線已過期,然後重新測試連線。 如果沒有,您可能會遇到找不到適合 X.509 用戶端憑證的 SAP 使用者錯誤。

使用者中間憑證

按照以下步驟將使用者中間證書添加到 SAP:

  1. 打開 t 代碼 STRUST 並按兩下 STRUST ,將公共證書 users.cert.pem 檔添加到框中。
  2. 在 SAP GUI 中,移至交易代碼 STRUST。
  3. 如果 SNC SAPCryptolib 有紅色 X,請右鍵點選,然後選擇建立
  4. 選擇 SNC SAPCryptolib ,然後按兩下您自己的 證書
  5. 選擇匯入憑證,然後選擇您的 signingUsersCert\users.cert.pem 公共憑證。
  6. 選擇新增到憑證清單

SAP 系統更新

SsoCertificateSubject 新增至您的 SAP 系統參數。

"SsoCertificateSubject": "CN=Users Intermediate Cert, O=Contoso",

也啟用

"SncSso": "On"

將連接替換為使用 Microsoft Entra ID (using certificates) 的新連線,以使用您的 Microsoft Entra ID 帳戶登入 SAP。

重要

完成本教學後,刪除臨時 TESTUSER01 公開金鑰和私密金鑰。

重要

確保完成此設定後私密金鑰的安全處理和最終刪除,以保持安全完整性。

了解更多:內部部署資料閘道常見問題集