很多没用的内容,是学习过程就留下了,直接看实施过程
背景
客户公司的欧盟分公司要与德意志银行(DB)做银企直连接口,实现自动付款和确认。
银行允许的方式有下面几种,重点研究了这两种FTPS和SFTP。通讯通过中间件PO,文件格式和文件名格式使用银行标准,内容需要PGP签名加密。
Research
File format要求![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/eef8faa136f37ebb87dc52819fe60078.png)
SAP support上的一些research:
- sftp Support
Q: Does the File Adapter support the sftp (File Transfer over SSH) protocol?
A: We have SFTP adapter that supports File transfer over SSH protocol released only for 7.11/7.30/7.31 releases. The SFTP adapter is part of the SAP NetWeaver Process Orchestration, secure connectivity add-on 1.0. - FTPS: “AUTH TLS” Command Unrecognized
Q: After configuring a File Adapter channel with the Transport Protocol “FTP” and connection security set to “FTPS”, I receive the following error in the adapter monitoring: Syntax error, command unrecognized: ‘AUTH TLS’
What is causing this?
A: Your FTP server implementation does not implement FTPS as specified in RFC 4217. For details, contact your FTP server vendor. - Test FTP Server Connection.
Q: How to Test FTP Server Connection.?
A: Please refer to note 1085539.
方案对比:
SFTP vs. FTPS in SAP PI里写的比较清楚。
SFTP(SSH File Transfer Protocol)
介绍:
SSH就是对传输的内容加密,这样即使被截获了也是安全的,SFTP加密的是会话session(通常使用SSH-2协议),它最大的好处就是可以只开一个加密的通道就可以传输多个文件,也就是防火墙上只有一个洞通上外面。使用SFTP,
- 如果是inbound,会使用带有安全协议的UNIX 脚本从第三方系统将文件传输到SAP XI中的一个文件夹。一旦文件放上去以后,XI的文件适配器扫描路径,并使用NSF协议取从该文件;
- 如果是outbound,XI负责将文件写入XI指定的文件夹中,这些文件通过使用安全协议(即sFTP)执行UNIX脚本传输到第三方系统。
前提:
- 外部系统和PI系统之间需要交换公钥(public key)
- 要部署好UNIX脚本先
优点:
- 更安全
- 能够在单个加密管道上处理多个安全文件传输,通过使用单个加密管道,公司防火墙中的漏洞更少。
缺点:(简单说就是安装复杂,XI不能监控,出错了也不好排查)
- 每次传输都要经过两步,要先生成文件放到指定路径,然后再传输
- 会生成临时文件
- 会有更多的可能的故障点,UNIX和XI都有可能出现故障
- 外部的UNIX脚本也需要维护
- 因为是脚本运行,所以无法通过XI监控,需要BASIS更多的参与
- 需要生成密钥并将其安装到SFTP站点作为先决条件,即SFTP客户端必须在服务器上安装密钥。
- SFTP使用密钥而不是证书,这意味着它不能利用通过证书颁发机构促进的“信任链”范例
- 需要定期删除/归档XI服务器上的文件
另外:UNIX shell脚本可以作为后台作业执行,也可以在文件适配器级别通过操作系统命令从SAP XI触发。
FTPS(File Transfer Protocol Using SSL/TLS)
介绍:
FTPS是XI中File adapter的一个内置特性,不过也需要先安装SAP Java Cryptographic Toolkit,(参看上面的问题28)本质上还是FTP,它是SSL之上的文件传输层。SSL,或安全套接字层,是一种在FTP客户端