我们有一个使用 SAPSSO 技术连接到 SAP 后端系统的 C# 应用程序。现在需要用 X.509 证书替换它。
使用SAPSSO时,原始代码将对目标系统进行HTTP调用,并获取包含要使用的票证的cookie:
response = (HttpWebResponse)request.GetResponse();
ticket = response.Cookies["MYSAPSSO2"].Value;
该票据随后将被传递到 RfcCustomDestination 对象以促进安全连接:
prms.Add(RfcConfigParameters.SAPSSO2Ticket, ticket);
问题是,我可以将枚举值从SAPSSO2Ticket更改为X509Certificate,
prms.Add(RfcConfigParameters.X509Certificate, ticket);
但是当我这样做时,响应中无法返回任何票证,因为不再提供 MYSAPSSO2 cookie。
那么如何生成 X509 证书所需的票证值呢?
那么如何生成 X509 证书所需的票证值呢?
不存在“X.509 证书的票据”这样的东西。 您需要做的是:将 X.509 证书本身(以 Base64 编码形式)传递给 prms.Add(...) 调用。
这当然要求您要登录的 ABAP 用户拥有 X.509 证书。通常,此类证书由贵公司的安全部门生成并签名。 (而且证书必须已导入 ABAP 系统并映射到该用户。例如通过事务 CERTRULE。)