API ConnectのAPI Managerログイン画面で2要素認証を構成する方法

#はじめに

Cloud ManagerやAPI Managerでは、製品が提供しているローカル・レジストリーでユーザー管理をすることができますが、多要素認証を設定することができません。しかし、外部のOIDCユーザー・レジストリーを使用することで多要素認証を実現することができます。この記事では、API Managerのログイン画面でGoogleの2要素認証を設定する方法を紹介します。この記事は、API Connect v10.0.3環境で検証しています。

詳細な手順についてはKnowledge Centerをご参照ください。

https://www.ibm.com/docs/ja/api-connect/10.0.1.x?topic=overview-configuring-oidc-user-registry

#事前準備

API Managerの認証でGoogle（OIDCプロバイダー）を使用する場合には、以下の準備が必要となります。

1. Cloud ManagerでのOIDCユーザー・レジストリーの設定
2. Google接続のためのクライアント情報発行
3. Googleアカウントの多要素認証設定

## 1. Cloud ManagerでのOIDCユーザー・レジストリーの設定

Cloud Managerにログインし、リソース画面からユーザー・レジストリーを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/8efeca4b-d4dc-af90-95ef-886d2a6286b6.png)

ユーザー・レジストリーの作成画面で、OpenID Connectを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/38b67492-4fab-493a-b78a-a133bcfcd178.png)


ユーザー・レジストリーの設定画面になりますので、以下の流れで進めていきます。
手順2と並行して進める必要がありますので、作成は手順2が完了後に実施します。

① プロバイダー・タイプとタイトルの設定

プロバイダー・タイプとしてGoogleを選択します。この選択により、自動的に必要なエンドポイントが設定されます。また、このユーザー・レジストリーを認識するためのタイトルを設定します。


② クライアント情報の設定

次の手順（2. Google接続のためのクライアント情報発行）で発行した、クライアント情報を設定します。

③ リダイレクトURIの確認

次の手順（2. Google接続のためのクライアント情報発行）で必要になるため、リダイレクトURI情報を確認します。今回は、プロバイダー組織の認証となるため、この情報を利用します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/f1757634-b5f4-dc27-a9d1-504db1ba914a.png)


## 2. Google接続のためのクライアント情報発行

[Google Cloud Platform](https://console.cloud.google.com/home/dashboard)のAPIダッシュボードにログインします（事前にプロジェクトの作成や、OAuth同意画面設定が必要となりますが、今回は割愛します）。

認証情報を作成からOAuthクライアントIDを登録します。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/32821d78-bfb9-0b9d-dbf0-baa97db9eb09.png)


アプリケーションの種類と名前を設定します。
さらに、手順1の③で確認したリダイレクトURI情報を設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/b966e005-0b11-0f4f-63ed-63dd2a947ebf.png)


クライアントIDとクライアント・シークレットが発行されますので、手順1の②に設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/3e37c98c-b228-407d-42b0-f3e9f290888d.png)


## 3. Googleアカウントの多要素認証設定

[Googleアカウントの設定コンソール](https://myaccount.google.com)にログインします。
セキュリティからGoogleへのログイン項目で2段階認証プロセスがオンになっていることを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/f3e8f269-f542-ebd6-783c-fd5858a8645c.png)



以上で事前準備が完了となります。

# OIDCユーザー・レジストリーとプロバイダー組織の紐づけ

OIDCユーザー・レジストリーが作成できましたので、それを使用したプロバイダー組織を設定していきます。デフォルト設定では、リソースが非公開となっていますので、API Managerへ公開します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/e84b8175-f95a-ae9f-4d17-a3d606ebf76d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/0d7096a7-ec85-46cb-619e-109b04448295.png)

次に、API ManagerへOIDCユーザー・レジストリーを設定します。
設定画面から、API Managerのユーザー・レジストリー管理設定を編集します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/43db3e2d-5783-6003-83b9-b4a2ec981253.png)

先ほど登録した「google-tfa」のチェックボックスを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/e3321740-10d6-2a29-0616-659ecbc78d9c.png)


以上で紐づけの準備ができましたので、プロバイダー組織を作成していきましょう。
まずは、組織の所有者となるユーザーを招待し、有効化します。その後、組織の作成で、ユーザー・レジストリー「google-tfa」を設定し、先ほどの所有者ユーザーを設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/3f419b28-5fe7-3fe8-a752-3866d0d31c95.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/aef20dc2-a41f-beb5-dfb3-86f1d3f33dd3.png)


# API Managerへの2要素認証ログイン

API Managerにアクセスすると、認証フォームとして「goole-tfa」が設定されていることが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/b1fa1dca-8ed5-e84c-027b-923412e0c3c1.png)


こちらを選択すると、Googleのログイン画面に遷移します。
2要素認証でログインできることが確認できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/e5eca0fb-9c43-27ad-e281-3917e7bec67b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/c19963b8-c7fd-1cfe-6f17-0109076453a5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/bd630a30-93f7-2b32-ab42-bd8663acc1cb.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403443/32cce021-002e-299c-fbab-c66fd311ca6f.png)

以上となります。