将 SCP 云用户信息安全地传输到 ABAP

Transfer SCP Cloud User Information securely to ABAP

我有一个 UI5 应用程序托管在 SAP NEO 上,它通过 ABAP OData 服务检索数据。

用户在 SAP Cloud Identity 中维护并映射到他们的后端用户,并且登录是通过主体传播设置的。这是所有设置和工作。

我被要求更改应用程序以允许没有 SAP 后端用户的外部销售代表使用该应用程序。

想法是使用一个 "technical user" 与基本身份验证而不是主体传播。

我的问题是在 ABAP 中识别原始云用户名的方法是什么(因为 sy-uname 将是技术用户)。

如果您使用的是 SAP Cloud Platform 的移动服务,您可以激活一个 header 并使用要传输到您的 ABAP 系统的用户名。它被称为X-SMP-ENDUSERNAME

参考文档 https://help.sap.com/viewer/38dbd9fbb49240f3b4d954e92335e670/Cloud/en-US/defdadb71ee2476691d987689e3703a2.html

我假设您可以在您的 UI5 应用程序中获取云用户 ID,如果您通过 Odata 模型访问后端,您可以使用 ODataModel.setHeaders 函数来提供您的自定义请求 headers,它将被附加发送到后端的每个请求。我会尝试以某些自定义 header 值发送云用户 ID。

并且在 ABAP 端,您可以在服务实现中使用 DP 外观接口来读取自定义 headers:

lo_facade ?= /iwbep/if_mgw_conv_srv_runtime~get_dp_facade( ).
lt_client_headers = lo_facade->get_request_header( ).