Route via SSH2 アサーション

Route via SSH2 アサーションは、SCP および SFTP リクエストを外部 SSH サーバにルーティングするために使用します。 このアサーションは SSH2 のみをサポートします。SSH1 はサポートされません。
Route via SSH2
アサーションは、SCP および SFTP リクエストを外部 SSH サーバにルーティングするために使用します。 このアサーションは SSH2 のみをサポートします。SSH1 はサポートされません。
フィンガープリントのリストを追加し、複数のフィンガープリントに照らしてサーバのホスト キーを検証できます。
SSH2 ルーティング用の有効な暗号のリストを表示するか変更するには、
ssh.routingEnabledCiphers
クラスタ プロパティを表示します。 SSH2 ルーティング用の有効な KEX アルゴリズムを表示するか変更するには、
ssh.routingEnabledKexAlgs
クラスタ プロパティを表示してください。
SFTP の部分的なダウンロード/アップロードの実行方法
このセクションは、SFTP および部分的なダウンロード/アップロードに関する特定のユース ケースを扱う必要のある上級ユーザを対象としています。 この手順は通常のワークフローの一部としては必要とされません。
SFTP GET/PUT の部分的なアップロード/アップロードを使用するために設定されたリスン ポートからファイルをダウンロードまたはアップロードする場合、特定のポリシー設定を適用する必要があります。 以下のポリシー フラグメント(または同等のもの)が SFTP ポリシーに存在することを確認してください。
Route_via_SSH2_sample_policy.bmp
詳細:
説明
4
Configure Message Streaming アサーションを挿入します。 ターゲットが [Request]であり、[Enable streaming (no buffering)]が選択されていることを確認します。
5
Route via SSH2 アサーションを挿入し、以下のように設定します。
[Connection]タブ
  1. プロトコルとして[
    SFTP
    ]を選択します。
  2. [Host name and Port number]に SFTP サーバの
    ホスト名
    および
    ポート番号
    を入力します。
  3. コマンド タイプとして[
    From Variable
    ]を選択し、変数として「
    request.command.type
    」を入力します。
  4. ディレクトリ名として
    ${request.ssh.path}
    を入力します。
  5. ファイル名として
    ${request.ssh.file}
    を入力します。
  6. 新しいファイル名として
    ${request.command.parameter.newPath}/${request.command.parameter.newFile}
    を入力します。
[Authentication]タブ
  1. SFTP サーバ用の認証情報を指定します。
[Advanced]タブ
  1. Set File Size to Context Variable
    ]チェック ボックスをオンにして、コンテキスト変数として
    ssh.file.size
    を入力します。
  2. Override maximum message size
    ]チェック ボックスをオンにし、[
    Allow unlimited message size
    ]を選択します。
  3. 以下のフィールドに以下のコンテキスト変数を入力します。
    • File Offset:
      ${request.command.parameter.offset}
    • File Length:
      ${request.command.parameter.length}
アサーションの使用
  1. 以下のいずれかを実行します。
    • アサーションをポリシー作成ウィンドウに追加するには、「アサーションの追加」を参照してください。
    • 既存のアサーションの設定を変更するには、下記の手順 2 に進みます。
  2. アサーションを追加すると、[
    SSH2 Routing Properties
    ]ダイアログ ボックスが自動的に表示されます。 アサーションを変更する場合は、ポリシー ウィンドウで[
    Route via SSH2
    ]を右クリックして[
    SSH2 Routing Properties
    ]を選択するか、ポリシー ウィンドウでアサーションをダブルクリックします。 このアサーションのプロパティが表示されます。
  3. [Connection]
    タブのプロパティを以下のように設定します。 使用する設定について確信がない場合は、SSH サーバ管理者に相談してください。
    設定
    説明
    Connection Settings
    Protocol
    使用するプロトコル([
    SCP
    ]または[
    SFTP
    ])を選択します。
    Host name
    リモート サーバのホスト名、またはホスト名が格納されるコンテキスト変数を入力します。 この名前は X.509 証明書に対して検証されます。 コンテキスト変数を参照することもできます。
    Port number
    選択したセキュリティ方式に使用するポート番号またはコンテキスト変数を指定します。 デフォルトのポート番号は
    22
    です。 コンテキスト変数を参照することもできます。
    Connect timeout
    SSH 接続がタイムアウトするまでの秒数を指定します。
    Read Timeout
    SSH 読み取りタイムアウトを秒単位で指定します。 このタイムアウトはダウンロードのみに適用されます。
    Validate Server's Host Key
    [Manage Host Key]
    ボタンを使用して指定するフィンガープリントのリストに照らしてサーバの SSH 公開鍵を検証するには、このチェック ボックスをオンにします。 少なくとも 1 つが一致している必要があります。そうでない場合、接続エラーがスローされます。
    このチェック ボックスはデフォルトでオンになっています。
    サーバのホスト キーを検証しない場合は、このチェック ボックスをオフにします。
    Manage Host Key
    このボタンは、サーバのホスト キーを検証する場合にのみ使用できます。 このボタンは、ホスト キーを検証するフィンガープリントを入力するために使用します。 以下に示すように、複数のフィンガープリントを入力して、各フィンガープリントを新しい行に入力できます。
    b9:ac:0c:3d:bb:07:a8:a3:cc:eb:d7:f8:c4:89:b1:27
    b7:ac:0c:3d:bz:07:a8:a5:cc:eb:d7:f2:c4:89:b1:22
    以下を実行します。
    • SSH Public Key Fingerprint:
      リモート サーバの公開鍵の場所から取得した SSH 公開鍵のフィンガープリントを貼り付けます。
    • Load from File:
      テキスト ファイルからフィンガープリントをロードするには、これを選択します。
    フィンガープリントは、コロンで区切られた一連の 2 桁の 16 進値である必要があります(例:
    b9:ac:0c:3d:bb:07:a8:a3:cc:eb:d7:f8:c4:89:b1:27
    )。 このフィンガープリントは、次のようにサーバ上で
    ssh-keygen
    コマンドを使用して確定できます。
    # ssh-keygen -l -f
    /etc/ssh/ssh_host_rsa_key
    2048 b9:ac:0c:3d:bb:07:a8:a3:cc:eb:d7:f8:c4:89:b1:27
    /etc/ssh/ssh_host_rsa_key.pub
    #
    ほとんどの SSH クライアント(ssh、PuTTY など)では、サーバに初めて接続するときに、そのサーバのフィンガープリントが表示されます。
    Use Default KEX Algorithms
    値がグローバル クラスタ プロパティ ssh.routingEnabledKexAlgs から取得されるように指定します。
    デフォルト:
    オン
    このチェック ボックスをオフにすると、
    [Manage Key Exchange Algorithms]
    ボタンが有効になり、有効な KEX アルゴリズムを選択し、順序を並べ替えることができます。
    Manage KEX Algorithms
    サポートされているすべての KEX アルゴリズムを表示します。 KEX アルゴリズム名で検索できます。
    ユーザの環境設定に従って KEX アルゴリズムを選択し、順序を並べ替えることができます。 よくわからない場合は、
    [Use Default List]
    ボタンをクリックして、デフォルトの KEX アルゴリズムと推奨される順序を選択してください。
    デフォルト:
    無効
    Command Settings
    Command Type
    ドロップダウン リストからコマンドのタイプを選択します。
    From Variable
    Upload To (PUT)
    Download From (GET)
    Get Directory Listing (LIST)
    Get File Attributes (STAT)
    Delete File (DELETE)
    Move File (MOVE)
    Create Directory (MKDIR)
    Delete Directory (RMDIR)
    各コマンド タイプの詳細については、以下の「コマンド タイプの説明」表を参照してください。
    Command Type Variable
    または、ドロップダウン リストからコマンド タイプを選択する代わりにコンテキスト変数を指定できます。
    コンテンツ変数が、「コマンド タイプの説明」に示されているコマンド タイプのいずれかに解決されることを確認してください。 解決されない場合、アサーションは失敗します。
    SFTP 受信リスナを使用する場合、
    ${request.command.type}
    などの値を使用します。
    Message Source
    アップロードするソース メッセージ ソースをドロップダウン リストから選択します([
    Request
    ]または[
    Response
    ])。 このフィールドは、[
    Connection
    ]タブで
    コマンド タイプとして
    Upload To
    ]を選択した場合に限り使用可能です。
    Message Target
    メッセージ ターゲットをドロップダウン リストから選択します([
    Request
    ]、[
    Response
    ]、または[
    Message Variable
    ])。 [Message Variable]を使用する場合、すでに存在しない場合は作成されます。
    このフィールドは、[
    Connection
    ]タブで
    コマンド タイプ
    として[
    Download From
    ]を選択した場合に限り使用可能です。
    Message Variable
    メッセージのターゲットを変数にしている場合は、このフィールドにコンテキスト変数を入力します。
    Directory
    アップロード先またはダウンロード元のディレクトリを指定します。 ユーザは、ダウンロードするディレクトリの読み取りアクセス権およびアップロードするディレクトリの書込みアクセス権が必要です。
    SFTP 受信リスナのディレクトリの例を以下に示します。
    /my/root/directory${request.ssh.path}
    アップロードの場合、指定されたディレクトリはすでに存在している必要があります。 このアサーションはディレクトリを作成しません。
    File name
    ファイルの名前を入力します。 ユーザは、ダウンロードするための読み取りアクセス権またはアップロードための書込みアクセス限が必要です。
    ファイル名の例を以下に示します。
    ${request.ssh.file}
    New File Name
    新しいファイル名を入力します。 このオプションは、SFTP MOVE にのみ適用可能です。
    新しいファイル名の例を以下に示します(すべて 1 行)。
    /my/root/dir${request.command.parameter.newPath/${request.command.parameter.newFile}
    コマンド タイプの説明
    設定
    説明
    From Variable
    指定されたコンテキスト変数からコマンド タイプが確定されることを可能にするには、このオプションを選択します。 このオプションを選択する場合、[Command Type Variable]フィールドに有効なコンテキスト変数を指定する必要があります。
    Upload to (PUT)
    以下の動作を行うには、このオプションを選択します。
    • Fail if File Exists
      ファイルがすでに存在する場合、アップロードは失敗します。
    • Overwrite
      部分的なファイル アップロードが許可されている場合は、このオプションを選択解除します。 同じ名前の既存のファイルが存在する場合、アップロードが開始する
      に、ファイルは上書きされるか切り捨てられます。
    • File Offset
      ファイルの書き込みを開始するファイル オフセット ポイントを指定します。 デフォルト:
      0
    Download from (GET)
    以下の動作を行うには、このオプションを選択します。
    • File Offset
      ファイルの取得を開始するファイル オフセット ポイントを指定します。 デフォルト:
      0
    • File Length
      取得するファイル データの長さを指定します。 EOF(ファイル終端)に到達した場合、返された長さは入力長未満になる場合があります。
      デフォルト(
      -1
      )は EOF までファイル全体を読み取ります。
    Get Directory Listing (LIST)
    指定されたフォルダのディレクトリ リストを取得するには、このオプションを選択します。 XML 形式のリストを返します。
    Get File Attributes (STAT)
    ファイル名およびディレクトリを使用して、指定されたファイルのファイル属性を取得するには、このオプションを選択します。 単一のファイル エレメントを返すか、ファイルが存在しない場合は 0 を返します。
    Delete File (DELETE)
    ファイル名およびディレクトリを指定してファイルを削除するには、このオプションを選択します。
    Move File (MOVE)
    指定された新しい場所にファイルまたはディレクトリを移動するには、このオプションを選択します。 新しいファイル名を指定する必要があります。相対的なファイル名または絶対的なファイル パスのどちらも指定可能です。
    Create Directory (MKDIR)
    指定された場所にディレクトリを作成するには、このオプションを選択します。
    Delete Directory (RMDIR)
    指定された場所からディレクトリを削除するには、このオプションを選択します。
  4. [Authentication]
    タブを選択します。
  5. [Authentication]
    タブのプロパティを以下のように設定します。 使用する設定について確信がない場合は、SSH サーバ管理者に相談してください。
    設定
    説明
    Authentication
    使用するプロトコルを選択します。
    • Pass through user name and password credentials in the request
      : リクエスト内にすでに存在する認証情報を使用するには、このオプションを選択します。
    • Specify user credentials
      : 下のフィールドに特定の認証情報を入力するには、このオプションを選択します。
    Username
    サーバに接続するユーザ名を入力します。
    Password
    パスワードを使用した認証を行う場合は、ドロップダウン リストからパスワードを選択します。
    必要とするパスワードが表示されない場合は、[
    Manage Stored Passwords
    ]をクリックし、Gateway のパスワード ストレージにそのパスワードを追加します。 詳細については、「保存されたパスワードの管理」を参照してください。
    ここにパスワードを直接入力することはできません。 パスワードは、セキュア パスワード ストレージで定義する必要があります。
    Private Key
    秘密鍵を使用した認証を行う場合は、使用するキーを選択します。
    必要とする秘密鍵が表示されない場合は、[
    Manage Stored Passwords
    ]をクリックし、Gateway のセキュア パスワード ストレージにその秘密鍵を追加します。 詳細については、「保存されたパスワードの管理」を参照してください。
    ヒント:
    秘密鍵を追加する場合は、必ず[Type]フィールドで[
    PEM Private Key
    ]を選択してください。
    Max Retry Count
    アサーションが失敗するまでの認証の最大試行回数を入力します。
    デフォルト:
    1
    このフィールドが空のままであるか、入力したコンテキスト変数が無効である場合は、入力/出力クラスタ プロパティで設定されているグローバル値(
    ssh.session.authMaxRetryCount
    )がデフォルトで設定されます。
  6. [Advanced]
    タブを選択します。
  7. [Advanced]
    タブのプロパティを以下のように設定します。 使用する設定について確信がない場合は、SSH サーバ管理者に相談してください。
    設定
    説明
    Advanced Command Settings
    Content type
    MIME コンテンツ タイプ ヘッダを指定します。 このヘッダはダウンロードのみに適用されます。また、コンテンツ タイプは Gateway にアップロードされているファイルに使用されます。
    File Offset
    ファイルの読み取りまたは書き込みを開始するポイントを表す数を入力します。 "0" 以外の数を指定すると、部分的な読み取りまたは書き込みが可能になります。 このオプションは SFTP GET/PUT のみに適用されます。
    デフォルト:
    0
    ファイル オフセットが「0」である場合、ファイルは書き込まれる前に自動的に切り捨てられます(空になります)。 「0」以外の値の場合、元のファイル内容は切り捨てられずに上書きされます。
    File Length
    SCP PUT を使用する場合、アップロードされるファイルの長さを入力します。 SFTP GET/PUT を使用する場合、ダウンロードまたはアップロードするファイルの長さを入力します。
    ファイル長が -1 である場合、入力ストリーム全体が読み取られ、必要に応じて長さを計算するために stash ファイルに格納されます。 これは SCP PUT のみに必要とされます。
    デフォルト:
    -1
    (ファイル全体)
    Set File Size to Context Variable
    ファイル サイズを指定されたコンテキスト変数に保存するには、このチェック ボックスをオンにします。 これは SFTP GET/STAT のみに適用されます。 ファイルサイズをコンテキスト変数に保存しない場合は、このチェック ボックスをオフにします。 これがデフォルトの設定です。
    Preserve File Mode (Permission)
    ファイル モード(アクセス権)を保持するにはチェック ボックスをオンにします(SFTP に使用可能な場合)。
    ファイル モード(アクセス権)を保持しない場合は、このチェック ボックスをオフにします。 これがデフォルトであり、すべてのユーザが読み取りおよび書き込み権限を持つことを意味します。
    SFTP を「-p」パラメータで開始し、
    [Preserve File Mode (Permission)]
    オプションを選択します。 これにより、ファイルの権限が確実に保持されます。 ファイル モードのみが保持されます。 アクセス変更時刻などのその他のメタデータは保持されません。 このチェック ボックスは、「SFTP」プロトコルおよびコピー メソッド「Upload To」のみで使用可能です。 また、これは SFTP 受信リスナでのみ動作します。
    Fail if File Exists
    ファイルがすでに存在する場合に、ファイルのアップロードを中止するにはこのチェック ボックスをオンにします。 アップロードして既存のファイルを上書きする場合は、このチェック ボックスをオフにします。 これは SFTP Upload コマンドのみに適用されます。
    Override maximum message size
    ルーティング メッセージに許可する最大サイズをオーバーライドするには、このチェック ボックスをオンにします。
    io.xmlPartMaxBytes
    クラスタ プロパティで設定されている値を使用するには、このチェック ボックスをオフにします。 このチェック ボックスは、[
    Connection
    ]タブで
    コマンド タイプ
    として[
    Download From
    ]を選択した場合に限り使用可能です。
    • Restrict messages to:
      レスポンス メッセージに許可する最大サイズを入力します(バイト単位)。 コンテキスト変数を指定することもできます。
    • Allow unlimited message size (not recommended):
      無制限のサイズのレスポンス メッセージを許可するには、このオプションを選択します。
    Current WSS header handling:
    セキュリティ ヘッダを処理する方法を指定します。 このセクションは、[
    Connection
    ]タブで
    コマンド タイプ
    として[
    Upload To
    ]を選択した場合に限り使用可能です。
    Don't modify the request Security header
    送信 SOAP リクエスト メッセージ内のセキュリティ ヘッダをそのまま残すように Gateway に指示します。 ただし、Gateway がメッセージ処理中に暗号化されたマテリアルを復号化する必要があった場合、リクエストのセキュリティ ヘッダが変更されている可能性があります。
    この設定は、保護されたサービスがリクエストの元のセキュリティ ヘッダを確認する必要がある場合に使用します。 また、保護されたサービスにとって、リクエスト メッセージにセキュリティ ヘッダがあるかどうかが重要ではない場合にも使用します。
    最高のパフォーマンスを得るために、可能な場合は必ずこの設定を使用して、リクエストあたりのメッセージ変更量を最小化してください。
    ポリシーが WS-Security を使用する場合は、セキュリティ ヘッダを変更しないでください。
    Remove Layer 7 actor and mustUnderstand attributes from processed Security header
    送信 SOAP メッセージ内のセキュリティ ヘッダから「mustUnderstand」属性および「Layer 7」アクタを削除するように Gateway に指示します。
    Layer 7 アクタの存在がバックエンド サービスに関する問題を引き起こす場合は、この設定を使用します。 いくつかの場合において、このアクタが原因でバックエンド サービスがセキュリティ ヘッダを無視する可能性があります。これは、バックエンド サービスが、そのセキュリティ ヘッダが別のサービスに向けられていると認識するためです。 またこの設定は、バックエンド サービスがセキュリティをサポートせず、セキュリティ ヘッダ上で「mustUnderstand」がアサートされたリクエストを拒否する場合にも使用します。
    別の方法として、セキュリティ ヘッダを完全に削除することも考えられます。 しかし、これを行う場合、メッセージからこれらを削除するために追加の処理が必要となるため、パフォーマンスの低下を招きます。 また、ログ記録の目的で、セキュリティ ヘッダを原型のまま保持することが推奨されます。
    Remove processed Security header from request before routing
    保護されているサービスにリクエストを転送する前に Gateway によって処理されたすべてのセキュリティ ヘッダを削除するように Gateway に指示します。
    保護されているサービスが、転送された SOAP リクエスト内のセキュリティ ヘッダを予期していない場合、この設定を使用します。
  8. 完了したら、[
    OK
    ]をクリックします。