keeper/guacamole
Keeper Connection Managerを使用したApache GuacamoleのDockerによるデプロイ
イメージ: keeper/guacamole
Keeper Connection Managerの高度な機能を有効化するには、機能を制御する環境変数をdockerファイルに追加するか、または以下に記載したEXTENSIONSフラグのいずれかを追加するだけです。
サードパーティ製の任意の拡張機能は、必要に応じてADDITIONAL_GUACAMOLE_PROPERTIES
変数を設定し、ボリュームマウントを介して使用できます。
Guacamoleのログを表示
Guacamoleのログは、認証など、リモートデスクトップに直接関連しないウェブアプリケーションの機能の予期しない挙動をデバッグする場合に有効です。Tomcat/Guacamoleのログを表示するには、トラブルシューティングのドキュメントに従ってください。
デフォルトでは、これらのログには「info」レベル以上のメッセージのみが表示されます。これは、コンテナを作成するときに、LOG_LEVEL
環境変数を使用して上書きできます。
環境変数
ACCEPT_EULA
ACCEPT_EULA
環境変数ACCEPT_EULA
は「Y」に設定して、Keeper Connection ManagerのEULAに同意したことを示す必要があります。このDockerイメージは、EULAの条件に従わないと使用できません。
ADDITIONAL_GUACAMOLE_PROPERTIES
ADDITIONAL_GUACAMOLE_PROPERTIES
この変数はオプションで、起動中に/etc/guacamole/guacamole.properties
に追加する必要のある追加コンテンツを指定します。この情報は、guacamole.properties.docker
を使用して追加されるため、環境変数の代入はこの変数の情報に対して自動的に実行されます。
ALLOWED_LANGUAGES
ALLOWED_LANGUAGES
この変数はオプションで、Guacamole内の表示言語を言語キーのコンマ区切りリストに制限します。指定した場合、ユーザーは記載された言語のみを利用できるようになり、記載された言語のみがユーザーのブラウザの優先言語に基づいて自動的に選択されます。たとえば、Guacamoleを英語とドイツ語のみに制限するには、ALLOWED_LANGUAGES="en, de"
と指定します。選択した言語で翻訳キーが見つからない場合に使用される代替言語が英語であるため、このリストから英語を除外するのは、カスタム翻訳で見つからない文字列がないことが確実な場合にのみにすべきです。
デフォルトでは、すべての定義済み言語が使用可能になります。
API_*
API_*
API_
で始まるすべての環境変数は総じて、Guacamoleウェブアプリケーションを設定するための設定プロパティに関連します。これらの変数は、Guacamoleがユーザーセッションおよび受信したHTTPリクエストを処理する方法を制御します。これらの変数で制御するのは、Guacamoleウェブアプリケーションの機能のみであることにご注意ください。リモートデスクトップセッションの動作は制御されません。
変数名 | 説明 |
---|---|
| REST APIに対する特定のHTTPリクエスト(認証リクエストなど)のエンティティボディで受け入れる最大バイト数。**この制限は、リモートデスクトップセッション内で転送されるファイルには適用されません。**0を指定すると、リクエストサイズの制限が無効になります。デフォルトでは、リクエストは2097152バイト(2MB)に制限されています。 |
| Guacamoleセッションがアクティブでなくても有効状態を維持できる時間(分単位)。デフォルトでは、Guacamoleセッションは1時間に制限されています。 この設定は、Guacamoleセッションにのみ影響し、リモートデスクトップセッションには影響しません。リモートデスクトップセッションの時間に制限を適用するには、リモートデスクトップサーバー内の関連する設定(Windows RDPサーバーに設定するセッション時間制限のGPOなど)を変更する必要があります。Guacamoleは、リモートデスクトップセッションが接続されるとユーザーがアクティブであると見なし、接続されたリモートデスクトップセッション以外にアイドル状態と見なすものを定義しようとはしません。 |
AWS_DISCOVERY_*
AWS_DISCOVERY_*
AWS_DISCOVERY_
で始まる環境変数はすべて、通常はguacamole.properties
内で指定されるAWS EC2ディスカバリの設定プロパティに関連します。
EC2ディスカバリを使用する場合は、以下の環境変数が必要です。
変数名 | 説明 |
---|---|
| AWSでの認証に使用する必要のあるAWSアカウントのアクセスキーID。 |
| アクセスキーに関連付けられた秘密鍵 |
|
|
EC2ディスカバリに関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。
変数名 | 説明 |
---|---|
| 利便性を考慮し、EC2インスタンスを格納するために使用する必要のある組織的な接続グループの名前。デフォルトでは、「Amazon EC2」になります。 |
| すべてのユーザーが検出されたEC2インスタンスを表示するために必要なKeeper Connection Managerのユーザーグループの名前。デフォルトでは、「AWS EC 2 Administrators」という名前のグループになります。 |
| 「true」に設定すると、すべての接続で画面記録がデフォルトで有効になります。接続セッションの記録は、「 |
| KeeperボルトからEC2インスタンスの秘密鍵を取得するために使用する、base64でエンコードされたKeeper Secrets Managerの設定。 |
| Keeper Secrets Managerに対するAPI呼び出しの最小間隔(ミリ秒単位)。デフォルトでは、KCMは呼び出すたびに10秒待機します。次の取得の試行が許可されるまでは、最後に取得したキャッシュデータを使用します。 |
BAN_*
BAN_*
BAN_
で始まる環境変数はすべて、ウェブアプリケーションに対する総当たり攻撃にも見える認証の試行を自動的にブロックする方法を設定するための設定プロパティに関連します。これらの変数はどれもオプションです。
変数名 | |
---|---|
| IPアドレスが認証に繰り返し失敗した後に、一時的にブロックされる時間(秒単位)。デフォルトでは、アドレスは5分間ブロックされます。 |
| KCMが無効な試行回数をチェックするために追跡管理するIPアドレスの最大数。 デフォルトでは、最大10485760個のアドレスを追跡します。 |
| 送信元IPアドレスが以降の試行を一時的にブロックされるまでに実行可能な無効の試行回数。デフォルトでは、認証に5回失敗すると一時ブロックされます。 |
CONTEXT_PATH
CONTEXT_PATH
この変数はオプションで、Guacamoleウェブアプリケーションサービスを提供するパスを指定します。デフォルトでは、ウェブアプリケーションサービスはルートディレクトリ(http://your-container:8080/
)で提供されますが、これはCONTEXT_PATH
で別の場所の名前を設定することで上書きできます。
なお、CONTEXT_PATH
による場所の指定では、スラッシュを使用できないことにご注意ください。より複雑にネストされたパスでウェブアプリケーションサービスを提供する必要がある場合は、Nginx やApache HTTPDのようなリバースプロキシを使用する必要があります。
DUO_*
DUO_*
Duo多要素認証を使用する場合は、以下の環境変数が必要です。
変数名 | 説明 |
---|---|
| Guacamoleが「Web SDK」アプリケーションとして追加されたときにDuoによって割り当てられた、ユーザーIDの確認に使用されるDuo APIエンドポイントのホスト名。この値は、Duoの「管理者」パネルのアプリケーションの詳細情報内に表示されます。 |
| Guacamoleが「Web SDK」アプリケーションとして追加されたときにDuoが発行した連携用の鍵。この値は、Duoの「管理者」パネルのアプリケーションの詳細情報内に表示されます。 |
| Guacamoleが「Web SDK」アプリケーションとして追加されたときにDuoが発行した秘密鍵。この値は、Duoの「管理者」パネルのアプリケーションの詳細情報内に表示されます。 |
| 40文字以上で構成される任意のランダムな鍵。この値は、Guacamoleのデプロイ専用に手動で生成する必要があります。 |
EXTENSIONS
EXTENSIONS
この変数はオプションで、他のどの環境変数を指定するかに関係なく、イメージ内で有効にする必要があるすべての拡張機能の名前をコンマまたは改行で区切ったリストを指定します。空の名前、空白、末尾のコンマは無視されます。
拡張機能の名前は、対応するKeeper Connection Managerパッケージのguacamole(*)
パッケージ機能(RPMパッケージのメタデータの一部)によって決まります。
拡張機能名 | 宣言された機能 | 対応パッケージ |
---|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
この変数は、TOTP二要素認証のように設定オプションを何も設定せずに使用できる拡張機能に使用したり、関連する変数が誤ってすべて省略されるおそれがある場合でも、必要な環境変数が設定されていることを確認するためのサニティーチェックを強制したりするために主に使用します。拡張機能がこの環境変数内に記載されていなくても、対応する環境変数のいずれかが設定されている場合は利用できます。
EXTENSION_PRIORITY
EXTENSION_PRIORITY
この変数はオプションで、拡張機能を互いに相対的に読み込む順序を指定します。デフォルトでは、拡張機能はファイル名に基づいてアルファベット順に読み込まれます。
拡張機能の読み込み順序を上書きするには、最初に読み込む必要がある各拡張機能の名前をコンマで区切って記載します。特殊な名前*
は、他のすべての拡張機能のプレースホルダーとして使用できます。以下に例を示します。
説明 | EXTENSION_PRIORITYの値 |
---|---|
SAMLが他のすべての拡張機能よりも優先度が高いことを強制します。 |
|
他のすべての拡張機能がSAMLよりも優先度が高いことを強制します。 |
|
他のすべての認証メソッドよりもLDAPを優先し、他のすべての拡張機能がSAMLおよびOpenIDよりも優先度が高いことを強制します。 |
|
GUACD_*
GUACD_*
guacdのTCP接続情報。
変数名 | 説明 |
---|---|
| guacdサービスをホストしているマシンのホスト名。 |
以下の他の環境変数オプションは、guacdへの他の接続機能を設定するために使用できます。
変数名 | 説明 |
---|---|
| guacdサービスが使用するポート。 |
| guacdサービスがSSL/TLS用に設定されているか否か。 |
JSON_*
JSON_*
JSON_
で始まる環境変数はすべて、通常はguacamole.properties
内で指定される暗号化されたJSON認証の設定プロパティに関連します。
暗号化されたJSON認証を使用する場合は、以下の環境変数が必要です。
変数名 | 説明 |
---|---|
| データを暗号化して署名するためのJSONデータを生成するシステムが使用する共有秘密鍵。この鍵は128ビットで、32桁の16進数で指定する必要があります。 |
暗号化されたJSON認証に関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。
変数名 | 説明 |
---|---|
| 暗号化されたJSONの送信を許可する必要のある信頼できるIPアドレスやCIDRサブネットのコンマ区切りリスト。省略した場合、どのアドレスからでもJSONの送信が許可されます。 |
KSM_*
KSM_*
KSM_*
で始まる環境変数はすべて、Keeper Secrets Managerの設定プロパティに関連します。 Keeperボルト連携ガイドをご参照ください。
変数名 | 説明 |
---|---|
| 「true」に設定すると、独自のKSM設定またはワンタイムトークンを設定できるようになります。これを設定したユーザーのボルトの記録は、(1) 管理者がユーザーのボルトでの使用を有効化し、かつ(2) |
| Keeper Secrets Managerに対するAPI呼び出しの最小間隔(ミリ秒単位)。デフォルトでは、KCMは呼び出すたびに10秒待機します。次の取得の試行が許可されるまでは、最後に取得したキャッシュデータを使用します。 |
| Keeper Commanderによって生成されるKeeper Secrets Managerのb64設定ファイル。 |
| 「true」に設定すると、記録がユーザー名と一致するかどうかを判定するときに、KSMの記録およびKCMの接続内のWindowsドメインが対象になります。デフォルトでは、対象はユーザー名だけです。 |
| 「true」に設定した場合、KSMの記録内のWindowsドメインは、代わりに記録のユーザー名をユーザー名とドメインの部分に分割して判定されます。分割は、ユーザープリンシパル名形式とダウンレベルログオン名形式に基づいて実行されます。デフォルトでは、ユーザー名は分割されず、Windowsドメインは記録の分割された「ドメイン」フィールドからのみ読み取られます。 |
| Keeperボルトの特定の記録およびフィールドを識別するために使用される静的トークン。 |
| Keeperボルトでの設定値の保護と保管に使用されます。 |
LDAP_*
LDAP_*
LDAP_
で始まる環境変数はすべて、通常はguacamole.properties
内で指定されるLDAP認証の設定プロパティに関連します。
LDAP認証を使用する場合は、以下の環境変数が必要です(LDAPサーバーが1台の場合)。
変数名 | 説明 |
---|---|
| Guacamoleが認証に使用するLDAPサーバーのホスト名またはIPアドレス。 |
| LDAPディレクトリ内のすべてのGuacamoleユーザーが共有する共通のベースDN。 |
LDAPサーバーを複数台使用する場合、またはLDAPサーバー設定をYAML形式で指定する場合は、以下の環境変数が必要です。
変数名 | 説明 |
---|---|
| Guacamoleが認証に使用するLDAPサーバーについて記載した |
LDAP認証に関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。
変数名 | 説明 |
---|---|
| LDAPサーバーの待ち受けTCPポート。省略した場合、暗号化メソッドに応じて標準のLDAPポートまたはLDAPSポートが使用されます。暗号化されていないLDAPは標準ポート389を使用するのに対し、LDAPSはポート636を使用します。 |
| LDAPサーバーと通信する場合に使用する暗号化メカニズム。適正値は、暗号化されていないLDAPの場合は「none」、LDAP over SSL/TLS(一般名称、LDAPS)の場合は「ssl」、STARTTLSの場合は「starttls」です。省略した場合、暗号化は使用されません。 |
| LDAPサーバーへの接続試行を含む、LDAPネットワーク操作に許容される最大時間(ミリ秒単位)。デフォルトでは、LDAPネットワーク操作は30秒(30000ミリ秒)でタイムアウトします。複数のLDAPサーバーで構成されている場合、代替のLDAPサーバーへの迅速なフェールオーバーが必要な場合があるため、この値は意図的に |
| LDAPクエリに許容される最大時間(秒単位)。デフォルトでは、LDAPクエリは30秒でタイムアウトします。 |
| LDAPディレクトリ内の関連するすべてのユーザーオブジェクトのユーザー名を含む属性。複数の属性でそのユーザー名を使用する場合は、複数の属性をコンマで区切って指定可能で、検索DNが必要になります。 |
| 認証を試みるユーザーのDNを特定する場合と同様に、ウェブアプリケーションがバインドするDN。ユーザー名が複数の属性のいずれかに含まれる場合、またはユーザーのユーザー名がDNの一部でない場合は、検索DNの指定が必要です。 |
| 検索DNで認証する場合に使用するパスワード。 |
| すべての |
|
|
| LDAPディレクトリから取得を試みる特定の検索結果の最大数。この制限を超える検索は失敗します。デフォルトでは、検索は1000エントリに制限されています。 |
| ユーザーアカウントを照会するときに使用するLDAP検索フィルタ。省略した場合、 |
| グループを取得するときに使用するLDAP検索フィルタ。省略した場合、 |
| エイリアスの参照を自動的に外すか否か。適正値は、「never」、「searching」(ベースDNの検索後にのみ参照を外す)、「finding」(ベースDNの検索時にのみ参照を外す)、「always」です。デフォルトでは、エイリアスの参照は外されません。 |
| 「true」の場合、LDAPディレクトリから受信したリファラルに自動的に従います。デフォルトでは、LDAPリファラルには従いません。 |
| 特定のLDAPリファラルを解決する場合に追跡できるリファラルの最大数。デフォルトでは、リファラルのLDAP自動追跡が有効になっている場合、1つのリファラルに対して最大5ホップまで許可されます。 |
| 内部認証局(CA)が使用する1つまたは複数の証明書の内容(PEM形式)。指定すると、SSL/TLSを使用するLDAPサーバーへの接続など、他のサーバーへのSSL/TLS接続がこれらの証明書に対して検証されます。 |
LOG_LEVEL
LOG_LEVEL
この変数はオプションで、表示するログメッセージの最低レベルを指定します。有効な値は、詳細度が増す順に「error」、「warn」、「info」、「debug」、「trace」です。
デフォルトのログレベルは、「info」です。
MYSQL_*
MYSQL_*
MYSQL_
で始まる環境変数はすべて、通常はguacamole.properties
内で指定されるMySQL認証の設定プロパティに関連します。
MySQLを使用する予定の場合は、Guacamoleで使用するために自動的に初期化されるMySQLデータベースが含まれるkeeper/guacamole-db-mysql
イメージの使用をお勧めします。
MySQL認証を使用する場合は、以下の環境変数が必要です。
変数名 | 説明 |
---|---|
| Guacamoleデータベースを提供するMySQLサーバーまたはMariaDBサーバーのホスト名またはIPアドレス。 |
| MySQLサーバーまたはMariaDBサーバーでGuacamole用に作成されたデータベースの名前。 |
| GuacamoleがMySQLサーバーまたはMariaDBサーバーで認証するときに使用するユーザー名。 |
| GuacamoleがMySQLサーバーまたはMariaDBサーバーで認証するときに指定するパスワード。 |
MySQL認証に関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。
変数名 | 説明 |
---|---|
| MySQLサーバーまたはMariaDBサーバーの待ち受けTCPポート。省略した場合、標準のMySQLポート3306が使用されます。 |
| ユーザーパスワードに必要な最小長。デフォルトでは、パスワードの複雑度に強制ルールはありません。 |
| 「true」に設定した場合、ユーザーパスワードに大文字と小文字の両方の使用を義務づけます。 |
| 「true」に設定した場合、ユーザーパスワードに少なくとも1つの記号の使用を義務づけます。デフォルトでは、パスワードの複雑度に強制ルールはありません。 |
| 「true」に設定した場合、ユーザーパスワードに少なくとも1つの数字の使用を義務づけます。デフォルトでは、パスワードの複雑度に強制ルールはありません。 |
| 「true」に設定した場合、ユーザーのユーザー名を使用するユーザーパスワードを禁止します。デフォルトでは、パスワードの複雑度に強制ルールはありません。 |
| パスワードの変更後、ユーザーが再度パスワードを変更できるようになるまでの最小経過日数。デフォルトでは、パスワードを変更するための待機期間は不要です。 |
| 最後のパスワード変更から、ユーザーがパスワードの変更を求められるまでの最大経過日数。デフォルトでは、ユーザーは定期的にパスワードを変更する必要はありません。 |
| この数の分だけ過去のパスワードを記憶し、ユーザーがパスワードを変更する際に、記憶されたパスワードを流用することを禁止します。デフォルトでは、ユーザーは過去のパスワードを再利用できます。 |
| ユーザーに関係なく、特定の接続に許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、接続の同時使用は制限されません。 |
| ユーザーに関係なく、特定の接続グループに許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、接続グループの同時使用は制限されません。 |
| 各ユーザーが特定の接続を保持できる同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、ユーザーごとの接続の同時使用は制限されません。 |
| 各ユーザーが特定の接続グループを保持できる同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、ユーザーごとの接続グループの同時使用は、1つに制限されています。 |
| ユーザー、接続、または接続グループに関係なく、全体で許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、全体的な同時使用は制限されません。 |
| 「true」に設定した場合、ユーザー認証に他のメカニズム(LDAPなど)を使用した場合でも、各ユーザーに対応するアカウントがデータベース内に定義されている必要があります。デフォルトでは、別のメカニズムで認証に成功したユーザーは、データベース内にもアカウントを設定する必要はありません。 |
| データベース内に存在しない接続の接続履歴をデータベース内で追跡管理する必要があるか否か。「true」に設定すると、確立されたすべての接続に対して接続履歴の記録が作成されます。「false」に設定すると、データベースに定義された接続に対してのみ接続履歴の記録が作成されます。デフォルトでは、外部接続を追跡管理します。 |
| 管理者がユーザーアカウントに課したアクセス時間制限をユーザーのログイン中に適用するか否か。「true」 に設定すると、ユーザーはアクセス制限時間に達してから約1分以内に自動的にログアウトされます。「false」 に設定すると、アクセス時間制限はユーザーがログインしようとした瞬間にのみ適用されます。デフォルトでは、ユーザーがログインしている間も、アクセス時間制限が適用されます。 |
| SSOプロバイダやLDAPなどの他の手段で認証に成功したユーザー用のユーザーアカウントエントリをデータベース内に自動的に作成するか否か。これは、TOTPやアカウントごとの承認など、アカウント固有の記憶領域を必要とする拡張機能を使用する場合に必要になることがあります。「true」に設定すると、ユーザーアカウントのエントリが自動的に作成されます。デフォルトでは、管理者は必要に応じてこのようなエントリを手動で作成する必要があります。 |
OPENID_*
OPENID_*
OPENID_で始まる環境変数はすべて、通常はguacamole.properties内で指定されるOpen ID Connect認証の設定プロパティに関連します。
変数名 | 説明 |
---|---|
| OpenIDサービスの認可エンドポイント(URI) 。この値は、IDプロバイダが発行する必要があります。OpenID Connect Discoveryを実装するIDプロバイダの場合、この値は、ご利用のプロバイダの「.well-known/openid-configuration」JSONファイルの「authorization_endpoint」プロパティから取得できます。 |
| 必要に応じてOpenIDサービスに送信するOpenIDクライアントID。この値は通常、アプリケーションのOpenIDクレデンシャルの生成時にOpenIDサービスが発行します。 |
| 受信したすべてのIDトークンの発行者。この値は、IDプロバイダが発行する必要があります。OpenID Connect Discoveryを実装するIDプロバイダの場合、この値はプロバイダの 「.well-known/openid-configuration」JSONファイルの「issuer」プロパティから取得できます。 |
| 受信したIDトークン(JSON WebトークンすなわちJWT)の検証方法を定義するJWKSサービスのエンドポイント(URI)。この値は、IDプロバイダが発行する必要があります。OpenID Connect Discoveryを実装するIDプロバイダの場合、この値は、ご利用のプロバイダの「.well-known/openid-configuration」JSONファイルの「jwks_uri」プロパティから取得できます。 |
| 認証プロセスの完了後に認証されたユーザーをKeeper Connection Managerにリダイレクトできるように、OpenIDサービスに送信する必要のあるURI。これは、Keeper Connection Managerにアクセスするためにユーザーがブラウザに入力する完全なURLである必要があります。認証プロセスの完了後に認証されたユーザーをKeeper Connection Managerにリダイレクトできるように、OpenIDサービスに送信する必要のあるURI。これは、Keeper Connection Managerにアクセスするためにユーザーがブラウザに入力する完全なURLである必要があります。 |
オプション変数:
変数名 | 説明 |
---|---|
| GuacamoleサーバーのクロックとOpenIDサービスのクロック間のタイムスタンプ比較で許容されるクロックスキューの値(秒単位)。デフォルトでは、最大30秒のクロックスキューが許容されます。 |
| 認証されたユーザーがメンバーであるグループのリストを含む任意の有効なJWT内のクレームタイプ。デフォルトでは、「groups」クレームタイプが使用されます。 |
| Guacamoleサーバーが生成したナンスが有効状態を維持する最大時間(分単位)。OpenIDリクエストごとに一意のナンス値が生成されるため、これにより、個々のOpenIDリクエストがGuacamole内での認証に成功するまでの時間に上限が課されます。デフォルトでは、生成された各ナンスの有効期限は10分です。 |
| OpenIDトークンが有効状態を維持する最大時間(分単位)。デフォルトでは、各OpenIDトークンの有効期限は300分(5時間)です。 |
| 要求するOpenIDスコープのスペース区切りリスト。OpenIDスコープは、OpenIDトークン内で返される情報を特定するため、認証されたユーザーのユーザー名として使用できる値に影響します。OpenIDに準拠するには、少なくとも「openid profile」を要求する必要があります。デフォルトでは、「openid email profile」が使用されます。 |
| 認証されたユーザーがメンバーであるグループのリストを含む任意の有効なJWT内のクレームタイプ。デフォルトでは、「groups」クレームタイプが使用されます。 |
POSTGRES_*
POSTGRES_*
POSTGRES_
で始まる環境変数はすべて、通常はguacamole.properties
内で指定されるPostgreSQL認証の設定プロパティに関連します。
PostgreSQLを使用する予定の場合は、Guacamoleで使用するために自動的に初期化されるPostgreSQLデータベースが含まれるkeeper/guacamole-db-postgres
イメージの使用をお勧めします。
PostgreSQL認証を使用する場合は、以下の環境変数が必要です。
変数名 | 説明 |
---|---|
| Guacamoleデータベースを提供するPostgreSQLサーバーのホスト名またはIPアドレス。 |
| PostgreSQLサーバーでGuacamole用に作成されたデータベースの名前。 |
| GuacamoleがPostgreSQLサーバーで認証するときに使用するユーザー名。 |
| GuacamoleがPostgreSQLサーバーで認証するときに指定するパスワード。 |
PostgreSQL認証に関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。
変数名 | 説明 |
---|---|
| PostgreSQLサーバーの待ち受けTCPポート。省略した場合、標準のPostgreSQLポート5432が使用されます。 |
| ユーザーパスワードに必要な最小長。デフォルトでは、パスワードの複雑度に強制ルールはありません。 |
| 「true」に設定した場合、ユーザーパスワードに大文字と小文字の両方の使用を義務づけます。 |
| 「true」に設定した場合、ユーザーパスワードに少なくとも1つの記号の使用を義務づけます。デフォルトでは、パスワードの複雑度に強制ルールはありません。 |
| 「true」に設定した場合、ユーザーパスワードに少なくとも1つの数字の使用を義務づけます。デフォルトでは、パスワードの複雑度に強制ルールはありません。 |
| 「true」に設定した場合、ユーザーのユーザー名を使用するユーザーパスワードを禁止します。デフォルトでは、パスワードの複雑度に強制ルールはありません。 |
| パスワードの変更後、ユーザーが再度パスワードを変更できるようになるまでの最小経過日数。デフォルトでは、パスワードを変更するための待機期間は不要です。 |
| 最後のパスワード変更から、ユーザーがパスワードの変更を求められるまでの最大経過日数。デフォルトでは、ユーザーは定期的にパスワードを変更する必要はありません。 |
| この数の分だけ過去のパスワードを記憶し、ユーザーがパスワードを変更する際に、記憶されたパスワードを流用することを禁止します。デフォルトでは、ユーザーは過去のパスワードを再利用できます。 |
| ユーザーに関係なく、特定の接続に許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、接続の同時使用は制限されません。 |
| ユーザーに関係なく、特定の接続グループに許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、接続グループの同時使用は制限されません。 |
| 各ユーザーが特定の接続を保持できる同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、ユーザーごとの接続の同時使用は制限されません。 |
| 各ユーザーが特定の接続グループを保持できる同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、ユーザーごとの接続グループの同時使用は、1つに制限されています。 |
| ユーザー、接続、または接続グループに関係なく、全体で許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、全体的な同時使用は制限されません。 |
| 「true」に設定した場合、ユーザー認証に他のメカニズム(LDAPなど)を使用した場合でも、各ユーザーに対応するアカウントがデータベース内に定義されている必要があります。デフォルトでは、別のメカニズムで認証に成功したユーザーは、データベース内にもアカウントを設定する必要はありません。 |
| データベース内に存在しない接続の接続履歴をデータベース内で追跡管理する必要があるか否か。「true」に設定すると、確立されたすべての接続に対して接続履歴の記録が作成されます。「false」に設定すると、データベースに定義された接続に対してのみ接続履歴の記録が作成されます。デフォルトでは、外部接続を追跡管理します。 |
| 管理者がユーザーアカウントに課したアクセス時間制限をユーザーのログイン中に適用するか否か。「true」 に設定すると、ユーザーはアクセス制限時間に達してから約1分以内に自動的にログアウトされます。「false」 に設定すると、アクセス時間制限はユーザーがログインしようとした瞬間にのみ適用されます。デフォルトでは、ユーザーがログインしている間も、アクセス時間制限が適用されます。 |
| SSOプロバイダやLDAPなどの他の手段で認証に成功したユーザー用のユーザーアカウントエントリをデータベース内に自動的に作成するか否か。これは、TOTPやアカウントごとの承認など、アカウント固有の記憶領域を必要とする拡張機能を使用する場合に必要になることがあります。「true」に設定すると、ユーザーアカウントのエントリが自動的に作成されます。デフォルトでは、管理者は必要に応じてこのようなエントリを手動で作成する必要があります。 |
REQUIRE_ACCOUNT_APPROVAL
REQUIRE_ACCOUNT_APPROVAL
この変数はオプションであり、ユーザーの認証に使用できるようになる前に、アカウントごとに管理者の明確な承認を必要とする拡張機能を指定します。デフォルトでは、インストールされている認証メソッドはすべて使用できます。
特定の認証メソッドの承認を必要とする場合は、承認を必要とする各拡張機能の名前をコンマで区切ってリストに記載します。以下に例を示します。
説明 | REQUIRE_ACCOUNT_APPROVALの値 |
---|---|
SAMLからのログインに承認を要求します。 |
|
SAMLおよびLDAPからのログインに承認を要求します。 |
|
アカウントの承認ステータスは、KCMデータベース内にIDを持つユーザーに関してのみ保存および適用できます。使用しているデータベースに応じて、以下のいずれかの環境変数を「true」に設定することで、データベース内にまだ存在しないアカウントに対してこの記憶領域を自動的に作成するようにKCMに要求できます。
SAML_*
SAML_*
SAML_
で始まる環境変数はすべて、通常はguacamole.properties
内で指定されるSAML認証の設定プロパティに関連します。
SAML認証を使用する場合は、以下の環境変数が必要です。
変数名 | 説明 |
---|---|
| 認証結果をKeeper Connection ManagerにPOSTして、ユーザーをアプリケーションにリダイレクトできるように、SAMLサービスに送信する必要のあるURI。これは、Keeper Connection Managerにアクセスするためにユーザーがブラウザに入力する完全なURLである必要があります。 |
オプションの環境変数:
変数名 | 説明 |
---|---|
| SAML IdPに送信されるHTTPリクエストの圧縮を有効にします。このプロパティはオプションで、デフォルトは「true(圧縮有効)」です。 |
| IdPから返されたSAMLレスポンスの圧縮を要求します。このプロパティはオプションで、デフォルトは「true(圧縮を要求)」です。 |
| Guacamole SAMLクライアントのエンティティID。通常はGuacamoleサーバーのURLですが、そうである必要はありません。このプロパティが必要になるのは、saml-idp-metadata-urlプロパティが指定されていない場合、または設定されたメタデータファイルにGuacamoleクライアントのSAML SPエンティティIDが含まれていない場合です。 |
| SAML IdPが提供する属性の名前。ユーザーのグループメンバーシップを含みます。これらのグループは解析され、ユーザーがログインするグループメンバーシップをマッピングするために使用されます。これは、特に他の認証モジュールと階層化されている場合に、Guacamoleクライアント内での権限管理に使用できます。このプロパティはオプションで、デフォルトは「groups」です。 |
| SAML拡張がIdPで認証する方法を知るために必要な情報をすべて含む、SAML IDプロバイダから取得したXMLメタデータファイルのURI。このURIは、リモートサーバー(https://)など)またはファイルシステム上のローカルファイル(file://)など)の場合もあります。メタデータファイルには、SAML認証に必要なプロパティがほとんど含まれている場合が多く、他のパラメータは必要ありません。 |
| SAML IdPのベースURL。これは、SAML認証拡張機能がSAML認証を要求するときに、リダイレクトに使用するURLです。saml-idp-metadata-url プロパティが設定されている場合、このパラメータは無視されます。メタデータファイルが設定されていない場合は、このプロパティが必要です。 |
| SAML IdPに送信されるSAMLリクエストの署名に使用するPEM形式の秘密鍵のフルパス。これは、SAML IdPがリクエストに署名を求める場合にのみ必要です。デフォルトでは、SAMLリクエストは署名されません。 |
| SAML IdPに送信されるSAMLリクエストの署名に使用するPEM形式のX.509証明書のフルパス。これは、SAML IdPがリクエストに署名を求める場合にのみ必要です。デフォルトでは、SAMLリクエストは署名されません。 |
SQLSERVER_*
SQLSERVER_*
SQLSERVER_
で始まる環境変数はすべて、通常はguacamole.properties
内で指定されるSQL Server認証の設定プロパティに関連します。
SQL Server認証を使用する場合は、以下の環境変数が必要です。
変数名 | 説明 |
---|---|
| Guacamoleデータベースを提供するSQL Serverインスタンスのホスト名またはIPアドレス。 |
| SQL ServerインスタンスでGuacamole用に作成されたデータベースの名前。 |
| GuacamoleがSQL Serverインスタンスで認証するときに使用するユーザー名。 |
| GuacamoleがSQL Serverインスタンスで認証するときに指定するパスワード。 |
SQL Server認証に関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。
変数名 | 説明 |
---|---|
| SQL Serverインスタンスの待ち受けTCPポート。省略した場合、標準のSQL Serverポート1433が使用されます。 |
| ユーザーパスワードに必要な最小長。デフォルトでは、パスワードの複雑度に強制ルールはありません。 |
| 「true」に設定した場合、ユーザーパスワードに大文字と小文字の両方の使用を義務づけます。 |
| 「true」に設定した場合、ユーザーパスワードに少なくとも1つの記号の使用を義務づけます。デフォルトでは、パスワードの複雑度に強制ルールはありません。 |
| 「true」に設定した場合、ユーザーパスワードに少なくとも1つの数字の使用を義務づけます。デフォルトでは、パスワードの複雑度に強制ルールはありません。 |
| 「true」に設定した場合、ユーザーのユーザー名を使用するユーザーパスワードを禁止します。デフォルトでは、パスワードの複雑度に強制ルールはありません。 |
| パスワードの変更後、ユーザーが再度パスワードを変更できるようになるまでの最小経過日数。デフォルトでは、パスワードを変更するための待機期間は不要です。 |
| 最後のパスワード変更から、ユーザーがパスワードの変更を求められるまでの最大経過日数。デフォルトでは、ユーザーは定期的にパスワードを変更する必要はありません。 |
| この数の分だけ過去のパスワードを記憶し、ユーザーがパスワードを変更する際に、記憶されたパスワードを流用することを禁止します。デフォルトでは、ユーザーは過去のパスワードを再利用できます。 |
| ユーザーに関係なく、特定の接続に許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、接続の同時使用は制限されません。 |
| ユーザーに関係なく、特定の接続グループに許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、接続グループの同時使用は制限されません。 |
| 各ユーザーが特定の接続を保持できる同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、ユーザーごとの接続の同時使用は制限されません。 |
| 各ユーザーが特定の接続グループを保持できる同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、ユーザーごとの接続グループの同時使用は、1つに制限されています。 |
| ユーザー、接続、または接続グループに関係なく、全体で許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、全体的な同時使用は制限されません。 |
| 「true」に設定した場合、ユーザー認証に他のメカニズム(LDAPなど)を使用した場合でも、各ユーザーに対応するアカウントがデータベース内に定義されている必要があります。デフォルトでは、別のメカニズムで認証に成功したユーザーは、データベース内にもアカウントを設定する必要はありません。 |
| データベース内に存在しない接続の接続履歴をデータベース内で追跡管理する必要があるか否か。「true」に設定すると、確立されたすべての接続に対して接続履歴の記録が作成されます。「false」に設定すると、データベースに定義された接続に対してのみ接続履歴の記録が作成されます。デフォルトでは、外部接続を追跡管理します。 |
| 管理者がユーザーアカウントに課したアクセス時間制限をユーザーのログイン中に適用するか否か。「true」 に設定すると、ユーザーはアクセス制限時間に達してから約1分以内に自動的にログアウトされます。「false」 に設定すると、アクセス時間制限はユーザーがログインしようとした瞬間にのみ適用されます。デフォルトでは、ユーザーがログインしている間も、アクセス時間制限が適用されます。 |
| SSOプロバイダやLDAPなどの他の手段で認証に成功したユーザー用のユーザーアカウントエントリをデータベース内に自動的に作成するか否か。これは、TOTPやアカウントごとの承認など、アカウント固有の記憶領域を必要とする拡張機能を使用する場合に必要になることがあります。「true」に設定すると、ユーザーアカウントのエントリが自動的に作成されます。デフォルトでは、管理者は必要に応じてこのようなエントリを手動で作成する必要があります。 |
SSL_*
SSL_*
SSL_
で始まる環境変数はすべて、通常はguacamole.properties
内で指定されるSSL/TLSクライアント認証(スマートカード認証)の設定プロパティに関連します。
SSL/TLSクライアント認証を使用する場合は、以下の環境変数が必要です。
変数名 | 説明 |
---|---|
| このGuacamoleインスタンスを指し、SSL/TLSクライアント認証を要求する_ワイルドカード_URI。 |
| このGuacamoleインスタンスを指し、SSL/TLSクライアント認証を要求_しない__ワイルドカードを使用しない_URI。 |
SSL/TLSクライアント認証に関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。
変数名 | 説明 |
---|---|
| SSL/TLSクライアント認証を提供するSSLターミネーションサービスから受信したHTTPリクエストから取得した、URLエンコードされたクライアント証明書を取得するために使用するヘッダーの名前。デフォルトでは、 |
| SSL/TLSクライアント認証を提供するSSLターミネーションサービスからHTTPリクエストが受信した証明書の検証ステータスを取得するために使用するヘッダーの名前。証明書が正常に検証された場合、このヘッダーの値は「SUCCESS」(すべて大文字)である必要があります。デフォルトでは、 |
| SSL/TLS認証のために一時的に生成された一意のサブドメインの有効時間(分単位)。デフォルトでは、一時的なサブドメインは5分間有効です。 |
| SSL/TLS認証のために一時的な認証トークンの有効時間(分単位)。デフォルトでは、一時的な認証トークンは5分間有効です。 |
| 有効なサブジェクトDNをすべて含むベースDN。指定した場合、このベースDNの下にあるサブジェクトDNを明示する証明書のみが受け入れられます。デフォルトでは、証明書が有効である限り、すべてのDNが受け入れられます。 |
| ユーザーのX .509証明書のサブジェクトDN内でユーザー名を表示するために使用できる1つまたは複数のLDAP属性。サブジェクトDNの最下位属性がこれらの属性のいずれでもない場合、証明書は拒否されます。デフォルトでは、任意の属性が受け入れられ、ユーザー名として使用されます。 |
TOTP_*
TOTP_*
TOTP_
で始まる環境変数はすべて、通常はguacamole.properties
内で指定されるTOTP多要素認証の設定プロパティに関連します。
変数名 | 説明 |
---|---|
| ユーザーアカウントを発行するエンティティの人間が判読できる名前。デフォルトでは、これは「Apache Guacamole」です。 |
| 生成された各コードで使用する必要のある桁数。TOTPでは、6桁、7桁、または8桁のコードを使用できます。これより長いコードや短いコードはTOTP規格に違反するため使用できません。デフォルトでは6桁のコードを使用します。 |
| 生成された各コードの有効時間(秒単位)。コード生成時間は正の整数秒で指定され、任意の値を指定できますが、ユーザーがコードを入力するのに十分な時間が取れるように、この値は十分に長くする必要があります。この時間が経過すると、認証デバイスは新しいコードを生成します。デフォルトでは、生成されたコードは30秒間有効です。 |
| コードの生成に使用するハッシュアルゴリズム。有効なTOTPモード(ハッシュ)は、「sha 1」、「sha 256」、「sha 512」です。デフォルトでは「sha 1」が使用されます。 |
UDS_*
UDS_*
UDS_
で始まる環境変数はすべて、通常はguacamole.properties
内で指定されるUDS Enterpriseと連携するための設定プロパティに関連します。
変数名 | 説明 |
---|---|
| リモートアクセスを提供するためにKeeper Connection Managerを利用できるUDS EnterpriseデプロイのベースURL。Keeper Connection Managerは、このURLを使用してUDSとやりとりし、接続要求を認証および認可します。 |
USER_MAPPING
USER_MAPPING
この変数はオプションで、/etc/guacamole/user-mapping.xml
ファイルの内容を完全に指定します。このファイルを使用すると、MySQL、PostgreSQL、LDAPなどのより複雑な認証メソッドを設定せずに、Guacamoleのデプロイをテストできます。これは、Keeper Connection Managerのインストール手順で説明されている認証メカニズムです。
このファイルの内容は基本的に機密であるため、後述のようにUSE_SHM
環境変数が「N」に設定されていない限り、ファイルは単にメモリ(/dev/shm
内)に格納されます。
USE_DEFAULT_BRANDING
USE_DEFAULT_BRANDING
Keeper Connection Managerには、独自のデフォルトのブランディングが付属しています。独自のカスタムブランディングを使用する場合は、オプションのUSE_DEFAULT_BRANDING
環境変数を「N」に設定して、Keeperのブランディングを無効にし、ご利用のブランディング拡張機能との競合を回避する必要があります。
USE_SHM
USE_SHM
この変数はオプションであり、既知の機密ファイルをメモリではなくディスクに強制的に保管するために使用できます。保管をディスクに強制するには、USE_SHM
を「N」に設定します。
デフォルトでは、keeper/guacamole
イメージは機密性が高いことがわかっているファイルの内容を/dev/shm
内に保存するため、これらのファイルはメモリにのみ保存され、機密データがディスクに存続するおそれはありません。このようなファイルは起動中に環境変数からDockerイメージによって生成されるため、Dockerシークレットが使用されている場合に特に有効です。
Dockerシークレット
環境変数でデータを直接渡すのではなく、このイメージでサポートされている任意の環境変数に_FILE
サフィックスを付加して、コンテナ内の指定されたファイルからその変数を強制的に読み込ませることができます。たとえば、ファイルから/etc/guacamole/user-mapping.xml
を読み取る操作は以下のとおりです。
Dockerシークレットは機密データをコンテナ内の/run/secrets/
配下のファイルに格納するため、これを使用して機密データをDockerシークレットから以下のようにして読み込めます。
Last updated