プロキシサーバー経由の Mule ゲートウェイトラフィックのルーティング

プロキシサーバー経由で外部通信を制限するファイアウォールの内側で Mule Runtime Engine が実行されている場合、プロキシサーバー経由で API Manager にトラフィックをルーティングするように Mule ゲートウェイを設定できます。

Mule ゲートウェイは、プロキシを使用した通信で、基本、NTLM、Kerberos v5 (SPNEGO 経由) 認証スキームをサポートします。

プロキシサーバーの設定

プロキシサーバー経由で接続するように Mule ゲートウェイを設定するには、​$MULE_HOME/conf/wrapper.conf​ ファイルに次のプロパティを追加してプロキシサーバー設定をセットアップします。

  • wrapper.java.additional.<n>=-Danypoint.platform.proxy_host={hostname}

  • wrapper.java.additional.<n>=-Danypoint.platform.proxy_port={port}

  • wrapper.java.additional.<n>=-Danypoint.platform.proxy_username={username}

  • wrapper.java.additional.<n>=-Danypoint.platform.proxy_password={password}

これらのパラメーターは、起動時に Java に渡される追加オプションです。​<n>​ 要素は、設定の追加パラメーターの数を指します。​1​ から始まり、連続した数値で順次増分されます。

ログイン情報が指定されている場合、Mule ゲートウェイは NTLM よりも基本認証を優先します。基本認証に失敗した場合、Mule ゲートウェイは NTLM で認証します。

プロキシ認証での Kerberos の使用

Kerberos を使用して認証するには、​プロキシサーバーの設定​のパラメーターと次の新しいプロパティを追加します。

  • wrapper.java.additional.<n>=-Danypoint.platform.proxy_kerberos_krb5_path={/path/to/krb5.conf}

  • wrapper.java.additional.<n>=-Danypoint.platform.proxy_kerberos_jaas_path={/path/to/kerberos.jaas}

API Kerberos 認証は 2024 年 7 月 2 日以降にリリースされた Mule Runtime バージョン 4.3.x および 4.4.x と Mule Rruntime バージョン 4.6.5、4.7.1、およびそれ以降でのみサポートされます。

Kerberos KRB5 パス

プロパティ ​anypoint.platform.proxy_kerberos_krb5_path​ では、KRB5 サーバーを見つけるために使用される ​krb5.conf​ ファイルを指定します。このファイルの例を次に示します。

[libdefaults]
    kdc_realm = service.ws.apache.org
    default_realm = service.ws.apache.org
    udp_preference_limit = 1
    kdc_tcp_port = 64718

[realms]
    service.ws.apache.org = {
        kdc = localhost:64718
    }
text

Kerberos JAAS パス

プロパティ ​anypoint.platform.proxy_kerberos_jaas_path​ では、認証に使用する JAAS ファイルのパスを指定します。このファイルの例を次に示します。

alice {
    com.sun.security.auth.module.Krb5LoginModule required
    refreshKrb5Config=true
    useKeyTab=false
    keyTab="/my/krbwd/alice.keytab"
    principal="alice";
};
com.sun.security.jgss.login {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  storeKey=true
  keyTab="/my/krbwd/alice.keytab"
  principal="alice";
};
com.sun.security.jgss.initiate {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  storeKey=true
  keyTab="/my/krbwd/alice.keytab"
  principal="alice";
};
com.sun.security.jgss.accept {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  storeKey=true
  keyTab="/my/krbwd/alice.keytab"
  principal="alice";
};
text

IMPORTANT: Mule ゲートウェイで ​anypoint.platform.proxy_username​ および ​anypoint.platform.proxy_password​ で指定されたログイン情報を使用するように、認証されるプリンシパル (この例では ​alice​) の ​useKeyTab​ を ​false​ に設定します。