アプリケーション・ゲートウェイの作成

IAMでアプリケーション・ゲートウェイを作成し、ホストを追加し、各ホストをアプリケーション・ゲートウェイが保護するエンタープライズ・アプリケーションに関連付けます。

アプリケーション・ゲートウェイの設定の一部は、次のアクションでIAMにアプリケーション・ゲートウェイを登録することです:

  • ホスト識別子の定義各ホスト識別子は、アプリケーション・ゲートウェイでエンタープライズ・アプリケーションのプロキシに使用するドメイン名とポート番号を表します。
  • 既存のエンタープライズ・アプリケーションをホスト識別子に関連付けます。

アプリケーション・ゲートウェイ・サーバーの設定時に作成するアプリケーション・ゲートウェイのクライアントIDおよびクライアント・シークレットを使用します。アプリケーション・ゲートウエイの設定を参照してください。

Identity Domain Administratorロールまたはセキュリティ管理者のロールのいずれかに割り当てられている必要があります。

  1. 「アプリケーション・ゲートウェイ」リスト・ページで、「ターゲット・レシピの作成」を選択します。アプリケーション・ゲートウェイ・ページの検索に関するヘルプが必要な場合は、アプリケーション・ゲートウェイのリストを参照してください。

    「ターゲット・レシピの作成」パネルが開きます。

  2. アプリケーション・ゲートウェイの名前と説明(オプション)を入力します。
  3. 「アプリケーション・ゲートウェイの追加」を選択します。
  4. ホストの追加ページで、「ホストの追加」を選択します。
    1. 「ホスト識別子」に名前を入力します。
    2. アプリケーション・ゲートウェイのサーバーがHTTPリクエストに応答する「ホスト」および「ポート」の値を入力します。
    3. アプリケーション・ゲートウェイがセキュア・モード(HTTPS)でHTTPリクエストをリスニングするには、「SSL有効」を選択します。
      アプリケーション・ゲートウェイがセキュアでないHTTPリクエストのみをリスニングするには、チェック・ボックスの選択を解除したままにします。
    4. 「SSL有効」を選択した場合は、オプションでプロパティを追加して、アプリケーション・ゲートウェイ・サーバーが使用する証明書キー・ペア、および次の例のようなSSLのプロトコルと暗号を指定できます。
      ssl_certificate /usr/local/example.com.rsa.crt;
      ssl_certificate_key /usr/local/example.com.rsa.key;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_ciphers HIGH:!aNULL:!MD5;
      • /usr/local/example.com.rsa.crtは、アプリケーション・ゲートウエイ・サーバーの証明書のフルパス。
      • /usr/local/example.com.rsa.keyは、その証明書ファイルの秘密キーです。

        両方の証明書ファイルを、アプリケーション・ゲートウェイのバイナリ・ファイルをインストールした後、アプリケーション・ゲートウェイのサーバーにアップロードする必要があります。

    5. 「ホストの追加」を選択します。
  5. 「次へ」を選択します。
  6. 「アプリの追加」を選択します。

    次の図は、アプリケーション・ゲートウェイとエンタープライズ・アプリケーションの間で構成するマッピングを示しています。

    IAMコンソールでエンタープライズ・アプリケーションとアプリケーション・ゲートウェイを構成するために使用する値の例

    1. アプリケーション:このアプリケーション・ゲートウェイで保護するエンタープライズ・オプションを選択します。
      ノート

      エンタープライズ・アプリケーションは「アクティブ」ステータスである必要があります。
    2. ホストの選択: アプリケーション・ゲートウェイによるエンタープライズ・アプリケーションのプロキシ先のホスト識別子を選択してください。
    3. リソース接頭辞: エンタープライズ・アプリケーションのプロキシのためにアプリケーション・ゲートウェイで使用されるURL接頭辞を入力してください。たとえば、ルート・パスをエンタープライズ・アプリケーションに転送した後、すべてのリクエストを行うには、/を使用します。

      複数のエンタープライズ・アプリケーションを同じアプリケーション・ゲートウェイに割り当てることができます。

      アプリケーションごとに、リソース接頭辞の値が異なっていることを確認します。たとえば、http://myappgateway.example.com:4443/アプリケーション・ゲートウエイURLを介してアクセス可能なhttp://myapp.internal.example.com:3266/myapp1/page.jsphttp://myapp.internal.example.com:6355/myapp2/page.jspがある場合、アプリケーション1の登録時にはリソース接頭辞として/myapp1と入力し、アプリケーション2を登録するときはリソース接頭辞として/myapp2を入力します。

    4. オリジン・サーバー:アプリケーションがホストされているベースURLです。アプリケーションで直接アクセスできないが、Webプロキシ経由でアクセス可能な場合は、WebプロキシのURLを入力します。
    5. 追加プロパティ:他のプロパティを追加して、アプリケーションの構成を追加します。フィールドに指定された値は、nginx.confのlocationブロックの一部であるNGINXディレクティブまたは文です。いくつかの例:
      1. 保護されたアプリケーションが、アプリケーションのゲートウェイでの認証に成功した後で、さらにリダイレクトを行うか、リソースにアクセスする必要がある場合は、このフィールドを使用してホスト・ヘッダーを正しい値を移入し、アプリケーションに渡すことができます。

        たとえば、ユーザーがhttps://myappgateway.example.com:4443/homeを使用してアプリケーションにアクセスした場合、ブラウザは、値がHost: myappgateway.example.com:4443に設定されたホスト・ヘッダーをアプリケーションのゲートウェイに渡します。この値は、アプリケーション・ゲートウェイによってダウンストリーム・アプリケーションに渡されます。これを行うには、次の値のいずれかを追加のプロパティとして追加します。

        proxy_set_header host "myappgateway.example.com:4443";

        または

        proxy_set_header host $http_host;

        $http_hostは変数であり、その値には、アプリケーションのゲートウェイがブラウザまたはクライアントから受け取るホスト・ヘッダーを移入されます。

        ノート

        アプリケーション・ゲートウェーの背後にロード・バランサが存在する場合、$http_hostに正しい値が入力され、アプリケーション・ゲートウエイがそれをアプリケーションに転送できるように、実際のホスト・ヘッダーをアプリケーション・ゲートウエイに転送するのはロード・バランサのジョブになります。
      2. アプリケーションにWebプロキシを介してアクセスできる場合は、次のコマンドを使用します。

        proxy_set_header host "myapp.internal.example.com";

        "myapp.internal.example.com"は、アプリケーションがホストされているドメイン名で、オリジン・サーバーとも呼ばれます。

        この場合、アプリケーション・ゲートウエイはブラウザまたは他のクライアントから受信したホスト・ヘッダーを渡すことができなくなり、アプリケーションはアプリケーション・ゲートウェイを使用してさらにリダイレクトを行うことができます。

  7. 「アプリケーションの追加」を選択します。
  8. 「閉じる」を選択します。
  9. アプリケーション・ゲートウェイの詳細ページで、アプリケーション・ゲートウェイ・サーバーの構成時に使用するクライアントIDおよびクライアント・シークレットの値を書き留めます。