overview

IAS

【1】SAP IAS创建租户

登录客户IAS(IDP)系统,创建BW和SAC Application

IAS URL: http://<id>.accounts.ondemand.com/admin
在弹出的界面输入SAC Tenant后保存。
sac-admin

sac-admin

【2】上传SAC SAML2.0 Metadata

选择新建的租户下的SAML2.0配置,上传元数据
sac-admin
sac-admin

【3】修改Subject Name Identifier

修改Email作为验证凭证
sac-admin

sac-admin

【4】 BW租户创建

BW租户创建过程跟SAC一样。

SAC

操作如下图所示进入管理界面,进入SAC安全页面操作SSO配置环节。
sac-admin

进入安全管理菜单
操作如下图所示进入管理界面。
sac-security

【1】 下载SAC SAML Metadata

SAC已经集成了Service Provider,下载好SAML Metadata,之后需要上传到IDP里面。
sac-download

【2】 上传IDP SAML Metadata

准备好从IDP下载下来的SAML2.0 Metadata文件,上传到第二步下面。
sac-upload

【3】 选择映射字段

这一步可以定义也可以选择邮件映射,如果有其余选择,可以通过attribute定义。
https://help.sap.com/viewer/00f68c2e08b941f081002fd3691d86a7/LATEST/en-US/3651184dad944aa2b361ad029a7a8cae.html

【4】 验证映射正常工作

通过邮箱或者自定的字段验证,验证之后出现绿色条,说明SSO配置成功。
sac-upload
sac-upload

【5】保存结果

验证完成后保存。此时会提示转换,转换后可通过IAS登入SAC。相应的IAS(IDP) 系统中需要创建SAC系统中的账号。
sac-upload

BW CORS配置

【1】BW参数调整

通过RZ10设置DEFAULT.PFL 文件中的参数:

1
2
icf/cors_enabled = 1
icm/HTTP/mod_0 = PREFIX=/,FILE=/sapmnt/BWD/profile/rewrite.txt

bw-rz10
允许系统使用CORS,和配置SAC需要的rewrite文件。

【2】BW AS ABAP安装SSL证书

建议使用CSR文件的方式获取证书,通过STRSUTSSO2进行证书安装。
bw-csr

【3】SICF激活相应服务

执行事务码SICF激活SAC会涉及到SICF功能节点:

1
2
3
4
5
6
/sap/bw/ina/GetCatalog
/sap/bw/ina/GetResponse
/sap/bw/ina/GetServerInfo
/sap/bw/ina/ValueHelp
/sap/bw/ina/BatchProcessing
/sap/bw/ina/Logoff

bw-sicf

右键GetServerInfo服务,进行测试。如下则表示服务正常,且证书正确。
bw-get-user

【4】维护HTTP Allowlist配置。

在BW系统中执行事务码UCONCOCKPIT进行HTTP白名单设置
bw-get-user
bw-get-user

切换到HTTP Whitelist Scenario,并打开编辑模式,将Cross-origin Resource Sharing从Logging模式切换到Active Check.
bw-get-user

然后双击Cross-origin Resource Sharing,进入白名单配置。
bw-get-user

在“白名单”下,选择“添加”图标,在“输入窗口”中,添加以下信息:

  • “服务路径”:添加 /sap/bw/ina。

  • “主机规则”:添加 SAP Analytics Cloud 主机。例如,mytenant.us1.sapbusinessobjects.cloud。

  • “允许的方法”:选择 “GET”、“HEAD”、“POST” 和 “OPTIONS”。
    bw-get-user

  • 将以下内容添加到“允许的标头”:

    1
    x-csrf-token,x-sap-cid,authorization,mysapsso2,x-request-with,sap-rewriteurl,sap-url-session-id,content-type,accept-language,Access-Control-Allow-Origin
  • 将以下内容添加到“显示的标头”:

    1
    x-csrf-toke, sap-rewriteurl,sap-url-session-id,sap-perf-fesrec,sap-system

    “允许凭据”:确保将其选中。
    bw-get-user
    保存此信息。

【5】配置rewrite文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
SetHeader sap-ua-protocol ""
if %{HEADER:clientprotocol} stricmp http [OR]
if %{HEADER:x-forwarded-for-proto} stricmp http [OR]
if %{HEADER:forwarded} regimatch proto=http
begin
SetHeader sap-ua-protocol "http"
end
if %{HEADER:clientprotocol} stricmp https [OR]
if %{HEADER:x-forwarded-for-proto} stricmp https [OR]
if %{HEADER:forwarded} regimatch proto=https
begin
SetHeader sap-ua-protocol "https"
end
if %{HEADER:sap-ua-protocol} strcmp "" [AND]
if %{SERVER_PROTOCOL} stricmp https
begin
SetHeader sap-ua-protocol "https"
end
if %{RESPONSE_HEADER:set-cookie} !strcmp "" [AND]
if %{HEADER:sap-ua-protocol} stricmp https [AND]
if %{HEADER:user-agent} regmatch "^Mozilla" [AND]
if %{HEADER:user-agent} !regmatch "(Chrome|Chromium)/[1-6]?[0-9]\." [AND]
if %{HEADER:user-agent} !regmatch "(UCBrowser)/([0-9]|10|11|12)\." [AND]
if %{HEADER:user-agent} !regmatch "\(iP.+; CPU .*OS 12_.*\) AppleWebKit\/" [AND]
if %{HEADER:user-agent} !regmatch "\(Macintosh;.*Mac OS X 10_14.*(Version\/.* Safari.*|AppleWebKit\/[0-9\.]+.*\(KHTML, like Gecko\))$"
begin
RegIRewriteResponseHeader set-cookie "^([^=]+)(=.*)" "$1$2; SameSite=None; Secure"
RegIRewriteResponseHeader set-cookie "^([^=]+)(=.*; *SameSite=[a-zA-Z]+.*); SameSite=None; Secure" $1$2
RegIRewriteResponseHeader set-cookie "^([^=]+)(=.*; *Secure.*); Secure" $1$2
End

配置完成后需要重启应用以使参数和文件生效。

【6】将自定义 Web 内容安装到 SAP NetWeaver 服务器

  1. 输入事务代码:SE24

  2. 输入“对象类型”。ZCL_DUMMYAUTH_SERVICE,选择“创建”,然后选择“保存”。

  3. 转到“接口”选项卡,并添加 IF_HTTP_EXTENSION及其说明。

  4. 转到“方法”选项卡,并添加以下信息:

  5. “方法”:IF_HTTP_EXTENSION~HANDLE_REQUEST

  6. “级别”:Instance Method

  7. “可见性”:Public

  8. “说明”:添加说明

  9. 双击 “IF_HTTP_EXTENSION~HANDLE_REQUEST” 并添加以下代码:

    1
    2
    3
    4
    5
    6
    7
    method IF_HTTP_EXTENSION~HANDLE_REQUEST.
    DATA:
    html_content TYPE string.
    html_content = '<html><script type="text/javascript">window.close();</script></html>'.
    server->response->set_header_field( name = 'Cache-Control' value = 'no-cache,no-store').
    server->response->set_cdata( data = html_content ).
    endmethod.
  10. 选择“保存”,然后选择“激活”。

  11. 输入事务代码:SICF

  12. 输入“服务路径”:/sap/bw/ina,然后按 Enter。
    在 “default_host” “sap” “bw” 下,右键单击 “ina”,然后选择“新建子元素”。

  13. 在“服务名称”中,输入 auth。添加说明。

  14. 打开“处理程序列表”选项卡,然后输入 ZCL_DUMMYAUTH_SERVICE。

  15. 保存并返回到主菜单。

  16. (可选)检查是否已安装授权包。
    在浏览器中打开以下 URL:https:///sap/bw/ina/GetServerInfo?sap-client=。确保重定向到 IdP 页面,并且登录后看到的不是 404 页面。
    替换为 ABAP 系统主机,将 替换为 SAP BW 客户端 ID。
    验证最终用户的 Web 浏览器配置和访问权限。

BW SAML2.0配置

【1】启用SAML2.0服务

  1. 在BW系统中,启动SAML 2.0配置应用程序(事务码SAML2)。
  2. 在“ SAP GUI安全性”对话框中,选择“允许”。
  3. 选择Enable SAML 2.0 Support Create SAML 2.0 Local Provider。
  4. 输入提供者的名称。

    注意的是服务提供商名称应与您的身份提供商名称不同。

  5. 选择下一步。
  6. 选择下一步。
  7. 在“SAML2.0 Local Provider Configuration”屏幕上的“Service Provider Settings”步骤中,将“Selection Mode”字段更改为“Automatic”。
  8. 选择完成。
    注意
    此过程仅涉及启用SAML 2.0。启用后,您可以配置服务提供者支持的绑定,信任身份提供者,配置身份联盟以及使用SAML保护资源。该配置将创建两个安全存储和转发(SSF)应用程序,并将个人安全环境(PSE)文件与它们相关联。 PSE文件包含服务提供商的签名和加密密钥对。
  9. 选择编辑。
  10. 转到选项卡Service Provider Settings,将Legacy Systems Support (Issue Logon Ticket)切换为On。
  11. 选择保存。

【2】BW端导入IDP证书

  1. 在BW系统中,启动SAML 2.0配置应用程序(事务码SAML2)。
  2. 转到“受信任的提供程序”选项卡。
  3. 在显示字段中打开受信任的提供程序的下拉框。
  4. 选择身份提供者。
  5. 选择添加上传元数据文件。
    bw-config

注意:您也可以手动添加受信任的提供程序
6. 选择浏览,并提供身份提供者的元数据XML文件的路径。
7. 选择下一步。
8. 选择从文件上传,然后选择浏览。
9. 提供公共密钥证书的路径,服务提供商可以使用该路径来验证签名。
bw-config
10. 在“ SAML 2.0配置”屏幕上,默认保留以下步骤,直到步骤9 –身份验证要求。
11. 在“身份验证需求”屏幕上的“身份验证响应”下,更改以下参数值。

参数 参数值
Assertion Consumer Service Applicatoin URL
Binding HTTP POST
12. 当前界面选择完成.

【3】问题和解决方案

  1. BW端导入IDP证书过程需要IDP的CER格式证书文件。SAP云上的IDP虽然提供了证书的内容信息,但是无法下载。
    解决方案:复制证书内容和格式到空的TXT文档中,保存后修改后缀格式为.cer.在BW端尝试导入后被识别到,问题解决。
  2. 整个配置过程完成后,部分用户登入SAC出现获取不到数据的情况。
    解决方案:根据SAP反馈的建议,确认为sametie cookie的设置问题,参考文档连接
    https://help.sap.com/viewer/00f68c2e08b941f081002fd3691d86a7/release/en-US/c863b66d03154c81a5f1bee769bb2713.html

浏览器设定

浏览器相关设定包括:允许Cookies,允许网站使用cookies
bw-config
bw-config

鸣谢

本文基于两位Partner实施经验,非常感谢。
聂相航 - Delottie Partner
吴工 - 智扬信达 Partner