このトピックでは、Identity as a Service (IDaaS) で Alibaba Cloud Microservices Engine (MSE) アプリケーションを構成して、MSE ゲートウェイ認証を有効にする方法について説明します。構成が完了すると、ユーザーは MSE 内の指定されたアドレスにアクセスする前に認証される必要があります。

構成を簡素化するために、IDaaS には事前に統合された MSE アプリケーションテンプレートが含まれています。管理者は IDaaS で MSE アプリケーションを作成し、OpenID Connect (OIDC) プロトコルに基づいて MSE で構成を完了できます。
概要
Microservices Engine (MSE) は、主流のオープンソースマイクロサービスプロジェクト向けに設計されています。Nacos、ZooKeeper、Eureka をネイティブにサポートするレジストリおよび構成センター、Ingress と Envoy をネイティブにサポートするクラウドネイティブゲートウェイ、および OpenSergo サービス管理仕様に準拠した Spring Cloud、Dubbo、Sentinel をネイティブにサポートするマイクロサービス管理を提供します。
手順
ステップ 1. MSE アプリケーションの作成
IDaaS コンソールにログインします。
IDaaS インスタンスを選択し、[コンソールへ] をクリックします。

左側のナビゲーションウィンドウで、 を選択します。Alibaba Cloud - MSE クラウドネイティブゲートウェイを検索し、[アプリケーションの追加] をクリックします。

アプリケーション名を確認してアプリケーションを追加します。その後、自動的に [シングルサインオン] タブにリダイレクトされます。

フォームに入力します。
フォームパラメーター:
[認証モード] にはデフォルト設定を使用します。[認証コードモード] チェックボックスのみを選択します。
[Proof Key For Code Exchange (PKCE)] チェックボックスは選択しないでください。
[ログインリダイレクト URI]: このパラメーターを <MSE ゲートウェイエンドポイント>/oauth2/callback に設定します。たとえば、MSE ゲートウェイのエンドポイントが http://a.example.com の場合、URI は http://a.example.com/oauth2/callback になります。この URI は、MSE ゲートウェイ認証の [リダイレクト URL] フィールドにも入力する必要があります。両方のフィールドの値は一致している必要があります。
[認証スコープ] については、現時点では [すべてのユーザー] を選択します。特定の IDaaS アカウントにアクセス権を付与する方法については、「アプリケーションの権限付与」をご参照ください。
[保存] をクリックして、アプリケーションの構成を完了します。
次の情報をコピーします。この情報は MSE の構成に必要になります。
フィールドパラメーター:
Issuer: この値は、ページ下部のアプリケーション構成情報から取得します。
client_id: この値は、アプリケーション管理ページの [全般] タブから取得します。
client_secret: この値は、アプリケーション管理ページの [全般] タブから取得します。
これで、IDaaS でのアプリケーションの構成が完了しました。次に、MSE コンソールに移動して認証を有効にします。
ステップ 2. MSE でゲートウェイ認証を構成する
MSE での構成には 4 つのステップが含まれます。キャッシュのため、一部の構成変更が有効になるまでに 3 ~ 5 分かかる場合があります。
インターネット NAT ゲートウェイを有効にする
ゲートウェイ認証を実装するには、MSE が IDaaS と通信する必要があります。MSE インスタンスが存在する仮想プライベートクラウド (VPC) がアウトバウンドのインターネットアクセス権を持っていることを確認してください。アウトバウンドのインターネットアクセス権がない場合、MSE は認証リクエストを開始するときにキャッシュされたレコードを使用する可能性があり、リクエストが失敗する原因となることがあります。
Alibaba Cloud VPC インターネット NAT ゲートウェイコンソール に移動してインターネット NAT ゲートウェイを作成し、アウトバウンドのインターネットアクセスが利用可能であることを確認します。
ゲートウェイ管理に移動する
Alibaba Cloud Microservices Engine コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
認証を有効にするゲートウェイの名前をクリックして、管理ページを開きます。ゲートウェイを作成していない場合は、ゲートウェイを作成して認証構成をテストできます。
テストルートを作成する (オプション)
テストを容易にするために、MSE ゲートウェイにテストルートを追加できます。これにより、完全なゲートウェイ認証機能を迅速にテストできます。
すでにルートがある場合は、このステップをスキップできます。次のステップでは、ルートアドレスをブラックリストに追加して保護を有効にできます。
モックルートを構成する
構成プロシージャの詳細については、MSE ドキュメント「クラウドネイティブゲートウェイを使用して MSE Nacos のサービスを管理する」をご参照ください。
構成が完了したら、/mock アドレスを使用してゲートウェイ認証構成をテストできます。
ローカルホストファイルを構成する
セキュリティ上の理由から、MSE 認証プロセスでは IP アドレスをコールバックアドレスとして使用することはできません。
MSE ゲートウェイにドメイン名がない場合は、ローカル hosts ファイルを構成する必要があります。その後、MSE と IDaaS の両方のフォームにマップされたドメイン名を入力して、IP アドレスの使用を回避できます。
たとえば、MSE ゲートウェイのパブリック Ingress IP アドレスが 47.96.xxx.xxx の場合、デバイスのローカル hosts ファイルに次の行を追加します。
47.96.xxx.xxx a.example.comパブリック IP アドレスの代わりに a.example.com を使用して MSE ゲートウェイにアクセスします。IDaaS で、アプリケーションのログインリダイレクト URI を http://a.example.com/oauth2/callback に設定します。ゲートウェイ認証設定の [リダイレクト URL] も同じ値に設定する必要があります。
認証を構成する
次に、MSE 認証メカニズムを有効にします。
ゲートウェイ管理ページの左側のナビゲーションウィンドウで、[セキュリティ] > [認証] を選択します。
[認証の作成] をクリックし、表示されるフォームに入力します。
フィールド名 | 説明 |
認証名 | カスタム名を入力します。 |
認証タイプ | OIDC を選択します。オプションには IDaaS が含まれますが、これは古いバージョンの IDaaS に対応しています。新しいバージョンの IDaaS を使用している場合は、OIDC を選択します。 |
発行者 | IDaaS アプリケーション管理からコピーできます。 |
リダイレクト URL | 前のステップで hosts ファイルを構成した場合は、http://a.example.com/oauth2/callback と入力します。それ以外の場合は、MSE ゲートウェイのパブリックドメイン名を入力します。 この値はドメイン名である必要があり、IP アドレスであってはなりません。 |
クライアント ID | IDaaS アプリケーション管理からコピーできます。 |
クライアントシークレット | このコンテンツは IDaaS アプリケーション管理からのものです。 |
Cookie ドメイン | 前のステップで hosts ファイルを構成した場合は、a.example.com と入力します。それ以外の場合は、MSE ゲートウェイのパブリックドメイン名を入力します。 |
スコープ | これを openid に設定します。 |
承認 | テストのために、まず [ブラックリストモード] を選択します。これは、明示的に指定されたパスのみが認証を必要とすることを意味します。 [ルール条件の追加] をクリックし、/mock アドレスへのアクセスに認証が必要であることを指定します。
|
次の図は構成例を示しています。

ルールが作成されたら、[有効化] をクリックします。
oauth2-proxy ルートを構成します。ゲートウェイ認証を有効にすると、MSE は自動的に対応する OIDC ルートを作成して、権限付与コールバックを処理します。
左側のナビゲーションウィンドウで、[ルート設定] を選択し、oauth2-proxy ルートを見つけます。ルートのステータスは [未公開] です。
ルートの [編集] をクリックし、[次へ] をクリックしてから、[保存して公開] をクリックしてルート構成を更新します。
これで、必要なすべての構成が完了しました。認証をテストできるようになりました。
3. アクセスを試みる
1. アドレスにアクセスする
ブラウザで、http://a.example.com/mock または前のステップでゲートウェイ認証用に構成したアドレスを開きます。
MSE は、リクエストに IDaaS 認証が必要であることを検出します。IDaaS にログインしていない場合、自動的に IDaaS ログインページにリダイレクトされます。

2. 認証する
IDaaS でサポートおよび構成されている方法 (ショートメッセージ検証コード、DingTalk QR コードスキャン、Active Directory (AD) ログインなど) のいずれかを使用してログインします。管理者は、IDaaS で多要素認証 (MFA) を有効にしてセキュリティを向上させることもできます。
3. 認証成功
ログイン後、ブラウザはアクセスしようとしたアドレスにリダイレクトし、期待される結果を表示します。これは、認証が成功したことを示します。

