各バックエンドサービスごとに個別に認証を設定すると、構成が複雑化し、一貫性が失われる可能性があります。クラウドネイティブゲートウェイ上で IDaaS 認証を有効化することで、認証処理をゲートウェイ側で一元的に実行できます。ゲートウェイは着信リクエストをインターセプトし、未認証のユーザーを ID as a Service (IDaaS) インスタンスのログインページへリダイレクトした後、認証済みのリクエストをアップストリームサービスへ転送します。
仕組み
クラウドネイティブゲートウェイは、OAuth 2.0 の認可コードフローを用いて、お客様の IDaaS インスタンス経由でリクエストの認証を行います。
クライアントがゲートウェイに対してリクエストを送信します。
有効なセッションクッキーが存在しない場合、ゲートウェイはクライアントを IDaaS のログイン URL へリダイレクトします。
クライアントは IDaaS で認証を行い、同意を付与します。
IDaaS は、設定済みのリダイレクト URL を使用して、認可コードを含むリクエストとともにクライアントをゲートウェイへ再びリダイレクトします。
ゲートウェイは認可コードをトークンと交換し、その妥当性を検証します。
検証が成功した後、ゲートウェイは設定されたクッキードメインにセッションクッキーを設定し、リクエストをアップストリームサービスへ転送します。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
有効化済みの Alibaba Cloud IDaaS インスタンス
IDaaS コンソールで作成済みの OAuth 2.0 アプリケーション(クライアント ID、クライアントシークレット、ログイン URL をメモ済み)
ゲートウェイ向けに決定済みかつ IDaaS アプリケーションの設定で登録済みのリダイレクト URL
認証ルールの作成
MSE コンソール にログインします。
左側ナビゲーションウィンドウで、クラウドネイティブゲートウェイ > ゲートウェイ を選択します。
上部ナビゲーションバーで、リージョンを選択します。
ゲートウェイ ページで、対象のゲートウェイ名をクリックします。
左側ナビゲーションウィンドウで、セキュリティ管理 > グローバル認証 を選択します。
左上隅の 認証の作成 をクリックします。
「認証の作成」パネルで、以下のパラメーターを設定し、OK をクリックします。

パラメーター 必須 説明 認証名 はい この認証ルールの名称です。目的を明確に示す記述的な名称を指定してください(例: idaas-prod-auth)。認証タイプ はい IDaaS を選択します。 ログイン URL はい お客様の IDaaS インスタンスのログイン URL です。IDaaS アプリケーションの設定より取得してください。 リダイレクト URL はい IDaaS が認証成功後にリダイレクトする URL です。この URL は、IDaaS アプリケーションの設定で登録済みのリダイレクト URL と完全に一致する必要があります。 クライアント ID はい お客様の IDaaS OAuth 2.0 アプリケーションのクライアント ID です。 クライアントシークレット はい お客様の IDaaS OAuth 2.0 アプリケーションのクライアントシークレットです。この値は、ログやバージョン管理システムに公開しないでください。 クッキードメイン はい 認証後のログイン状態を維持するセッションクッキーのドメインです。 Cookie-Domain=a.example.comの場合、クッキーはa.example.comに限定されます。Cookie-Domain=.example.comの場合、クッキーはexample.comのすべてのサブドメインに送信されます。クッキーの露出範囲を最小限に抑えるため、アプリケーションをカバーできる最も狭いスコープを指定してください。権限付与 はい 認証が必要なリクエストを制御するため、ホワイトリスト または ブラックリスト を選択します。「権限付与ルールの設定」をご参照ください。
権限付与ルールの設定
権限付与 の設定により、ゲートウェイがどのリクエストを認証対象とするかを評価します。
ホワイトリスト:指定されたホストおよびパスに一致するリクエストは認証をバイパスします。それ以外のすべてのリクエストは認証が必要です。
ブラックリスト:指定されたホストおよびパスに一致するリクエストのみが認証対象です。それ以外のすべてのリクエストは認証なしで通過します。
ルール条件を追加するには、以下の手順を実行します。
ルール条件 をクリックします。
リクエストパラメーターを指定します。
ドメイン名:ルールが適用されるホストです。
パス:ルールが適用されるパスです。
認証の詳細情報の表示
認証ルールを作成した後、その構成内容を表示したり、権限付与ルールを追加したりできます。
MSE コンソール にログインします。
左側ナビゲーションウィンドウで、クラウドネイティブゲートウェイ > ゲートウェイ を選択します。
上部ナビゲーションバーで、リージョンを選択します。
ゲートウェイ ページで、対象のゲートウェイ名をクリックします。
左側ナビゲーションウィンドウで、セキュリティ管理 > グローバル認証 を選択します。
認証 ページで、認証ルール名をクリックします。または、該当ルールを検索し、詳細 を 操作 列からクリックします。
認証構成 および 権限付与情報 セクションの内容を確認します。
既存の構成に権限付与ルールを追加するには、権限付与情報 セクション内の 権限付与情報の作成 をクリックします。その後、リクエストホスト および リクエストパス のパラメーターを設定します。
構成の検証
認証ルールを作成すると、認証 ページにそのルールが表示されます。
IDaaS 認証が期待通りに動作することを確認するには、以下の手順を実行します。
認証ルールを有効化します。「認証ルールの管理」をご参照ください。
ブラウザを開き、このルールで保護されている URL にアクセスします。
ブラウザが IDaaS のログインページへリダイレクトされることを確認します。
有効な認証情報を使用してログインし、ブラウザが元の URL へリダイレクトされることを確認します。
認証ルールの管理
グローバル認証 ページで、対象の認証ルールを検索し、操作 列のアクションを使用します。
| アクション | 説明 |
|---|---|
| 有効化 | 認証ルールを有効化します。このルールに一致するリクエストは IDaaS 認証の対象となります。 |
| 無効化 | 認証ルールを無効化します。リクエストは IDaaS 認証を経ずに通過します。 |
| 編集 | 認証ルールの構成を変更します。 |
| 削除 | 認証ルールを削除します。削除前に必ずルールを無効化してください。 |
注: 認証ルールを削除する前に、必ず無効化してください。有効なルールは削除できません。
よくある質問
ブラウザが IDaaS のログインページへリダイレクトされない
グローバル認証 ページで、認証ルールが有効化されていることを確認してください。
リクエスト URL が権限付与ルールの条件(ホストおよびパス)に一致することを確認してください。
ホワイトリスト を使用している場合、リクエスト URL がホワイトリストに含まれていないことを確認してください。ホワイトリストに登録されたリクエストは認証をバイパスします。
リダイレクトエラーで認証が失敗する
MSE コンソールの リダイレクト URL が、IDaaS アプリケーションの設定で登録済みのリダイレクト URL と完全に一致することを確認してください。不一致があると、OAuth 2.0 の認可コード交換が失敗します。
リダイレクト URL がクライアントのブラウザから到達可能であることを確認してください。
認証成功後にセッションクッキーが設定されない
クッキードメイン の値を確認してください。クッキードメインがアクセス先サービスのドメインと一致していない場合、ブラウザはクッキーを送信しません。
アプリケーションをカバーできる最も狭いドメインスコープを指定してください。たとえば、認証が必要なのが単一のサブドメインのみである場合、
a.example.comを使用し、.example.comのような広範なスコープを避けてください。