リモートブラウザ分離
HTTP/HTTPSでのリモートブラウザ分離接続タイプの構成
この機能は、KCMバージョン2.19.0で公開済みです。
概要
HTTP/HTTPS (リモートブラウザ分離) 接続タイプを使用すると、レンダリングされた隔離ブラウザを通してウェブベースのアプリケーションに安全にアクセスできるようになります。ウェブサイトのコードやDOMがユーザーのデバイス上で実行されるわけではないため、ユーザーはさまざまな攻撃ベクトルに対して免疫を獲得します。ウェブブラウザセッションがローカル環境で実行されないため大きなセキュリティ上の利点があり、ローカルデバイスへの攻撃からアセットを守ることが可能となります。
VPN、ZTNAなど暫定的なネットワークソリューションの必要性を排除
Keeperコネクションマネージャーコンテナーを任意のターゲット環境に公開するだけで、ウェブベースのリソースへのアクセスを制限、監視、制御できます。
ゼロ知識アーキテクチャ
お客様は、ユーザーのデバイスと対象のウェブサイトおよびアプリケーション間のすべてのネットワーク通信を完全に制御できます。Chromiumエンジンを搭載したKeeperリモートブラウザー分離は、機密データやセンシティブなデータを送信することなく、Keeper接続マネージャー コンテナーからユーザーのデバイスを介して最新バージョンのChromiumブラウザーの仮想インスタンスを投影します。
セッションの録画
他の Keeperコネクションマネージャープロトコルと同様に、コンプライアンスとセキュリティ上の理由から、ブラウザー分離セッションを共有、記録、監視できます。
ログイン情報の自動入力
Keeperのリモートブラウザ分離プロトコルにより、ログイン情報をユーザーのデバイスに送信することなくログイン情報の自動入力、フォームの送信し、対象のウェブアプリケーションの制御が可能となります。
パラメータ
Keeperのリモートブラウザ分離は、いくつかのパラメータを使用して制御されます。MySQLやPostgreSQLなどのデータベースがコンテナの展開に使用される場合、これらのパラメータはデータベースに格納され、ウェブインターフェースで表示されます。暗号化されたJSONやLDAPスキーマの変更など、別の方法で接続を定義する場合は、内部パラメータ名を使用してパラメータを指定します。
本ページでは、サポート対象パラメータをウェブインターフェース内と同じ方法でグループ化して網羅することを意図しています。ウェブインターフェースに表示されるフィールド見出しは、パラメータごとに表示され、各パラメータの内部名、そのパラメータの動作の詳細な説明と適正値も一緒に記載しています。
自動設定用パラメータ
画面録画用パラメータ
セルフ署名またはカスタムCA証明書
Keeperシークレットマネージャー用パラメータ
この設定により、認証情報の自動入力のためにKeeperシークレットマネージャーアプリケーションを統合できます。
Allow user-provided KSM configuration: (ユーザー提供のKSM構成を許可)
ksm-user-config-enabled
設定が「true
」の場合、どの接続に対しても各KeeperコネクションマネージャーユーザープロファイルをKeeperシークレットマネージャー構成に割り当てられます。詳細については、「複数のボルト連携」ページをご参照ください。
ブラウザ設定用パラメータ
HTTP/HTTPS接続はレンダリングされたChromiumブラウザを通じて確立されます。一般的に、各接続は特定のウェブアプリケーションに関連付けられていますが、広範なウェブブラウジングも許可するように構成することもできます。
デフォルトでは、新規のリモートブラウザ分離セッションはローカルストレージがクリアされた状態の「シークレットウィンドウ」と同等です。これにより、データの保持せずに複数のユーザーが同時にリモートブラウザ分離セッションを実行できます。
「Browser Profile Storage Directory」 (ブラウザプロファイルストレージディレクトリ) 値を指定すると、ブラウザセッションデータがKCM guacamoleコンテナ内に保持されます。例えば、以下のように構築されたパスを使用すると、ユーザーごとにブラウザセッションが保持されます:
注: 複数のセッションで同じブラウザプロファイルストレージディレクトリを同時に使用することはできません。
Allow navigation via direct URL manipulation (直接のURL操作でのナビゲーションを許可)
allow-url-manipulation
ユーザーが通常のブラウザで行うように、現在のURLを編集したり、前後にナビゲートしたりすることを許可するかどうかを設定します。チェックを入れる (true
に設定) と、ユーザーが接続を開く際にナビゲーションバーが表示されます。 デフォルトでは、ユーザーは現在のURLを手動で編集できず、現在のページとのインタラクションのみが可能となります。
URL
url
ユーザーが接続したときに最初にロードされるページのURL。
Allowed URL Patterns (許可されたURLのパターン)
allowed-url-patterns
手動ナビゲーション (URLバー) 経由か現在のページとのiインタラクションかに関係なく、ユーザーがアクセスできるすべてのURLのパターン。改行することで複数のパターンを指定できます。指定した場合、リスト内のパターンに一致するページのみが許可されます。 デフォルトでは、すべてのURLが許可されています。
Allowed Resource URL Patterns (許可されたリソースURLのパターン)
allowed-resource-url-patterns
画像、スクリプト、スタイルシート、フォントなど、ページがリソースとして読み込むことが許可されるすべての URL のパターン。改行することで複数のパターンを指定できます。指定した場合、リスト内のパターンに一致するリソースのみがロードされます。 デフォルトでは、ページによってロードされるリソースには制限がありません。
Browser Profile Storage Directory (ブラウザプロファイルストレージディレクトリ)
profile-storage-directory
ブラウザのセッションデータが保持されるGuacamoleコンテナ内の場所。
Automatically Create Profile Directory (自動的にプロファイルディレクトリを作成)
create-profile-directory
値は「false
」 (デフォルト)、「true
」、「recursive
」となります。
URLのパターン
「Allowed URL Patterns」 (許可されたURLのパターン) と「Allowed Resource URL Patterns」 (許可されたリソースURLのパターン) の各パラメータが受け入れるURLパターンの形式はURLと同一で、どのURLが許可されるかを正確に指定します。パラメータは以下の基準に従って適用されます。
URLパターンから省略されたURL要素は無視されます (要件として適用されません)。ただし、標準ポート番号は、スキームが指定されている場合に指定されたものと見なされます。
ドメイン名には、「特定ドメインの任意のサブドメイン」を示すためのワイルドカード接頭辞 (
*.
) が使用できます。パスの代わりにワイルドカード (
*
) を使用することで、どの値も許可されていることをより明示的に示すことができます。ワイルドカード (
*
) をパスの末尾に使用することで、そのパスのサブパスがどれも許可されていることを示すことができます。ワイルドカード (
*
) をポート番号の代わりに使用することで、どのポートも許可されていることを示すことができます。
以下は例となります。
パターン
意味
accounts.google.com
あらゆるプロトコルとパスを含むドメイン accounts.google.com
へのリクエストを許可します。リクエストは、関係するプロトコルに関係なく、標準ポートに対して行う必要があります。
*.youtube.com
あらゆるプロトコルとパスを含む youtube.com
のあらゆるサブドメインへのリクエストを許可します。リクエストは、関係するプロトコルに関係なく、標準ポートに対して行う必要があります。
http://10.10.10.10:8080
厳密にHTTP (HTTPS ではない) と任意のパスを使用して、ポート 8080の10.10.10.10
へのリクエストを許可します。
10.10.10.10:*
任意のプロトコルと任意のパスを使用して、任意のポートで10.10.10.10
へのリクエストを許可します。
https://example.net/foo
厳密にHTTPS (HTTP ではない) とパス「/foo」を使用したexample.net
へのリクエストを許可します。リクエストはHTTPSの標準ポートに対して行う必要があります。
https://example.net/foo/*
厳密にHTTPS (HTTP ではない) と「/foo」の下の任意のパスを使用したexample.net
へのリクエストを許可します。リクエストは HTTPS の標準ポートに対して行う必要があります。
google.com
google.com
ルートドメインからのあらゆるプロトコルまたはパスが許可されますが、サブドメインは許可されません。
ブラウザ自動入力用パラメータ
Keeperコネクションマネージャーには、ユーザー名とパスワードを対象のウェブサイトのログイン画面に自動入力する機能が備わっています。ユーザーインターフェースで直接ユーザー名とパスワードを入力するか、Keeperボルト (保管庫) 内のレコードへの参照を使用します。
シークレット自動入力構成
Keeperコネクションマネージャーで使用される自動入力ルールは、JSON/YAML形式のオブジェクトの配列であり、各オブジェクトで少なくとも以下のプロパティを指定します。
page
- 自動入力ルールが適用されるページのURLパターンです。ここで利用できるパターンは、ナビゲーション/リソースルールで受け入れられるパターンと同一となります。
加えて以下のプロパティのどれか、または両方を指定します。
username-field
- 自動入力するユーザー名が入るフィールドを一致させるCSSセレクタです。接続のusername
パラメーターの値が入力されます。password-field
- 自動入力するパスワードが入るフィールドを一致させるCSSセレクタです。接続のpassword
パラメーターの値が入力されます。submit
- 該当するすべてのユーザー名/パスワードフィールドが入力された後、クリックを必要とする要素向けのCSSセレクタです。ログインページで適切なHTML<form>
タグが使用されていない場合など、必要な場合にのみ指定します。省略すると、ユーザーが「Enter」を押したかのようにログインフォームを送信しようとします。cannot-submit
は、KCM (Keeperコネクションマネージャー) がフォームを自動的に送信しないようにするためのCSSセレクタで、指定した要素が存在する限りフォームの送信をブロックします。
以下は、ユーザー名とパスワードの各フィールドがある単一ページのウェブアプリケーションの例となります。
Microsoft Azure Portalのログインフローなど、一部のログインフローでは複数のルールが必要になる場合があります。
以下は、Microsoft Azureに必要な自動入力ルールのYAMLの例です。
以下はJSON形式での例です。
Keeperによる自動送信を望まない場合の一般的な例としては、ページにキャプチャがある際が挙げられます。以下はその例となります。
CSSでは不十分な、非常に複雑なページでは、代わりにXPath式を使用できます。このような XPath式は、先頭に/
を付けて作成します。
フィールドの識別
リモートブラウザ分離は、JSONまたはYAMLコードで定義された特定のフィールド要素に基づいて認証情報を入力します。フォームフィールドセレクタは、ページのコンテンツを調べて特定のフィールド要素を特定することで発見できます。
ページを検証: ウェブページを右クリックして[検証]を選択してデベロッパーツールを開きます。
フィールドを選択: 要素セレクター ツールを使用して、識別するフォームフィールドをクリックします。
属性を読み取る: 強調表示されたHTMLコードを見て、
autocomplete
、type
、name
、id
などの識別子の属性を見つけます。
例 1: autocomplete
を使用
HTMLコード:
<input type="password" autocomplete="current-password" ...>
説明: パスワードフィールドは、
autocomplete
属性をcurrent-password
に設定することで識別できます。
例 2: type
を使用
HTML コード:
<input type="password" ...>
説明: パスワードフィールドは、
type
属性をpassword
に設定することで識別できます。
例 3: name
を使用
HTML コード:
<input type="password" name="some_name_xyz" ...>
説明: パスワードフィールドは、
name
属性をsome_name_xyz
に設定することで識別できます。
例 4: id
を使用
HTMLコード:
<input type="password" id="some_id_1234" ...>
説明: パスワードフィールドは、
id
属性をsome_id_1234
に設定することで識別できます。
フィールド識別のテスト
Chromeブラウザからデベロッパーツールを開き、[コンソール]タブに移動します。
フォームフィールドの識別をテストするには、document.querySelector() javascriptコマンドを使用します。
たとえば、以下を入力して「Enter」キーを押します。
フィールドが見つかった場合は、DOM要素が表示されます。見つからない場合は、エラーが表示されます。
グローバル自動入力ルールの一括読み込み
guacdコンテナは、自動入力ルールを含むファイルを含むように変更できます。このファイルを使用すると、すべての接続に同じルールをロードする必要がなくなります。ルールは、特定の接続に表示されるルールに追加されます。
以下のように
docker-compose.yml
ファイルを変更してautofill-rules.yml
マッピングを含めます。
サンプルautofill-rules.yml
ファイル
Keeperシークレットマネージャーとの統合
Keeperシークレットマネージャーとの統合機能を使用すると、ユーザー名とパスワード情報をKeepeボルト (保管庫) から直接取得することもできます。たとえば、Keeperボルトからユーザー名とパスワードを使用してJenkinsにログインする際には、「Hostname」というカスタムフィールドに基づいて検索を行います。
以下は、Keeperボルトのレコードの形式となります。
オーディオ設定用パラメータ
フィールドヘッダ (ウェブインターフェース)
パラメータ名
デフォルト値
説明
Disable Audio (オーディオを無効にする)
disable-audio
false
チェックされている場合 (true
に設定されている場合)、リモートブラウザ分離セッション内でオーディオが転送されません。ページはオーディオを再生しますが、オーディオは無視されます。
Channels (チャンネル)
audio-channels
2
KCMを介して送信されるオーディオデータに使用されるオーディオチャンネルの数。有効な値は、 1
(センターチャンネルのみのモノラルオーディオ、一般的には「モノ」と呼ばれる) と2
(左右のチャンネルを持つステレオオーディオ、一般的には「ステレオ」と呼ばれる)。
Bit Depth (ビット深度)
audio-bps
16
有効な値は、8
(8ビットオーディオ、比較的低品質) と16
(16ビットオーディオ、標準的な品質レベル)
Sample Rate (サンプルレート)
audio-sample-rate
44100
KCMを介して送信されるオーディオデータのサンプルレート (Hz単位)。
画面録画用パラメータ
リモートブラウザ分離セッションは録画できます。これらの録画は Guacamoleプロトコルのダンプ形式をとり、指定されたディレクトリに自動的に保存されます。録画はコネクションマネージャーの ユーザーインターフェイスで再生することも、オープンソースプレーヤーでファイルを再生することもできます。
プレーヤーは静的なウェブアプリケーションであり、録画の再生にJavaScriptのみを使用します。この機能は厳密にローカルで実装されており、録画ファイルが処理のためにリモートサービスにアップロードされることはありません。このアプリケーションを独自に展開する場合やソースコードを調査したい場合は、Keeperコネクションマネージャー セッション録画プレーヤーの完全なソースコードがGitHubで公開されており、ローカル展開の手順も記載されています。
Keeperコネクションマネージャーの最新バージョンでは、記録したセッションを画面上で再生できます。詳しくは、セッションレコーディングのページをご参照ください。
Recording path: (録画パス)
recording-path
画面録画ファイルを作成するディレクトリを指定します。グラフィカルな録画を作成する必要がある場合、このパラメータは必須です。このパラメータを指定することで、グラフィカルな画面録画が有効になります。もしこのパラメータを省略した場合、グラフィカルな録画は作成されません。
Recording name: (録画名)
recording-name
作成される録画ファイルのファイル名を指定します。このパラメータを省略すると、録画ファイルの名前は単純に「recording」となります。
Guacamoleは既存の録画ファイルを上書きすることはありません。必要に応じて、既存の録画ファイルと名前が重複しないように、「.1」、「.2」、「.3」などの数値の接尾辞がファイル名に追加されます。数値接尾辞を追加しても効果がない場合、セッションは録画されず、エラーがログに記録されます。
このパラメータは、グラフィカル録画が有効になっている場合にのみ効果を発揮します。録画パスを指定することでグラフィカル録画が有効になりますが、録画パスが指定されていない場合、グラフィカルセッションの録画は無効となり、このパラメータは無視されます。
Exclude graphics/streams: (グラフィックとストリーミングを除外)
recording-exclude-output
「true」に設定すると、通常サーバーからクライアントにストリーミングされるグラフィカル出力およびその他のデータが録画から除外され、ユーザー入力イベントのみを含む録画が生成されます。デフォルトでは録画にはグラフィカル出力が含まれます。
このパラメータは、グラフィカル録画が有効になっている場合にのみ効果を発揮します。録画パスを指定することでグラフィカル録画が有効になりますが、録画パスが指定されていない場合、グラフィカルセッションの録画は無効となり、このパラメータは無視されます。
Exclude mouse: (マウスを除外)
recording-exclude-mouse
このパラメータを「true」に設定すると、ユーザーのマウスイベントが録画から除外され、マウスカーソルが表示されない録画が生成されます。デフォルトでは、録画にはマウスイベントが含まれます。
このパラメータは、グラフィカル録画が有効になっている場合にのみ効果を発揮します。録画パスを指定することでグラフィカル録画が有効になりますが、録画パスが指定されていない場合、グラフィカルセッションの録画は無効となり、このパラメータは無視されます。
Exclude touch events: (タッチイベントを除外)
recording-exclude-touch
このパラメータを「true」に設定すると、ユーザーのタッチイベントが録画から除外され、タッチ操作の詳細が記録されない録画が生成されます。ただし、リモートデスクトップサーバーがタッチ操作を独自にレンダリングする場合、タッチイベントが完全に非表示になるわけではありません。デフォルトでは、録画にはタッチイベントが含まれます。
このパラメータは、グラフィカル録画が有効になっている場合にのみ適用されます。録画パスを指定することでグラフィカル録画が有効になりますが、録画パスが指定されていない場合、グラフィカルセッションの録画は無効となり、このパラメータは無視されます。
Include key events: (キーイベントを除外)
recording-include-keys
このパラメータを「true」に設定すると、ユーザーのキーボード入力イベントが録画に含まれるようになります。その後、録画データをguaclog
ユーティリティに通すことで、セッション中に押されたキーの内容を人間が読み取れる形式で解釈することが可能になります。デフォルトでは、プライバシー保護の観点から、キー入力イベントは録画に含まれません。
このパラメータは、グラフィカル録画が有効になっている場合にのみ適用されます。録画パスを指定することでグラフィカル録画が有効になりますが、録画パスが指定されていない場合、グラフィカルセッションの録画は無効となり、このパラメータは無視されます。
Automatically create recording path: (自動的に録画パスを作成)
create-recording-path
このパラメータを「true」に設定すると、指定された録画パス内の最終ディレクトリが存在しない場合に自動で作成されます。デフォルトでは、録画パスのいかなる部分も自動作成されず、存在しないディレクトリを使用しようとすると、セッションは録画されず、エラーが記録されます。
注意点として、自動作成されるのはパス内の最終ディレクトリのみです。パス内の他のディレクトリが存在しない場合、セッションは録画されず、エラーが記録されます。
このパラメータは、グラフィカル録画が有効になっている場合にのみ適用されます。録画パスを指定することでグラフィカル録画が有効になりますが、録画パスが指定されていない場合、グラフィカルセッションの録画は無効となり、このパラメータは無視されます。
SFTPパラメータ (ファイル転送)
自己署名またはカスタムCA証明書
対象のウェブアプリケーションで自己署名またはカスタムCA証明書が使用されている場合は、Docker ComposeでCA_CERTIFICATES環境変数を設定して証明書を許可します。例については、guacdパラメータのページをご参照ください。
ブラウザ分離に関するよくある質問
リモートブラウザ分離機能はKeeperコネクションマネージャー専用ですか?
はい、リモートブラウザ分離はKeeperコネクションマネージャーのアドオンとなります。
Keeperコネクションマネージャーの一部であるということは、リモートブラウザ分離機能は一般ユーザーを対象としていないということですか?
いいえ、リモートブラウザ分離機能はさまざまな使用例が考慮されています。エンドユーザーは、VPNやZTNA製品を必要とせずに、社内のウェブベースアプリケーションにアクセスできるようになります。リモートブラウザ分離はデバイス上のローカルエージェントも必要としません。
リモートブラウザ分離機能はLinux 専用ですか?
いいえ、リモートブラウザ分離機能はWindows、Mac、Linux、Android、iOSで動作します。
リモートブラウザ分離機能はDockerコンテナでのみ動作しますか、あるいはKubernetesでも動作しますか?
KeeperコネクションマネージャーはDockerコンテナとしてデプロイされ、Kubernetesデプロイメントでのランタイムとして使用できます。
RDP (リモートデスクトッププロトコル) は1つの画面に制限されていますか?
Keeperコネクションマネージャーは複数の画面にまたがって拡張でき、ユーザーが各モニターで個別のウィンドウを使用したい場合は、KCMを開いた状態で追加のブラウザを使用できます。
リモートブラウザ分離機能はCentrifyなどのPAMソリューションで動作しますか?
はい、ユーザーはリモートブラウザ分離機能を介して任意のウェブアプリケーションやウェブサイトにログインして、安全にセッションを実行、録画できます。
ローカルデバイスからブラウザコネクションにコピーアンドペーストできますか?
はい、管理者によって無効にされていない限り可能です。一部ブラウザではクリップボード統合がサポートされていない場合があります。
リモートブラウザ分離機能により、米国外のリモートチームメンバーがVPNを使う必要性がなくなりますか?
はい、Keeperコネクションマネージャーのリモートブラウザ分離機能により、VPNを使用して内部ウェブアプリケーションや特定のクラウドベースのアプリケーションにアクセスする必要がなくなります。
コネクションマネージャーからスキャナなどのローカルUSBデバイスにアクセスできますか?
現在はアクセスできません。この機能については検討中です。
リモートブラウザ分離機能により、フィッシングや悪意のあるウェブサイトからローカルデバイスに何かを挿入するのを防止できますか?
はい、すべてのアクティビティはリモートブラウザ分離サンドボックス内で行われるため、フィッシングや悪意のある行為者がローカルデバイスを攻撃するのを防止できます。
プロキシ経由でトラフィックをルーティングすることは可能ですか?
リモートブラウザ分離セッションでは、KeeperコネクションマネージャーコンテナをホストしているマシンがDNSを照会し、対象のウェブサイトやアプリケーションにウェブリクエストを送信できることが要件となります。Keeperコネクションマネージャーインスタンスからターゲットにアクセスできない場合は、サポートチームにお問い合わせの上構成をご確認ください。
録画は通常どのくらいのストレージを占有しますか? また、録画に関連するストレージに対してコストは発生しますか?
録画はKeeperコネクションマネージャーコンテナに保存されるため、Keeper側からのコストは発生しません。録画のサイズはUI操作の長さと量によって異なります。
リモートブラウザ分離機能はローカルマシンへのダウンロードにどのような影響を与えますか?
現時点ではファイルのダウンロードとアップロードはブロックされています。Keeperコネクションマネージャーの今後のアップデートで、ファイルのアップロードとファイルのダウンロードの両方を制御する機能が接続設定で利用できるようになる予定です。
リモートブラウザ分離機能はCyberArkの代替品になり得ますか?
はい、KeeperPAM (特権アクセスマネージャー) ではパスワードとパスキーの管理、シークレットの管理、接続の管理が可能となり、特権アクセスの管理に完全なゼロトラストアプローチをご利用になれます。KeeperとCyberArkなどの競合他社製品との比較に関しては、こちらのページをご覧ください。
リモートブラウザ分離機能はFIPS認定を受けているため、CUIにアクセスできますか?
Keeperでは、厳格な政府および公共部門のセキュリティ要件に対応するために、FIPS 140-2検証済みの暗号化モジュールを使用しています。 Keeperの暗号化技術は、NIST暗号化モジュール検証プログラム (CMVP) によって認定されており、認定されたサードパーティの研究機関によってFIPS 140 標準を満たすことが検証されています。Keeperへは、NIST CMVPから証明書#3976が発行されています。Keeper のセキュリティ、暗号化、コンプライアンスの詳細については、こちらのページをご覧ください。
Last updated