機械翻訳について

アプリケーション・ゲートウェイの理解

アプリケーション・ゲートウェイの概要、使用する理由、およびWebアプリケーションへのアクセスを保護するためのアプリケーション・ゲートウェイの動作について理解します。

アプリケーション・ゲートウェイを有効にします これは標準ライセンス機能です。 これらの機能の詳細は、「Oracle Identity Cloud Serviceの標準ライセンス階層機能」を参照してください。

アプリケーション・ゲートウェイとは

アプリケーション・ゲートウェイは、コンピュート・インスタンス、クラウド・インフラストラクチャまたはオンプレミス・サーバーのいずれかでホストされているアプリケーションを、認証のためにOracle Identity Cloud Serviceと統合できるソフトウェア・アプライアンスです。

アプリケーション・ゲートウェイは、認可されていないネットワーク・アクセスを制限することで、Webアプリケーションを保護するリバース・プロキシとして機能します。 アプリケーション・ゲートウェイは、これらのアプリケーションへのHTTPリクエストをインターセプトし、リクエストをこれらのアプリケーションに転送する前にユーザーがOracle Identity Cloud Serviceで認証されるようにします。 アプリケーション・ゲートウェイは、認証済ユーザーのアイデンティティをアプリケーションに伝播します。

ユーザーがOracle Identity Cloud Serviceで認証されていない場合、アプリケーション・ゲートウェイは資格証明の検証のためにユーザーをOracle Identity Cloud Service「サイン・イン」ページにリダイレクトします。

アプリケーション・ゲートウェイを使用する理由

アプリケーション・ゲートウェイは、中間層レイヤーを使用して、認証のためにWebアプリケーションをOracle Identity Cloud Serviceと統合する非侵入型の統合方法です。

アプリケーション・ゲートウェイを使用して、次のことを行います:

  • オンプレミスまたはクラウド・インフラストラクチャでホストされているエンタープライズ・アプリケーションを、認証のためにOracle Identity Cloud Serviceと統合します。

    たとえば、オンプレミスまたはクラウド・インフラストラクチャでホストされているWebアプリケーションがある場合、このアプリケーションをシングル・サインオン用の他のクラウドベースのアプリケーションと統合できます。 アプリケーション・ゲートウェイを使用してWebアプリケーションをOracle Identity Cloud Serviceと統合し、他のクラウドベース・アプリケーションが認証メカニズムとしてOracle Identity Cloud Serviceを使用していることを確認します。 これらのアプリケーションはすべて、Oracle Identity Cloud Serviceが提供するシングル・サインオンを使用します。

  • イントラネットWebアプリケーションをインターネット・アクセスに公開します。

    Webアプリケーションがイントラネット上でホストおよびアクセスされており、インターネットを介してこのアプリケーションへのアクセスを公開する場合は、アプリケーション・ゲートウェイを使用してインターネット・リクエストをプロキシし、イントラネットWebアプリケーションにアクセスする前にユーザーにOracle Identity Cloud Serviceでの認証を要求します。 この場合、アプリケーションがイントラネット・ゾーンに残っている間に、アプリケーション・ゲートウェイをネットワークDMZにデプロイします。

  • ネイティブ認証メカニズムがなく、SAMLフェデレーション、OAuthまたはOpenID Connect統合方法をサポートしていないアプリケーションと統合します。

    アプリケーションでOracle Identity Cloud Serviceがサポートする認証の標準(SAMLOAuthおよびOpenID Connect)がサポートされておらず、アプリケーションでOracle Identity Cloud ServiceのSDKを使用できない場合は、アプリケーション・ゲートウェイを使用してWebアプリケーションをOracle Identity Cloud Serviceと統合できます。

  • HTTPヘッダー・ベースの認証をサポートするアプリケーションと統合します。

    HTTPヘッダー・ベースの認証をサポートするWebアプリケーションの場合、アプリケーション・ゲートウェイ統合方法ではWebアプリケーションのソース・コードを変更する必要はありません。 アプリケーション・ゲートウェイがリクエストをアプリケーションに転送する前に、リクエストにヘッダー変数を追加するためにOracle Identity Cloud Serviceでアプリケーションの認証ポリシーを構成する必要があります。 これにより、アプリケーションはOracle Identity Cloud Serviceで認証されたユーザーを識別できます。

アプリケーション・ゲートウェイの仕組み

アプリケーション・ゲートウェイは、インフラストラクチャの場所(クラウド、オンプレミスまたはハイブリッド)に関係なく、顧客のインフラストラクチャ内にデプロイされます。

アプリケーション・ゲートウェイはリバース・プロキシとして機能し、クライアントからアプリケーションへのすべてのリクエストをインターセプトします。 その後、アプリケーション・ゲートウェイは、ユーザーがすでにOracle Identity Cloud Serviceにログインしているかどうかを検証します。 ユーザーがログインしている場合、アプリケーション・ゲートウェイは、保護されているアプリケーションがヘッダー変数にアクセスできるように、リクエストにヘッダー変数を追加します。アプリケーションは、アプリケーション・ゲートウェイがサインインしたユーザーをOracle Identity Cloud Service値で識別し、ユーザー・セッションを作成します。

リクエストがアプリケーションに送信される前にヘッダー変数値が変更されないように、アプリケーション・ゲートウェイとアプリケーション間の通信が保護されていることを確認します。

appgateway_architecture.pngの説明が続きます
図appgateway_architecture.pngの説明

次のステップでは、Webブラウザ、アプリケーション・ゲートウェイおよびエンタープライズ・アプリケーション間のフォームベースの認証フローについて説明します。

  1. Webブラウザで、ユーザーはアプリケーション・ゲートウェイによって公開されたURLを介してアプリケーションへのアクセスをリクエストします。
  2. アプリケーション・ゲートウェイは、リクエストをインターセプトし、ユーザーがOracle Identity Cloud Serviceとのセッションを持っていないことを確認し、ユーザーのブラウザをOracle Identity Cloud Service「サイン・イン」ページにリダイレクトします。

    ステップ2で、ユーザーがOracle Identity Cloud Serviceとのセッションを持っている場合は、そのユーザーがすでにOracle Identity Cloud Serviceにサインインしていることを意味します。 その場合、アクセス・トークンがアプリケーション・ゲートウェイに送信され、残りのステップはスキップされます。

  3. Oracle Identity Cloud Serviceは、「サイン・イン」ページ、またはOracle Identity Cloud Serviceに構成されているいずれかのサインイン・メカニズムを示します。
  4. ユーザーがOracle Identity Cloud Serviceにサインインします。
  5. 認証に成功すると、Oracle Identity Cloud Serviceはユーザーのセッションを作成し、アクセス・トークンをアプリケーション・ゲートウェイに発行します。
  6. アプリケーション・ゲートウェイは、トークンを使用してユーザーを識別します。 次に、ヘッダー変数をリクエストに追加し、リクエストをアプリケーションに転送します。
  7. アプリケーションは、ヘッダー情報を受信し、ユーザーのアイデンティティを検証して、ユーザー・セッションを開始します。

アプリケーションの保護されたリソースに対する後続のリクエストは、アプリケーション・ゲートウェイによってインターセプトされます。 アプリケーション・ゲートウェイはユーザーを識別し、ヘッダー変数をリクエストに追加し、リクエストをアプリケーションに転送します。

サインアウトするには、ユーザーはアプリケーションのログアウトURLをコールします。 アプリケーション・ゲートウェイはログアウトURLを識別し、ユーザーをOracle Identity Cloud ServiceのOAuthログアウト・エンドポイント(/oauth2/v1/userlogout)にリダイレクトします。 Oracle Identity Cloud Serviceがユーザーをサインアウトした後、Oracle Identity Cloud Serviceは、ユーザーのブラウザをアプリケーションのユーザー・セッションを削除できるアプリケーションのURLにリダイレクトできます。

高可用性の設定

ロード・バランサを使用して、アプリケーション・ゲートウェイの複数のインスタンスの高可用性を実現します。

Webアプリケーションにアクセスするための要件が高可用性である場合は、複数のアプリケーション・ゲートウェイを用意し、Oracle Identity Cloud Serviceと統合するためにそれぞれを構成し、ロード・バランサを使用してアプリケーション・ゲートウェイ・インスタンス間のリクエストを分散できます。

次のアーキテクチャ図は、高可用性に必要なコンポーネントを示しています。

図29-1 アプリケーション・ゲートウェイのロード・バランサの図

アプリケーション・ゲートウェイのロード・バランサの図

このアーキテクチャでは、アプリケーション・ゲートウェイの複数のインスタンスをインストールおよび構成する必要があります。 各アプリケーション・ゲートウェイ・インスタンスは、同じOracle Identity Cloud Service URLにリンクし、Oracle Identity Cloud Serviceコンソールのアプリケーション・ゲートウェイ登録から同じクライアントIDおよびクライアント・シークレットを使用するために構成されます。

ロード・バランサを使用して、アプリケーション・ゲートウェイ・インスタンス間でリクエストを分散します。

また、ロード・バランサは、ヘルス・チェック間隔を超える期間、HTTP keepalivesを有効にしてHTTPを介してヘルス・チェックを実行する必要があります。 これにより、ロード・バランサはブラウザ・リクエストをオフラインのアプリケーション・ゲートウェイ・インスタンスにリダイレクトできなくなります。

アプリケーション・ゲートウェイのヘルス・チェック・エンドポイントは/cloudgate/v1/aboutです。