【SAP BAS】SAP Business Application Studioから、MFA設定済のGithubに接続する

# 概要
受託開発企業で働くfussasyといいます。普段は、SAP BTP（PaaS）上でSAP Fioriアプリケーション開発をしています。SAP Fioriアプリケーションを開発する際、大抵はソース管理にGithubを利用すると思います。SAP社も標準構成として推奨しています。また、Github社ではGithubでMFA対応することを ~~強制~~ 推奨しています。今回、SAP社の標準WebIDEであるSAP Business Application Studioと、MFA設定済のGithubを接続するときの手順について簡単に説明します。

# SAP Business Application Studioから、MFA設定済のGithubに接続する
### GithubでMFAを設定する
https://dev.classmethod.jp/articles/github-two-factor-authentication/

https://docs.github.com/ja/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication

> １．まずはGitHubにログイン（1Password）
２．右上隅にあるプロファイルの画像をクリックし、次に[設定/Settings]をクリック
３．サイドバーの [Access] セクションで、  [Password and authentication] をクリック
４．[2 要素認証] で、 [2 要素認証を有効にする] をクリック

ワンタイムパスワード (TOTP) アプリケーション（Google Authenticator等です）で設定することが推奨されています。設定した際には、リカバリ コードの保存で、 ダウンロードして保管しておきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1727556/376b1ab4-c9aa-b029-f036-f0a54f786ed8.png)
また、Githubモバイルアプリケーションを使った2要素認証も可能です。

### SAP Business Application Studio（SAP BAS）と接続する
GithubでsapというPrivateリポジトリを作成しました。こちらにSAP BASから接続してみたいと思います。SAP BASで左上のハンバーガメニューから「File」→「Open Folder...」を選択し、「/home/user/projects/」で開きます。開いた先で、左上のハンバーガメニューから「Terminal」→「New Terminal」で、Terminalを開きます。現在地がprojectになっているはずなので、ここでGit Clone（Clone先は、作成したPrivateリポジトリ）をしてみます。すると、Githubの初回接続時に認証メッセージが表示されるので、コードを控えて、「Copy and Open Github」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1727556/7943ece4-fda8-9a5d-df5a-d63865169aa9.png)

Githubにログイン（Sign in to Github）します。MFA設定している場合は、そちらでも認証します（Two-factor authentication）。TOTPアプリケーション、もしくはGithubモバイルアプリ等で認証できます。なお既にGithubにログイン済の場合には、この画面は割愛されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1727556/5241befc-dc0f-a7bd-c738-25397dda3a75.png)

先ほど控えたコードを入力しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1727556/64852b31-4b17-f511-a9f3-789f9b0aaeb3.png)

SAP BASとGithubを接続を許可するか確認されますので、「Authorize SAP」で許可しましょう。（ここでのアウトバウンドIPアドレスは固定です。後述。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1727556/c2fcb605-60f7-297b-e131-4263f9fed264.png)


完了メッセージに遷移します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1727556/38fd77bf-3a0b-5476-1562-244a5143672e.png)

SAP BASに戻ると、Githubを常時接続するか、今回のセッションのみに限るかを選択するメッセージが出ます。（これ以後、通常のGit利用方法と同様です。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1727556/74d2db68-e126-01b6-f9bd-9d8634f154bd.png)

# 補足事項
### 企業Gitリポジトリ、証明書が必要なGitリポジトリへの接続
今回はパブリックGithubへ接続しました。オンプレミス版のGitリポジトリに接続する場合は、SAP Cloud Connectorを利用して接続します。証明書が必要なパブリック Git サーバへの接続には、SAP BTP CockpitでDestination設定が必要となります。

https://help.sap.com/docs/bas/sap-business-application-studio/connect-to-your-git-source-control-system

### SAP Business Application StudioのIPアドレスについて
SAP Business Application StudioのみIPアドレスを許可したい場合、以下の公式ドキュメントにアウトバウンドIP情報が記載されています。
https://help.sap.com/docs/bas/sap-business-application-studio/sap-business-application-studio-availability
日本国内で利用されるSAP BTPの場合、主に東京リージョンのAWS IaaSが選択される（それ以外を選択する理由が特別にない）ため、多くは以下のアウトバウンドIPとなっていることでしょう。（今回の検証で接続した際も、52.198.200.83からのGithub接続でした。）
> 52.198.200.83
52.68.68.77
54.64.113.216
13.113.231.142
35.76.193.116
35.76.58.2

# おわりに
SAP Business Application Studioで開発したことがなければ、実際にどういう手順なのか、そもそも接続できるのか、気になるところだと思うので、今回の記事を作成させていただきました。手順自体は簡単なので、一度試してみれば理解は深まるものと思います。