本指南将指导您设置 SAP ERP 连接器,以便用户可以访问 SAP 数据,并使用其 Microsoft Entra ID 身份验证在 Microsoft Power Platform 中运行远程函数调用 (RFC)。 该过程涉及配置用于安全通信的公有证书和私有证书。
重要提示
本文仅旨在帮助您设置概念验证。 这些设置和建议不适用于生产用途。 有关本主题的详细信息,请咨询您的安全团队、内部策略和 Microsoft 合作伙伴以获取更多指南。
先决条件
确保您已经:
您还需要熟悉公钥和私钥技术。
证书
我们生成一个示例自签名根证书,类似于证书颁发机构提供的证书。 您可以使用它为您的用户颁发令牌。
创建演示公钥基础结构
通过实施我们的演示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.txt
和 serial
文件以跟踪已签名的证书。
# 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 应用商店。
- 从用户签名证书和私钥生成 .p12 文件。
openssl pkcs12 -export -out user_signing_cert.p12 -inkey .\signingUsersCert\users.key.pem -in .\signingUsersCert\users.cert.pem
- 打开 Windows 证书管理器:
- 按
Win + R
,键入certlm.msc
,然后按 Enter。
- 按
- 导入公共根 CA 证书。
- 导入到
Trusted Root Certification Authorities
。
- 导入到
- 导入用户证书 + 密钥:
- 在证书管理器中,导航到相应的证书存储(例如,个人)。
- 右键单击并选择
All Tasks > Import
。 - 按照向导导入
.p12
文件,确保将密钥标记为可导出,以便 OPDG(本地数据网关的简称)可以使用它加密数据。 - 右键单击
Users Intermediate Cert
并选择All Tasks>Manage Private Keys...
。
- 将
NT SERVICE\PBIEgwService
用户添加到有权限的人员列表中。 - 检查 Windows 证书存储中证书的使用者名称:
Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*Users Intermediate Cert*" } | Format-List -Property Subject
Entra ID 到 SAP 用户映射
您可以使用规则将 X.509 证书明确映射到用户,也可以将用户中间证书添加到 SAP 中。
将 X.509 证书显式映射到用户
将少量 Entra ID 用户显式映射到 SAP 用户。
导航 SAP GUI 到 T 代码SM30
。
输入表 VUSREXTID
并选择维护按钮。
当提示 Type of ACL
时,选择 DN
选项。
选择 New Entry
并针对外部 ID 输入 CN=TESTUSER01@CONTOSO.COM
(替换您自己的 UPN 的内容)。 确保 CN 首先显示。 针对用户名字段选择您的 UPN;最后检查 Activated
选项并保存结果。
备注
不要包含 p:
前缀。
使用规则将 X.509 证书映射到用户
使用证书规则 将 Entra ID 用户批量映射为 SAP 用户。
确保 login/certificate_mapping_rulebased
配置文件参数设置为当前值 1
。
备注
这种映射方法在重新启动时不会持续。
然后,在 T 代码 CERTRULE
中创建以下规则
备注
等待两分钟,确保与 SAP 的缓存连接已过期,然后重新测试连接。 如果没有,您可能会遇到未找到适合 X.509 客户端证书的 SAP 用户 错误。
用户中间证书
执行以下步骤将用户中间证书添加到 SAP:
- 打开 t-code
STRUST
,双击STRUST
将公共证书 users.cert.pem 文件添加到框中。 - 在 SAP GUI 中,转到事务代码 STRUST。
- 如果 SNC SAPCryptolib 具有红色 X,请右键单击并选择创建。
- 选择 SNC SAPCryptolib,然后双击自己的证书。
- 选择导入证书,然后选择
signingUsersCert\users.cert.pem
公共证书。 - 选择添加到证书列表。
SAP 系统更新
将 SsoCertificateSubject
添加到 SAP 系统参数中。
"SsoCertificateSubject": "CN=Users Intermediate Cert, O=Contoso",
同时启用
"SncSso": "On"
将连接替换为新的使用 Microsoft Entra ID (using certificates)
的连接以使用 Microsoft Entra ID 帐户登录到 SAP。
重要提示
完成本教程后,删除临时的 TESTUSER01 公钥和私钥。
重要提示
确保在完成此设置后安全处理并最终删除私钥,以保持安全完整性。
了解更多信息:内部部署数据网关常见问题配置基于证书的身份验证