面向 SAP 网关的 azure APIM 客户端证书

时间:2021-06-07 08:12:24

标签: azure ssl azure-api-management client-certificates s4hana

在 SAP S/4HANA 中调用 OData 服务时,我们尝试使用客户端证书进行身份验证。我们从一个 azure APIM 实例调用。作为证书,我们根据此博客 (https://blogs.sap.com/2020/05/03/x.509-certificate-based-logon-to-odata-services/) 创建了一个自签名证书并配置了 SAP S/4HANA 然后我们从浏览器中测试它就像一个魅力。 但是从 azure APIM 调用我们从 SAP S/4HANA 得到以下响应:

<块引用>

<?xml version="1.0" encoding="utf-8"?> <error xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance">
<code>HTTP/404/E/Not Found</code>
<message> Service /sap/opu/odata/sap/xxxxyyyy/xxyyzz call was terminated because the corresponding service is not available.The termination occurred in system UFI with error code 404 and for the reason Not found. Please select a valid URL. If it is a valid URL, check whether service /sap/opu/odata/sap/xxxxyyyy/xxyyzz is active in transaction SICF. If you do not yet have a user ID, contact your system administrator. </message>

SAP S/4HANA 支持说,然后从浏览器调用,他们可以“看到”有效载荷中的证书,但随后从 APIM 调用,有效载荷为“空”。

我从 SAP S/4HANA 网关服务器获得了跟踪日志,我注意到浏览器调用与 APIM 调用之间的微妙差异:

浏览器调用(成功): [Thr 140708195055360] HttpModGetDefRules:确定了缺陷:COPY_CERT_TO_MPI (1)

APIM 调用(失败): [Thr 140708197697280] HttpModGetDefRules:确定叛乱:NOTHING (0)

所以证书显然到达了 SAP S/4HANA 网关服务器,而不是 SAP S/4HANA Odata 服务器。所以不知何故,由于某种原因,它在 SAP S/4HANA 网关服务器上丢失了,然后它才来自 azure APIM。

我试图使调用 100% 相同(相同的标头相同的值),但我无法控制在 azure apim 中添加证书的方式,或者可以吗?

我读到可以使用以下策略设置证书主体:

<authentication-certificate body="@(context.Variables.GetValueOrDefault<byte[]>("byteCertificate"))" password="optional-certificate-password" />

但我不知道如何为“byteCertificate”获取正确的值。

有人做过吗?或者有人遇到过类似的问题吗?

0 个答案:

没有答案
相关问题