背景とやりたいこと
・Outsystemsで開発したシステムから、組織で利用しているSaaS(今回はbacklog)のREST APIにアクセスしたい
・そのSaaSは、組織のセキュリティルールによりIPアドレスによるアクセス制限がされており、事前に許可設定がされたIPアドレス以外はアクセス不可
・SaaS側で許可IPアドレスを追加するため、Outsystemsの送信元IPアドレスを確認したい
・ググりまくったが、情報が見つからなかった
Outsystemsの環境
O11ではなく、Outsystems Deveroper Cloud
送信元IPアドレスについて、ドキュメントを調べても、ググってもどこにも書いてない
その為、仕方なくOutsystemsからwebサーバーにアクセスし、Webサーバーのaccess.logの記録から、送信元IPアドレスを確認することにしました
手順(ありふれた細かい手順は割愛)
準備
- AWS EC2にnginxインストール
- EC2のセキュリティグループのインバウンドルールに、httpで0.0.0.0/0(インターネットからec2へのhttpアクセスを全許可)を追加
- access.log を tail -f コマンドで追記をリアルタイムにみえるようにしておく
- EC2のURL(パブリックDNS)を確認
PCのブラウザでnginxにアクセスできることを確認 [1]
outsystems consume REST API を作成
REST APIに Get Methodを追加し、Method URLにEC2のURLを入れる
Get Methodからnginxにアクセスできるかテスト [2]
nginxからのレスポンスが表示されればOK
スクリーンにボタンを配置
ボタンのクリック時のクライアントアクションに、サーバーアクションであるREST APIのGet Methodを入れる
Publishする
ブラウザを開く
ボタンを押下して、REST APIのGet Methodを実行 [3]
これらの実行により、nginx access.logに記録された内容の確認
[1]の114.1XX.XXX.XXXの行は、クライアントPCのMacのsafariがアクセスした際のログ
[2]の114.1XX.XXX.XXXの行は、クライアントPCのODC Studio(ODC統合開発環境)のREST APIのテストボタンを押下してnginxにアクセスしたログ
[3]の43.2XX.XXX.XXXの行は、ODC Studioによって作成したアプリをクラウドにデプロイ後、クライアントPCのsafariの「AWS IP Address Check」を押下したことで、クラウド側のサーバーサイドからnginxにアクセスしたログ
今回のゴールである、[3]Outsystems REST API 送信元IPアドレスを確認することができました。
以上です