Mule 4 のログイン情報ハッシュの設定

Mule Runtime Engine (Mule) サーバーからクライアントシークレットを非表示にすることで、クライアントログイン情報のハッシュを有効にし、API の別のセキュリティレイヤーを追加します。クライアントハッシュを有効にすると、Mule ゲートウェイはクライアントログイン情報をメモリに保存し、クライアントシークレットのみをハッシュします。

さらに、Mule ゲートウェイで暗号化とハッシュの両方を有効にした場合、メモリ内のコントラクト情報はハッシュされますが、暗号化されません。クライアントハッシュ (デフォルトでは無効) が有効になっている場合、SHA-256 ハッシュアルゴリズムが使用されます。

Mule ゲートウェイでハッシュを有効または無効にするように設定を変更してから、Mule サーバーを再起動して更新された設定を適用すると、受信要求は影響を受けず、通常どおり処理され続けます。

クライアントログイン情報ハッシュの仕組み

クライアントログイン情報が有効になっている場合、要求を受信すると、Mule ゲートウェイはその要求のクライアントログイン情報からクライアントシークレットを取得してハッシュします。次に、Mule ゲートウェイは要求を Mule に渡す前に、要求からのクライアント ID とハッシュされたクライアントシークレットをメモリに保存されているログイン情報と比較して検証します。

クライアントログイン情報ハッシュの設定

クライアントハッシュを有効にするには、​anypoint.platform.hash_clients​ プロパティを有効にして Mule サーバーを起動します。プロパティを有効にするには、​start​ コマンドを実行するか、​conf​ ディレクトリ内の ​wrapper.conf​ ファイルでプロパティを設定します。

  • start​ コマンド:

    $MULE_HOME/bin/mule start -M-Danypoint.platform.hash_clients=true

  • wrapper.conf​ プロパティ:

    wrapper.java.additional.<n>=-Danypoint.platform.hash_clients=true

設定ファイルに ​wrapper.java.additional.n​ エントリを追加する場合、​<n>​ の各インスタンスが連続する番号になっていることを確認します。それ以外の場合、Java はプロパティを正しく解析しません。次に例を示します。

  • 誤った使用法:

wrapper.java.additional.300=-Danypoint.platform.hash_clients=true

wrapper.java.additional.300=-Dsome.other.property

  • 正しい使用法:

wrapper.java.additional.300=-Danypoint.platform.hash_clients=true

wrapper.java.additional.301=-Dsome.other.property

クライアントログイン情報ハッシュの検証

Mule ゲートウェイがクライアントハッシュを有効にして開始されていることを確認するには、Log4j ロガー設定に次のエントリを追加します。

<AsyncLogger name="com.mulesoft.mule.runtime.gw.deployment" level="DEBUG" />

log4j ファイルは ​$MULE_HOME/conf/log4j2.xml​ にあります。

ハッシュが有効になっている場合、Mule 環境では最初の API をデプロイするときに次のメッセージが表示されます。

API Gateway initializing with Client Hashing algorithm: SHA-256