【SAPCP】トライアル環境とCloud Connectorをつないでみた

## はじめに
Cloud Connectorは、SAP Cloud Platform のアプリケーションとオンプレミスシステム間のリンクとして機能します（[SAP Cloud Platform Connectivity](https://help.sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/ja-JP/e6c7616abb5710148cfcf3e75d96d596.html)より）。
Cloud Connectorを使用することで、インターネットに直接公開されていないリソースにSCPから安全にアクセスすることが可能になります。

Cloud Connectorは私にとってはベーシスの領域で、自分が直接かかわることはないだろうと思っていましたが、以下の動画を見ると意外と簡単に設定できそうなことがわかりました。
[SAP Cloud Platform Workflow - Ex.03 - Installing & configuring the SAP Cloud Connector](https://www.youtube.com/watch?v=JjiMA9gT8ss&t=5s)

そこで、動画とセットの[資料](https://github.com/SAP-samples/cloud-platform-workflow-virtual-event/blob/master/exercises/03/readme.md)を見ながらCloud Connectorの設定を行ってみました。
設定方法自体は上記資料に詳しく書かれていますので、この記事では自分がつまづいたところや気づきについて共有したいと思います。

## Cloud Connectorのインストール方法
上記の動画で紹介されていたのは[Dockerファイル](https://github.com/SAP-samples/cloud-platform-workflow-virtual-event/blob/master/exercises/03/Dockerfile)を使ってセットアップを行う方法でした。Docker環境があればすぐに実行できます。私はこの方法で実施しました。

Docker環境がなければ、以下のサイトからCloud ConnectorとJVMのインストーラをダウンロードしてインストールすることも可能です。Linux、Windows、Macに対応したインストーラが用意されています。
https://tools.hana.ondemand.com/#cloud

インストール方法は以下に載っています。
https://help.sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/ja-JP/57ae3d62f63440f7952e57bfcef948d3.html

## Dockerファイルを使用してインストールした場合
Cloud Connectorの管理用画面は`https://localhost:8443`でアクセスするのですが、証明書の関係でChromeとFirefoxではエラーになってしまい**IEのみアクセス可能**でした。
[Error accessing cloud connector https://localhost:8443 #1](https://github.com/SAP-samples/cloud-platform-workflow-virtual-event/issues/1)

8/30にPull requestが出ていたので最新のDockerファイルを使えば解決するかもしれません。
[Solve SSL_ERROR_HANDSHAKE_FAILURE_ALERT #3](https://github.com/SAP-samples/cloud-platform-workflow-virtual-event/pull/3)

※2020/11/1現在、まだマージされていませんでした。
ただ、プルリクエストにある1行をDockerfileに追加したところChromeでも実行できるようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/b466ac70-f926-46c0-9a8e-7cf679b9b8d4.png)

## 許可するリソースのパスについて
Cloud Connectorでは、バックエンドのどのリソースへのアクセスを許可するのか細かく設定が可能です。上記の動画で指定されていたのは`sap/opu/odata`のみ（ODataサービスへのアクセス）でしたが、実際に使ってみて足りなければ追加する必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/cdc391d5-07a3-0b98-c0b4-2d14e4e6821a.png)

たとえば、Business Application StudioからFiori Toolsを使用してアプリを作成しようとしたとき、ユーザID、パスワードを入力すると"Authentication incorrect"というエラーが出ていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/c0539b1a-ae85-e44e-87e0-60f14c490516.png)
Cloud ConnectorのAuditログを見ると、「リソース/sap/bc/pingへのアクセスを拒否」したログが残っていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/e95f688e-4c7c-170c-ad5c-e50b59f8ed35.png)
以下のように許可するパスを追加したところ、エラーが出なくなりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/14ed7e21-5ae2-9742-115f-97e354992057.png)

ここまでの設定で、オンプレミスのODataサービスを使って以下が可能になりました。
・WebIDEからUI5アプリ登録
・Business Application StudioでFiori Toolsを使用してFiori Elementsアプリ登録

## トライアル環境でCloud Connectorを立てる意味は？
バックエンドのシステムにインターネットから直接アクセスできるのであれば、Cloud Connectorを立てる必要は特にありません。ただ、本番のアプリが動く環境ではCloud Connectorを使用するケースが多いと思います。Cloud Foundryではオンプレミスのリソースにアクセスするためにconnectivityサービスが追加で必要だったりするので、そのあたりのお作法に慣れておくためにCloud Connectorを介した宛先を持っておくのもいいのかもしれません。

## 参考

- [SAP Cloud Platform Workflow - Ex.03 - Installing & configuring the SAP Cloud Connector](https://www.youtube.com/watch?v=JjiMA9gT8ss&t=5s)
- [SAP-samples/cloud-platform-workflow-virtual-event/Exercise 03 - Installing & configuring the SAP Cloud Connector](https://github.com/SAP-samples/cloud-platform-workflow-virtual-event/blob/master/exercises/03/readme.md)
- [SAP Cloud Platform Connectivity](https://help.sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/e54cc8fbbb571014beb5caaf6aa31280.html)