keeper/guacamole

Keeperコネクションマネージャーを使用したApache GuacamoleのDockerによるデプロイ

イメージ: keeper/guacamole

Keeperコネクションマネージャーの高度な機能を有効化するには、機能を制御する環境変数をdockerファイルに追加するか、以下に記載したEXTENSIONSフラグのいずれかを追加します。

サードパーティ製の拡張機能については、必要に応じてADDITIONAL_GUACAMOLE_PROPERTIES変数を設定し、ボリュームマウントを介して使用できます。

Guacamoleのログを表示

Guacamoleのログは、認証などリモートデスクトップに直接関連しないウェブアプリケーションの機能の予期しない挙動をデバッグする場合に有効です。Tomcat/Guacamoleのログを表示するには、トラブルシューティングのページをご参照ください。

デフォルトでは、これらのログには「info」レベル以上のメッセージのみが表示されます。これは、コンテナを作成するときに、LOG_LEVEL環境変数を使用して上書きできます。

環境変数

ACCEPT_EULA

環境変数ACCEPT_EULAは「Y」に設定して、KeeperコネクションマネージャーのEULAに同意したことを示す必要があります。このDockerイメージは、EULAの条件に従わないと使用できません。

KCM_LICENSE

KCM_LICENSE 環境変数には、Keeperサポートから提供されるライセンスキーが含まれています。

ADDITIONAL_GUACAMOLE_PROPERTIES

この変数はオプションで、起動中に/etc/guacamole/guacamole.propertiesに追加する必要のある追加コンテンツを指定します。この情報は、guacamole.properties.dockerを使用して追加されるため、この変数の内容に対する環境変数の代入が自動的に実行されます

ALLOWED_LANGUAGES

この変数はオプションで、Guacamole内の表示言語を言語キーのコンマ区切りリストに制限します。指定した場合、ユーザーは記載された言語のみを利用できるようになり、記載された言語のみがユーザーのブラウザの優先言語に基づいて自動的に選択されます。たとえば、Guacamoleを英語とドイツ語のみに制限するには、ALLOWED_LANGUAGES="en, de"と指定します。選択した言語で翻訳キーが見つからない場合には代わりに英語が使用されるため、このリストから英語を除外するのは、カスタム翻訳ですべての文字列が翻訳されている場合に限りましょう。

デフォルトでは、すべての定義済み言語が使用可能になります。

API_*

API_で始まるすべての環境変数は総じて、Guacamoleウェブアプリケーションを設定するための設定プロパティに関連します。これらの変数は、Guacamoleがユーザーセッションおよび受信したHTTPリクエストを処理する方法を制御します。これらの変数で制御するのは、Guacamoleウェブアプリケーションの機能のみであることにご注意ください。リモートデスクトップセッションの動作は制御されません。

変数名
説明

API_MAX_REQUEST_SIZE

REST APIに対する特定のHTTPリクエスト (認証リクエストなど) のエンティティボディで受け入れる最大バイト数。この制限は、リモートデスクトップセッション内で転送されるファイルには適用されません。0を指定すると、リクエストサイズの制限が無効になります。デフォルトでは、リクエストは2097152バイト (2MB) に制限されています。

API_SESSION_TIMEOUT

Guacamoleセッションがアクティブでなくても有効状態を維持できる時間 (分単位)。デフォルトでは、Guacamoleセッションは1時間に制限されています。

この設定は、Guacamoleセッションにのみ影響し、リモートデスクトップセッションには影響しません。リモートデスクトップセッションの時間に制限を適用するには、リモートデスクトップサーバー内の関連する設定 (Windows RDPサーバーに設定するセッション時間制限のGPOなど) を変更する必要があります。Guacamoleは、リモートデスクトップセッションが接続されるとユーザーがアクティブであると見なし、接続されているがアイドル状態であるリモートデスクトップセッションについては区別しません

AWS_DISCOVERY_*

AWS_DISCOVERY_で始まる環境変数はすべて、通常はguacamole.properties内で指定されるAWS EC2ディスカバリの設定プロパティに関連しています。

EC2ディスカバリを使用する場合は、以下の環境変数が必要です。

変数名
説明

AWS_DISCOVERY_ACCESS_KEY_ID

AWSでの認証に使用する必要のあるAWSアカウントのアクセスキーID。

AWS_DISCOVERY_SECRET_KEY

アクセスキーに関連付けられた秘密鍵

AWS_DISCOVERY_REGIONS

us-west-1、us-east-1などのEC2インスタンスを照会するリージョンのカンマ区切りリスト。

EC2ディスカバリに関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。

変数名
説明

AWS_DISCOVERY_INSTANCE_BASE_PATH

利便性を考慮し、EC2インスタンスを格納するために使用する必要のある組織の接続グループの名前。デフォルトでは、「Amazon EC2」になります。

AWS_DISCOVERY_ADMIN_GROUP

すべてのユーザーが検出されたEC2インスタンスを表示するために必要なKeeperコネクションマネージャーのユーザーグループの名前。デフォルトでは、「AWS EC 2 Administrators」という名前のグループになります。

AWS_DISCOVERY_RECORD_CONNECTIONS_BY_DEFAULT

「true」に設定すると、すべての接続で画面録画がデフォルトで有効になります。接続セッションの記録は、「kcm:record」EC2インスタンスタグを使用して個々のマシンレベルで設定することもでき、その場合は、ここで設定した値が上書きされます。

AWS_DISCOVERY_KSM_CONFIG

KeeperボルトからEC2インスタンスの秘密鍵を取得するために使用する、base64でエンコードされたKeeperシークレットマネージャーの設定。

AWS_DISCOVERY_KSM_API_CALL_INTERVAL

Keeperシークレットマネージャーに対するAPI呼び出しの最小間隔 (ミリ秒単位)。デフォルトでは、KCMは呼び出すたびに10秒待機します。次の取得の試行が許可されるまでは、最後に取得したキャッシュデータを使用します。

BAN_*

BAN_ で始まるすべての環境変数は、ウェブアプリケーションに対するブルートフォース認証攻撃が自動的にブロックする方法を設定するための構成プロパティに対応しています。これらの変数はすべて任意です。

変数名

BAN_ADDRESS_DURATION

IPアドレスが認証に繰り返し失敗した後に、一時的にブロックされる時間 (秒単位)。デフォルトでは、アドレスは5分間ブロックされます。

BAN_MAX_ADDRESSES

KCMが無効な試行回数をチェックするために追跡管理するIPアドレスの最大数。 デフォルトでは、最大10485760個のアドレスを追跡します。

BAN_MAX_INVALID_ATTEMPTS

送信元IPアドレスが以降の試行を一時的にブロックされるまでに実行可能な無効の試行回数。デフォルトでは、認証に5回失敗すると一時ブロックされます。

CA_CERTIFICATES

この変数は任意で、内部証明機関 (CA) が使用する1つ以上の証明書の内容をPEM形式で指定します。指定した場合、これらの証明書に基づいてSSL/TLSを使用する他のサーバーへの接続 (SSL/TLSを使用するLDAPサーバーへの接続など) の検証が行われます。

CATALINA_OPTS

この変数は任意で、Tomcatを実行するJVMに渡すべき任意のコマンドラインオプションを指定します。Tomcat固有のCATALINA_OPTS環境変数に対応しており、HTTP プロキシの使用設定など、主にプラットフォームレベルのオプションを構成するために必要に応じて追加のシステムプロパティをJVMに渡すために使用されます。

例えば、Keeperシークレットマネージャー (KSM) などのサービスへのAPI呼び出しを含め、すべてのアウトバウンドHTTPS接続がHTTPプロキシを通過するようにしたい場合、以下のようにCATALINA_OPTSを設定します。

-Dhttps.proxyHost=my.proxy -Dhttps.proxyPort=3129

ここで、「my.proxy」は使用する HTTP プロキシのホスト名または IP アドレス、「3129」はその TCP ポート番号です。

CONTEXT_PATH

この変数はオプションで、Guacamoleウェブアプリケーションサービスを提供するパスを指定します。デフォルトでは、ウェブアプリケーションサービスはルートディレクトリ (http://your-container:8080/) で提供されますが、これはCONTEXT_PATHで別の場所の名前を設定することで上書きできます。

なお、CONTEXT_PATHによる場所の指定では、スラッシュを使用できないことにご注意ください。より複雑にネストされたパスでウェブアプリケーションサービスを提供する必要がある場合は、NginxやApache HTTPDのようなリバースプロキシを使用する必要があります。

DUO_*

Duo多要素認証を使用する場合は、以下の環境変数が必要です。

変数名
説明

DUO_API_HOSTNAME

必須。ユーザーの認証を確認するために使用されるDuo APIエンドポイントのホスト名を指定します。このホスト名は、Guacamoleを「Web SDK」アプリケーションとしてDuoに追加した際に割り当てられます。この値は、Duoの「Admin」パネル内のアプリケーション詳細で確認できます。

DUO_AUTH_TIMEOUT

進行中のDuo認証試行のタイムアウト時間 (分単位) です。この期間を超える認証試行は無効になります。デフォルトでは、Duo認証試行は5分後にタイムアウトします。

DUO_CLIENT_ID

必須。KCMが「Web SDK」アプリケーションとしてDuoに追加された際にDuoから提供されるクライアントIDです。この値はDuoの「Admin」パネル内のアプリケーション詳細で確認できます。

DUO_CLIENT_SECRET

必須。KCMが「Web SDK」アプリケーションとしてDuoに追加された際にDuoから提供されるクライアントシークレットです。この値はDuoの「Admin」パネル内のアプリケーション詳細で確認できます。

DUO_REDIRECT_URI

必須。Duoサービスが認証されたユーザーのブラウザをKCMにリダイレクトするために使用するURIです。KCMデプロイメントで使用するURIです (例: https://kcm.company.com)。

EXTENSIONS

この変数は任意で、他のどの環境変数を指定するかに関係なくイメージ内で有効にするすべての拡張機能の名前をコンマまたは改行で区切ったリストを指定します。空の名前、空白、末尾のコンマは無視されます。

拡張機能の名前は、対応するKeeperコネクションマネージャーパッケージのguacamole(*)パッケージ機能 (RPMパッケージのメタデータの一部) によって決まります。

拡張機能名
宣言された機能
対応パッケージ

duo

guacamole(duo)

json

guacamole(json)

ldap

guacamole(ldap)

mysql

guacamole(mysql)

openid

guacamole(openid)

postgresql

guacamole(postgresql)

saml

guacamole(saml)

sqlserver

guacamole(sqlserver)

totp

guacamole(totp)

uds

guacamole(uds)

この変数は、主にTOTP二要素認証のように設定オプションなしで使用できる拡張機能や、関連する変数が誤ってすべて省略されていても必要な環境変数が設定されていることのチェックを強制するために使用します。拡張機能がこの環境変数内に記載されていなくても、対応する環境変数のいずれかが設定されている場合は利用できます。

EXTENSION_PRIORITY

この変数は任意で、拡張機能を互いに相対的に読み込む順序を指定します。デフォルトでは、拡張機能はファイル名に基づいてアルファベット順に読み込まれます。

拡張機能の読み込み順序を上書きするには、以下のように最初に読み込む必要がある各拡張機能の名前をコンマで区切って記載します。特殊な名前*は、他のすべての拡張機能のプレースホルダーとして使用できます。

説明
EXTENSION_PRIORITYの値

SAMLが他のすべての拡張機能よりも優先度が高いことを強制します。

saml

他のすべての拡張機能がSAMLよりも優先度が高いことを強制します。

*, saml

他のすべての認証メソッドよりもLDAPを優先し、他のすべての拡張機能がSAMLおよびOpenIDよりも優先度が高いことを強制します。

ldap, *, saml, openid

GUACD_*

guacdのTCP接続情報。

変数名
説明

GUACD_HOSTNAME

guacdサービスをホストしているマシンのホスト名。

以下の他の環境変数オプションは、guacdへの他の接続機能を設定するために使用できます。

変数名
説明

GUACD_PORT

guacdサービスが使用するポート。

GUACD_SSL

guacdサービスがSSL/TLS用に設定されているか否か。

JSON_*

JSON_で始まる環境変数はすべて、通常はguacamole.properties内で指定される暗号化されたJSON認証の設定プロパティに関連しています。

暗号化されたJSON認証を使用する場合は、以下の環境変数が必要です。

変数名
説明

JSON_SECRET_KEY

データを暗号化して署名するためのJSONデータを生成するシステムが使用する共有秘密鍵。この鍵は128ビットで、32桁の16進数で指定する必要があります。

暗号化されたJSON認証に関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。

変数名
説明

JSON_TRUSTED_NETWORKS

暗号化されたJSONの送信を許可する必要のある信頼できるIPアドレスやCIDRサブネットのコンマ区切りリスト。省略した場合、どのアドレスからでもJSONの送信が許可されます。

KSM_*

KSM_*で始まる環境変数はすべて、Keeperシークレットマネージャーの設定プロパティに関連しています。 Keeperボルト連携のページをご参照ください。

変数名
説明

KSM_ALLOW_USER_CONFIG

「true」に設定すると、ユーザーは自分自身のKSM設定またはワンタイムトークンを設定できるようになります。設定したユーザーのボルトのレコードは次の2つの条件が満たされる場合に接続で考慮されます。1. 管理者がその接続をユーザーのボルトで使用できるように有効化している。2. その接続に、システム全体のボルトに設定されているKSM_CONFIGからは満たされないトークンが含まれている。デフォルトでは、ユーザーは独自のKSM設定を指定できません。

KSM_API_CALL_INTERVAL

Keeperシークレットマネージャーに対するAPI呼び出しの最小間隔 (ミリ秒単位)。デフォルトでは、KCMは呼び出すたびに10秒待機します。次の取得の試行が許可されるまでは、最後に取得したキャッシュデータを使用します。

KSM_CONFIG

Keeperコマンダーによって生成されるKeeperシークレットマネージャーのb64設定ファイル。

KSM_MATCH_DOMAINS_FOR_USERS

「true」に設定すると、レコードがユーザー名と一致するかどうかを判定するときに、KSMのレコードおよびKCMの接続内のWindowsドメインが対象になります。デフォルトでは、対象はユーザー名だけです。

KSM_STRIP_WINDOWS_DOMAINS

「true」に設定した場合、KSMのレコード内のWindowsドメインは、代わりにレコードのユーザー名をユーザー名とドメインの部分に分割して判定されます。分割は、ユーザープリンシパル名形式とダウンレベルログオン名形式に基づいて実行されます。デフォルトでは、ユーザー名は分割されず、Windowsドメインはレコードの分割された「ドメイン」フィールドからのみ読み取られます。

KSM_TOKEN_MAPPING

Keeperボルトの特定のレコードおよびフィールドを識別するために使用される静的トークン。

*_KSM_SECRET

Keeperボルトでの設定値の保護と保管に使用されます。

LDAP_*

LDAP_で始まる環境変数はすべて、通常はguacamole.properties内で指定されるLDAP認証の設定プロパティに関連しています。

LDAP認証を使用する場合は、以下の環境変数が必要です (LDAPサーバーが1台の場合)。

変数名
説明

LDAP_HOSTNAME

Guacamoleが認証に使用するLDAPサーバーのホスト名またはIPアドレス。

LDAP_USER_BASE_DN

LDAPディレクトリ内のすべてのGuacamoleユーザーが共有する共通のベースDN。

LDAPサーバーを複数台使用する場合、またはLDAPサーバー設定をYAML形式で指定する場合は、以下の環境変数が必要です。

変数名
説明

LDAP_SERVERS

適切なyml形式のLDAPサーバーのリスト。こちらのページをご参照ください。

LDAP認証に関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。

変数名
説明

LDAP_PORT

LDAPサーバーの待ち受けTCPポート。省略した場合、暗号化メソッドに応じて標準のLDAPポートまたはLDAPSポートが使用されます。暗号化されていないLDAPは標準ポート389を使用するのに対し、LDAPSはポート636を使用します。

LDAP_ENCRYPTION_METHOD

LDAPサーバーと通信する場合に使用する暗号化メカニズム。適正値は、暗号化されていないLDAPの場合は「none」、LDAP over SSL/TLS (一般名称、LDAPS) の場合は「ssl」、STARTTLSの場合は「starttls」です。省略した場合、暗号化は使用されません。

LDAP_NETWORK_TIMEOUT

LDAPサーバーへの接続試行を含む、LDAPネットワーク操作に許容される最大時間 (ミリ秒単位)。デフォルトでは、LDAPネットワーク操作は30秒 (30000ミリ秒) でタイムアウトします。複数のLDAPサーバーで構成されている場合、代替のLDAPサーバーへの迅速なフェールオーバーが必要な場合があるため、この値は意図的にLDAP_OPERATION_TIMEOUTよりも細かく設定されていることにご注意ください。

LDAP_OPERATION_TIMEOUT

LDAPクエリに許容される最大時間 (単位)。デフォルトでは、LDAPクエリは30秒でタイムアウトします。

LDAP_USERNAME_ATTRIBUTE

LDAPディレクトリ内の関連するすべてのユーザーオブジェクトのユーザー名を含む属性。複数の属性でそのユーザー名を使用する場合は、複数の属性をコンマで区切って指定可能で、検索DNが必要になります。

LDAP_SEARCH_BIND_DN

認証を試みるユーザーのDNを特定する場合と同様に、ウェブアプリケーションがバインドするDN。ユーザー名が複数の属性のいずれかに含まれる場合、またはユーザーのユーザー名がDNの一部でない場合は、検索DNの指定が必要です。

LDAP_SEARCH_BIND_PASSWORD

検索DNで認証する場合に使用するパスワード。

LDAP_CONFIG_BASE_DN

すべてのguacConfigGroupオブジェクトで共有される共通のベースDN (接続データの格納にLDAPディレクトリが使用されている場合)。

LDAP_GROUP_BASE_DN

seeAlso属性を使用してLDAPディレクトリ内のguacConfigGroupアクセスを指定する可能性のあるすべてのユーザーグループによって共有される共通のベースDN。

LDAP_MAX_SEARCH_RESULTS

LDAPディレクトリから取得を試みる特定の検索結果の最大数。この制限を超える検索は失敗します。デフォルトでは、検索は1000エントリに制限されています。

LDAP_USER_SEARCH_FILTER

ユーザーアカウントを照会するときに使用するLDAP検索フィルタ。省略した場合、(objectClass=*)がデフォルトで使用されます。

LDAP_GROUP_SEARCH_FILTER

グループを取得するときに使用するLDAP検索フィルタ。省略した場合、 (objectClass=*) がデフォルトで使用されます。

LDAP_DEREFERENCE_ALIASES

エイリアスの参照を自動的に外すか否か。適正値は、「never」、「searching」 (ベースDNの検索後にのみ参照を外す)、「finding」 (ベースDNの検索時にのみ参照を外す)、「always」です。デフォルトでは、エイリアスの参照は外されません。

LDAP_FOLLOW_REFERRALS

「true」の場合、LDAPディレクトリから受信したリファラルに自動的に従います。デフォルトでは、LDAPリファラルには従いません。

LDAP_MAX_REFERRAL_HOPS

特定のLDAPリファラルを解決する場合に追跡できるリファラルの最大数。デフォルトでは、リファラルのLDAP自動追跡が有効になっている場合、1つのリファラルに対して最大5ホップまで許可されます。

CA_CERTIFICATES

内部認証局 (CA) が使用する1つまたは複数の証明書の内容 (PEM形式)。指定すると、SSL/TLSを使用するLDAPサーバーへの接続など、他のサーバーへのSSL/TLS接続がこれらの証明書に対して検証されます。

LOG_LEVEL

この変数は任意で、表示するログメッセージの最低レベルを指定します。有効な値は、詳細度が増す順に「error」、「warn」、「info」、「debug」、「trace」です。

デフォルトのログレベルは、「info」です。

MYSQL_*

MYSQL_で始まる環境変数はすべて、通常はguacamole.properties内で指定されるMySQL認証の設定プロパティに関連します。

MySQLを使用する予定の場合は、Guacamoleで使用するために自動的に初期化されるMySQLデータベースが含まれるkeeper/guacamole-db-mysqlイメージの使用をお勧めします。

MySQL認証を使用する場合は、以下の環境変数が必要です。

変数名
説明

MYSQL_HOSTNAME

Guacamoleデータベースを提供するMySQLサーバーまたはMariaDBサーバーのホスト名またはIPアドレス。

MYSQL_DATABASE

MySQLサーバーまたはMariaDBサーバーでGuacamole用に作成されたデータベースの名前。

MYSQL_USERNAME

GuacamoleがMySQLサーバーまたはMariaDBサーバーで認証するときに使用するユーザー名。

MYSQL_PASSWORD

GuacamoleがMySQLサーバーまたはMariaDBサーバーで認証するときに指定するパスワード。

MySQL認証に関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。

変数名
説明

MYSQL_PORT

MySQLサーバーまたはMariaDBサーバーの待ち受けTCPポート。省略した場合、標準のMySQLポート3306が使用されます。

MYSQL_USER_PASSWORD_MIN_LENGTH

ユーザーパスワードに必要な最小長。デフォルトでは、パスワードの複雑度に強制ルールはありません。

MYSQL_USER_PASSWORD_REQUIRE_MULTIPLE_CASE

「true」に設定した場合、ユーザーパスワードに大文字と小文字の両方の使用を義務づけます。

MYSQL_USER_PASSWORD_REQUIRE_SYMBOL

「true」に設定した場合、ユーザーパスワードに少なくとも1つの記号の使用を義務づけます。デフォルトでは、パスワードの複雑度に強制ルールはありません。

MYSQL_USER_PASSWORD_REQUIRE_DIGIT

「true」に設定した場合、ユーザーパスワードに少なくとも1つの数字の使用を義務づけます。デフォルトでは、パスワードの複雑度に強制ルールはありません。

MYSQL_USER_PASSWORD_PROHIBIT_USERNAME

「true」に設定した場合、ユーザーのユーザー名を使用するユーザーパスワードを禁止します。デフォルトでは、パスワードの複雑度に強制ルールはありません。

MYSQL_USER_PASSWORD_MIN_AGE

パスワードの変更後、ユーザーが再度パスワードを変更できるようになるまでの最小経過日数。デフォルトでは、パスワードを変更するための待機期間は不要です。

MYSQL_USER_PASSWORD_MAX_AGE

最後のパスワード変更から、ユーザーがパスワードの変更を求められるまでの最大経過日数。デフォルトでは、ユーザーは定期的にパスワードを変更する必要はありません。

MYSQL_USER_PASSWORD_HISTORY_SIZE

この数の分だけ過去のパスワードを記憶し、ユーザーがパスワードを変更する際に、記憶されたパスワードを流用することを禁止します。デフォルトでは、ユーザーは過去のパスワードを再利用できます。

MYSQL_DEFAULT_MAX_CONNECTIONS

ユーザーに関係なく、特定の接続に許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、接続の同時使用は制限されません。

MYSQL_DEFAULT_MAX_GROUP_CONNECTIONS

ユーザーに関係なく、特定の接続グループに許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、接続グループの同時使用は制限されません。

MYSQL_DEFAULT_MAX_CONNECTIONS_PER_USER

各ユーザーが特定の接続を保持できる同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、ユーザーごとの接続の同時使用は制限されません。

MYSQL_DEFAULT_MAX_GROUP_CONNECTIONS_PER_USER

各ユーザーが特定の接続グループを保持できる同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、ユーザーごとの接続グループの同時使用は、1つに制限されています。

MYSQL_ABSOLUTE_MAX_CONNECTIONS

ユーザー、接続、または接続グループに関係なく、全体で許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、全体的な同時使用は制限されません。

MYSQL_USER_REQUIRED

「true」に設定した場合、ユーザー認証に他のメカニズム (LDAPなど) を使用した場合でも、各ユーザーに対応するアカウントがデータベース内に定義されている必要があります。デフォルトでは、別のメカニズムで認証に成功したユーザーは、データベース内にもアカウントを設定する必要はありません。

MYSQL_TRACK_EXTERNAL_CONNECTION_HISTORY

データベース内に存在しない接続の接続履歴をデータベース内で追跡管理する必要があるか否か。「true」に設定すると、確立されたすべての接続に対して接続履歴の記録が作成されます。「false」に設定すると、データベースに定義された接続に対してのみ接続履歴の記録が作成されます。デフォルトでは、外部接続を追跡管理します。

MYSQL_ENFORCE_ACCESS_WINDOWS_FOR_ACTIVE_SESSIONS

管理者がユーザーアカウントに課したアクセス時間制限をユーザーのログイン中に適用するか否か。「true」 に設定すると、ユーザーはアクセス制限時間に達してから約1分以内に自動的にログアウトされます。「false」 に設定すると、アクセス時間制限はユーザーがログインしようとした瞬間にのみ適用されます。デフォルトでは、ユーザーがログインしている間も、アクセス時間制限が適用されます。

MYSQL_AUTO_CREATE_ACCOUNTS

SSOプロバイダやLDAPなどの他の手段で認証に成功したユーザー用のユーザーアカウントエントリをデータベース内に自動的に作成するか否か。これは、TOTPやアカウントごとの承認など、アカウント固有の記憶領域を必要とする拡張機能を使用する場合に必要になることがあります。「true」に設定すると、ユーザーアカウントのエントリが自動的に作成されます。デフォルトでは、管理者は必要に応じてこのようなエントリを手動で作成する必要があります。

OPENID_*

OPENID_で始まる環境変数はすべて、通常はguacamole.properties内で指定されるOpen ID Connect認証の設定プロパティに関連しています。

変数名
説明

OPENID_AUTHORIZATION_ENDPOINT

OpenIDサービスの認可エンドポイント (URI) 。この値は、IDプロバイダが発行する必要があります。OpenID Connect Discoveryを実装するIDプロバイダの場合、この値は、ご利用のプロバイダの「.well-known/openid-configuration」JSONファイルの「authorization_endpoint」プロパティから取得できます。

OPENID_CLIENT_ID

必要に応じてOpenIDサービスに送信するOpenIDクライアントID。この値は通常、アプリケーションのOpenIDクレデンシャルの生成時にOpenIDサービスが発行します。

OPENID_ISSUER

受信したすべてのIDトークンの発行者。この値は、IDプロバイダが発行する必要があります。OpenID Connect Discoveryを実装するIDプロバイダの場合、この値はプロバイダの

「.well-known/openid-configuration」JSONファイルの「issuer」プロパティから取得できます。

OPENID_JWKS_ENDPOINT

受信したIDトークン (JSON WebトークンすなわちJWT) の検証方法を定義するJWKSサービスのエンドポイント (URI)。この値は、IDプロバイダが発行する必要があります。OpenID Connect Discoveryを実装するIDプロバイダの場合、この値は、ご利用のプロバイダの「.well-known/openid-configuration」JSONファイルの「jwks_uri」プロパティから取得できます。

OPENID_REDIRECT_URI

認証プロセスの完了後に認証されたユーザーをKeeperコネクションマネージャーにリダイレクトできるように、OpenIDサービスに送信する必要のあるURI。これは、Keeperコネクションマネージャーにアクセスするためにユーザーがブラウザに入力する完全なURLである必要があります。認証プロセスの完了後に認証されたユーザーをKeeperコネクションマネージャーにリダイレクトできるように、OpenIDサービスに送信する必要のあるURI。これは、Keeperコネクションマネージャーにアクセスするためにユーザーがブラウザに入力する完全なURLである必要があります。

オプション変数:

変数名
説明

OPENID_ALLOWED_CLOCK_SKEW

GuacamoleサーバーのクロックとOpenIDサービスのクロック間のタイムスタンプ比較で許容されるクロックスキューの値 (秒単位)。デフォルトでは、最大30秒のクロックスキューが許容されます。

OPENID_GROUPS_CLAIM_TYPE

認証されたユーザーがメンバーであるグループのリストを含む任意の有効なJWT内のクレームタイプ。デフォルトでは、「groups」クレームタイプが使用されます。

OPENID_MAX_NONCE_VALIDITY

Guacamoleサーバーによって生成されたnonce (使い捨ての一意な値) が有効である最大時間 (分単位) を設定します。各OpenIDリクエストには一意のnonce値が含まれているため、これにより特定のOpenIDリクエストがGuacamole内で成功した認証を行うための最大時間が設定されます。デフォルトでは、生成されたnonceは10分後に期限切れになります。

OPENID_MAX_TOKEN_VALIDITY

OpenIDトークンが有効状態を維持する最大時間 (分単位)。デフォルトでは、各OpenIDトークンの有効期限は300分 (5時間) です。

OPENID_SCOPE

要求するOpenIDスコープのスペース区切りリスト。OpenIDスコープは、OpenIDトークン内で返される情報を特定するため、認証されたユーザーのユーザー名として使用できる値に影響します。OpenIDに準拠するには、少なくとも「openid profile」を要求する必要があります。デフォルトでは、「openid email profile」が使用されます。

OPENID_USERNAME_CLAIM_TYPE

認証されたユーザーがメンバーであるグループのリストを含む任意の有効なJWT内のクレームタイプ。デフォルトでは、「groups」クレームタイプが使用されます。

POSTGRES_*

POSTGRES_で始まる環境変数はすべて、通常はguacamole.properties内で指定されるPostgreSQL認証の設定プロパティに関連しています。

PostgreSQLを使用する予定の場合は、Guacamoleで使用するために自動的に初期化されるPostgreSQLデータベースが含まれるkeeper/guacamole-db-postgresイメージの使用をお勧めします。

PostgreSQL認証を使用する場合は、以下の環境変数が必要です。

変数名
説明

POSTGRES_HOSTNAME

Guacamoleデータベースを提供するPostgreSQLサーバーのホスト名またはIPアドレス。

POSTGRES_DATABASE

PostgreSQLサーバーでGuacamole用に作成されたデータベースの名前。

POSTGRES_USERNAME

GuacamoleがPostgreSQLサーバーで認証するときに使用するユーザー名。

POSTGRES_PASSWORD

GuacamoleがPostgreSQLサーバーで認証するときに指定するパスワード。

PostgreSQL認証に関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。

変数名
説明

POSTGRES_PORT

PostgreSQLサーバーの待ち受けTCPポート。省略した場合、標準のPostgreSQLポート5432が使用されます。

POSTGRES_USER_PASSWORD_MIN_LENGTH

ユーザーパスワードに必要な最小長。デフォルトでは、パスワードの複雑度に強制ルールはありません。

POSTGRES_USER_PASSWORD_REQUIRE_MULTIPLE_CASE

「true」に設定した場合、ユーザーパスワードに大文字と小文字の両方の使用を義務づけます。

POSTGRES_USER_PASSWORD_REQUIRE_SYMBOL

「true」に設定した場合、ユーザーパスワードに少なくとも1つの記号の使用を義務づけます。デフォルトでは、パスワードの複雑度に強制ルールはありません。

POSTGRES_USER_PASSWORD_REQUIRE_DIGIT

「true」に設定した場合、ユーザーパスワードに少なくとも1つの数字の使用を義務づけます。デフォルトでは、パスワードの複雑度に強制ルールはありません。

POSTGRES_USER_PASSWORD_PROHIBIT_USERNAME

「true」に設定した場合、ユーザーのユーザー名を使用するユーザーパスワードを禁止します。デフォルトでは、パスワードの複雑度に強制ルールはありません。

POSTGRES_USER_PASSWORD_MIN_AGE

パスワードの変更後、ユーザーが再度パスワードを変更できるようになるまでの最小経過日数。デフォルトでは、パスワードを変更するための待機期間は不要です。

POSTGRES_USER_PASSWORD_MAX_AGE

最後のパスワード変更から、ユーザーがパスワードの変更を求められるまでの最大経過日数。デフォルトでは、ユーザーは定期的にパスワードを変更する必要はありません。

POSTGRES_USER_PASSWORD_HISTORY_SIZE

この数の分だけ過去のパスワードを記憶し、ユーザーがパスワードを変更する際に、記憶されたパスワードを流用することを禁止します。デフォルトでは、ユーザーは過去のパスワードを再利用できます。

POSTGRES_DEFAULT_MAX_CONNECTIONS

ユーザーに関係なく、特定の接続に許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、接続の同時使用は制限されません。

POSTGRES_DEFAULT_MAX_GROUP_CONNECTIONS

ユーザーに関係なく、特定の接続グループに許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、接続グループの同時使用は制限されません。

POSTGRES_DEFAULT_MAX_CONNECTIONS_PER_USER

各ユーザーが特定の接続を保持できる同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、ユーザーごとの接続の同時使用は制限されません。

POSTGRES_DEFAULT_MAX_GROUP_CONNECTIONS_PER_USER

各ユーザーが特定の接続グループを保持できる同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、ユーザーごとの接続グループの同時使用は、1つに制限されています。

POSTGRES_ABSOLUTE_MAX_CONNECTIONS

ユーザー、接続、または接続グループに関係なく、全体で許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、全体的な同時使用は制限されません。

POSTGRES_USER_REQUIRED

「true」に設定した場合、ユーザー認証に他のメカニズム (LDAPなど) を使用した場合でも、各ユーザーに対応するアカウントがデータベース内に定義されている必要があります。デフォルトでは、別のメカニズムで認証に成功したユーザーは、データベース内にもアカウントを設定する必要はありません。

POSTGRESQL_TRACK_EXTERNAL_CONNECTION_HISTORY

データベース内に存在しない接続の接続履歴をデータベース内で追跡管理する必要があるか否か。「true」に設定すると、確立されたすべての接続に対して接続履歴の記録が作成されます。「false」に設定すると、データベースに定義された接続に対してのみ接続履歴の記録が作成されます。デフォルトでは、外部接続を追跡管理します。

POSTGRESQL_ENFORCE_ACCESS_WINDOWS_FOR_ACTIVE_SESSIONS

管理者がユーザーアカウントに課したアクセス時間制限をユーザーのログイン中に適用するか否か。「true」 に設定すると、ユーザーはアクセス制限時間に達してから約1分以内に自動的にログアウトされます。「false」 に設定すると、アクセス時間制限はユーザーがログインしようとした瞬間にのみ適用されます。デフォルトでは、ユーザーがログインしている間も、アクセス時間制限が適用されます。

POSTGRESQL_AUTO_CREATE_ACCOUNTS

SSOプロバイダやLDAPなどの他の手段で認証に成功したユーザー用のユーザーアカウントエントリをデータベース内に自動的に作成するか否か。これは、TOTPやアカウントごとの承認など、アカウント固有の記憶領域を必要とする拡張機能を使用する場合に必要になることがあります。「true」に設定すると、ユーザーアカウントのエントリが自動的に作成されます。デフォルトでは、管理者は必要に応じてこのようなエントリを手動で作成する必要があります。

REQUIRE_ACCOUNT_APPROVAL

この変数は任意であり、ユーザーの認証に使用できるようになる前にアカウントごとに管理者の承認を必要とする拡張機能を指定します。デフォルトでは、インストールされている認証メソッドはすべて使用できます。

特定の認証メソッドの承認を必要とする場合は、以下のように承認を必要とする各拡張機能の名前をコンマで区切ってリストに記載します。

説明
REQUIRE_ACCOUNT_APPROVALの値

SAMLからのログインに承認を要求します。

saml

SAMLおよびLDAPからのログインに承認を要求します。

saml, ldap

アカウントの承認ステータスは、KCMデータベース内にIDを持つユーザーに関してのみ保存および適用できます。使用しているデータベースに応じて、以下のいずれかの環境変数を「true」に設定することで、データベース内にまだ存在しないアカウントに対してこの記憶領域を自動的に作成するようにKCMに要求できます。

SAML_*

SAML_で始まる環境変数はすべて、通常はguacamole.properties内で指定されるSAML認証の設定プロパティに関連しています。

SAML認証を使用する場合は、以下の環境変数が必要です。

変数名
説明

SAML_CALLBACK_URL

認証結果をKeeperコネクションマネージャーにPOSTして、ユーザーをアプリケーションにリダイレクトできるように、SAMLサービスに送信する必要のあるURI。これは、Keeperコネクションマネージャーにアクセスするためにユーザーがブラウザに入力する完全なURLである必要があります。

オプションの環境変数

変数名
説明

SAML_COMPRESS_REQUEST

SAML IdPに送信されるHTTPリクエストの圧縮を有効にします。このプロパティはオプションで、デフォルトは「true」 (圧縮有効) です。

SAML_COMPRESS_RESPONSE

IdPから返されたSAMLレスポンスの圧縮を要求します。このプロパティはオプションで、デフォルトは「true」 (圧縮を要求) です。

SAML_ENTITY_ID

Guacamole SAMLクライアントのエンティティID。通常はGuacamoleサーバーのURLですが、そうである必要はありません。このプロパティが必要になるのは、saml-idp-metadata-urlプロパティが指定されていない場合、または設定されたメタデータファイルにGuacamoleクライアントのSAML SPエンティティIDが含まれていない場合です。

SAML_GROUP_ATTRIBUTE

SAML IdPが提供する属性の名前。ユーザーのグループメンバーシップを含みます。これらのグループは解析され、ユーザーがログインするグループメンバーシップをマッピングするために使用されます。これは、特に他の認証モジュールと階層化されている場合に、Guacamoleクライアント内での権限管理に使用できます。このプロパティはオプションで、デフォルトは「groups」です。

SAML_IDP_METADATA_URL

SAML拡張がIdPで認証する方法を知るために必要な情報をすべて含む、SAML IDプロバイダから取得したXMLメタデータファイルのURI。このURIは、リモートサーバー ( (https://) など) またはファイルシステム上のローカルファイル ( (file://) など) の場合もあります。メタデータファイルには、SAML認証に必要なプロパティがほとんど含まれている場合が多く、他のパラメータは必要ありません。

SAML_IDP_URL

SAML IdPのベースURL。これは、SAML認証拡張機能がSAML認証を要求するときに、リダイレクトに使用するURLです。saml-idp-metadata-url プロパティが設定されている場合、このパラメータは無視されます。メタデータファイルが設定されていない場合は、このプロパティが必要です。

SAML_PRIVATE_KEY_PATH

SAML IdPに送信されるSAMLリクエストの署名に使用するPEM形式の秘密鍵のフルパス。これは、SAML IdPがリクエストに署名を求める場合にのみ必要です。デフォルトでは、SAMLリクエストは署名されません。

SAML_X509_CERT_PATH

SAML IdPに送信されるSAMLリクエストの署名に使用するPEM形式のX.509証明書のフルパス。これは、SAML IdPがリクエストに署名を求める場合にのみ必要です。デフォルトでは、SAMLリクエストは署名されません。

SQLSERVER_*

SQLSERVER_で始まる環境変数はすべて、通常はguacamole.properties内で指定されるSQL Server認証の設定プロパティに関連しています。

SQL Server認証を使用する場合は、以下の環境変数が必要です。

変数名
説明

SQLSERVER_HOSTNAME

Guacamoleデータベースを提供するSQL Serverインスタンスのホスト名またはIPアドレス。

SQLSERVER_DATABASE

SQL ServerインスタンスでGuacamole用に作成されたデータベースの名前。

SQLSERVER_USERNAME

GuacamoleがSQL Serverインスタンスで認証するときに使用するユーザー名。

SQLSERVER_PASSWORD

GuacamoleがSQL Serverインスタンスで認証するときに指定するパスワード。

SQL Server認証に関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。

変数名
説明

SQLSERVER_PORT

SQL Serverインスタンスの待ち受けTCPポート。省略した場合、標準のSQL Serverポート1433が使用されます。

SQLSERVER_USER_PASSWORD_MIN_LENGTH

ユーザーパスワードに必要な最小長。デフォルトでは、パスワードの複雑度に強制ルールはありません。

SQLSERVER_USER_PASSWORD_REQUIRE_MULTIPLE_CASE

「true」に設定した場合、ユーザーパスワードに大文字と小文字の両方の使用を義務づけます。

SQLSERVER_USER_PASSWORD_REQUIRE_SYMBOL

「true」に設定した場合、ユーザーパスワードに少なくとも1つの記号の使用を義務づけます。デフォルトでは、パスワードの複雑度に強制ルールはありません。

SQLSERVER_USER_PASSWORD_REQUIRE_DIGIT

「true」に設定した場合、ユーザーパスワードに少なくとも1つの数字の使用を義務づけます。デフォルトでは、パスワードの複雑度に強制ルールはありません。

SQLSERVER_USER_PASSWORD_PROHIBIT_USERNAME

「true」に設定した場合、ユーザーのユーザー名を使用するユーザーパスワードを禁止します。デフォルトでは、パスワードの複雑度に強制ルールはありません。

SQLSERVER_USER_PASSWORD_MIN_AGE

パスワードの変更後、ユーザーが再度パスワードを変更できるようになるまでの最小経過日数。デフォルトでは、パスワードを変更するための待機期間は不要です。

SQLSERVER_USER_PASSWORD_MAX_AGE

最後のパスワード変更から、ユーザーがパスワードの変更を求められるまでの最大経過日数。デフォルトでは、ユーザーは定期的にパスワードを変更する必要はありません。

SQLSERVER_USER_PASSWORD_HISTORY_SIZE

この数の分だけ過去のパスワードを記憶し、ユーザーがパスワードを変更する際に、記憶されたパスワードを流用することを禁止します。デフォルトでは、ユーザーは過去のパスワードを再利用できます。

SQLSERVER_DEFAULT_MAX_CONNECTIONS

ユーザーに関係なく、特定の接続に許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、接続の同時使用は制限されません。

SQLSERVER_DEFAULT_MAX_GROUP_CONNECTIONS

ユーザーに関係なく、特定の接続グループに許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、接続グループの同時使用は制限されません。

SQLSERVER_DEFAULT_MAX_CONNECTIONS_PER_USER

各ユーザーが特定の接続を保持できる同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、ユーザーごとの接続の同時使用は制限されません。

SQLSERVER_DEFAULT_MAX_GROUP_CONNECTIONS_PER_USER

各ユーザーが特定の接続グループを保持できる同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、ユーザーごとの接続グループの同時使用は、1つに制限されています。

SQLSERVER_ABSOLUTE_MAX_CONNECTIONS

ユーザー、接続、または接続グループに関係なく、全体で許可する同時接続の最大数。ここで、値「0」は無制限を示します。デフォルトでは、全体的な同時使用は制限されません。

SQLSERVER_USER_REQUIRED

「true」に設定した場合、ユーザー認証に他のメカニズム (LDAPなど) を使用した場合でも、各ユーザーに対応するアカウントがデータベース内に定義されている必要があります。デフォルトでは、別のメカニズムで認証に成功したユーザーは、データベース内にもアカウントを設定する必要はありません。

SQLSERVER_TRACK_EXTERNAL_CONNECTION_HISTORY

データベース内に存在しない接続の接続履歴をデータベース内で追跡管理する必要があるか否か。「true」に設定すると、確立されたすべての接続に対して接続履歴の記録が作成されます。「false」に設定すると、データベースに定義された接続に対してのみ接続履歴の記録が作成されます。デフォルトでは、外部接続を追跡管理します。

SQLSERVER_ENFORCE_ACCESS_WINDOWS_FOR_ACTIVE_SESSIONS

管理者がユーザーアカウントに課したアクセス時間制限をユーザーのログイン中に適用するか否か。「true」 に設定すると、ユーザーはアクセス制限時間に達してから約1分以内に自動的にログアウトされます。「false」 に設定すると、アクセス時間制限はユーザーがログインしようとした瞬間にのみ適用されます。デフォルトでは、ユーザーがログインしている間も、アクセス時間制限が適用されます。

SQLSERVER_AUTO_CREATE_ACCOUNTS

SSOプロバイダやLDAPなどの他の手段で認証に成功したユーザー用のユーザーアカウントエントリをデータベース内に自動的に作成するか否か。これは、TOTPやアカウントごとの承認など、アカウント固有の記憶領域を必要とする拡張機能を使用する場合に必要になることがあります。「true」に設定すると、ユーザーアカウントのエントリが自動的に作成されます。デフォルトでは、管理者は必要に応じてこのようなエントリを手動で作成する必要があります。

SSL_*

SSL_で始まる環境変数はすべて、通常はguacamole.properties内で指定されるSSL/TLSクライアント認証 (スマートカード認証) の設定プロパティに関連します。

SSL/TLSクライアント認証を使用する場合は、以下の環境変数が必要です。

変数名
説明

SSL_CLIENT_AUTH_URI

このGuacamoleインスタンスを指し、SSL/TLSクライアント認証を要求する_ワイルドカード_URI。

SSL_PRIMARY_URI

このGuacamoleインスタンスを指し、SSL/TLSクライアント認証を要求_しない__ワイルドカードを使用しない_URI。

SSL/TLSクライアント認証に関連したその他のプロパティでは、他にも以下のオプションの環境変数を使用できます。

変数名
説明

SSL_CLIENT_CERTIFICATE_HEADER

SSL/TLSクライアント認証を提供するSSLターミネーションサービスから受信したHTTPリクエストから取得した、URLエンコードされたクライアント証明書を取得するために使用するヘッダーの名前。デフォルトでは、keeper/guacamole-ssl-nginxイメージの動作と一致する、X-Client-Certificateが使用されます。

SSL_CLIENT_VERIFIED_HEADER

SSL/TLSクライアント認証を提供するSSLターミネーションサービスからHTTPリクエストが受信した証明書の検証ステータスを取得するために使用するヘッダーの名前。証明書が正常に検証された場合、このヘッダーの値は「SUCCESS」 (すべて大文字) である必要があります。デフォルトでは、keeper/guacamole-ssl-nginxイメージの動作と一致する、X-Client-Verifiedが使用されます。

SSL_MAX_DOMAIN_VALIDITY

SSL/TLS認証のために一時的に生成された一意のサブドメインの有効時間 (分単位)。デフォルトでは、一時的なサブドメインは5分間有効です。

SSL_MAX_TOKEN_VALIDITY

SSL/TLS認証のために一時的な認証トークンの有効時間 (分単位)。デフォルトでは、一時的な認証トークンは5分間有効です。

SSL_SUBJECT_BASE_DN

有効なサブジェクトDNをすべて含むベースDN。指定した場合、このベースDNの下にあるサブジェクトDNを明示する証明書のみが受け入れられます。デフォルトでは、証明書が有効である限り、すべてのDNが受け入れられます。

SSL_SUBJECT_USERNAME_ATTRIBUTE

ユーザーのX .509証明書のサブジェクトDN内でユーザー名を表示するために使用できる1つまたは複数のLDAP属性。サブジェクトDNの最下位属性がこれらの属性のいずれでもない場合、証明書は拒否されます。デフォルトでは、任意の属性が受け入れられ、ユーザー名として使用されます。

TOTP_*

TOTP_で始まる環境変数はすべて、通常はguacamole.properties内で指定されるTOTP多要素認証の設定プロパティに関連しています。

変数名
説明

TOTP_ISSUER

ユーザーアカウントを発行するエンティティの人間が判読できる名前。デフォルトでは、これは「Apache Guacamole」です。

TOTP_DIGITS

生成された各コードで使用する必要のある桁数。TOTPでは、6桁、7桁、または8桁のコードを使用できます。これより長いコードや短いコードはTOTP規格に違反するため使用できません。デフォルトでは6桁のコードを使用します。

TOTP_PERIOD

生成された各コードの有効時間 (秒単位)。コード生成時間は正の整数秒で指定され、任意の値を指定できますが、ユーザーがコードを入力するのに十分な時間が取れるように、この値は十分に長くする必要があります。この時間が経過すると、認証デバイスは新しいコードを生成します。デフォルトでは、生成されたコードは30秒間有効です。

TOTP_MODE

コードの生成に使用するハッシュアルゴリズム。有効なTOTPモード (ハッシュ) は、「sha 1」、「sha 256」、「sha 512」です。デフォルトでは「sha 1」が使用されます。

UDS_*

UDS_で始まる環境変数はすべて、通常はguacamole.properties内で指定されるUDS Enterpriseと連携するための設定プロパティに関連しています。

変数名
説明

UDS_BASE_URL

リモートアクセスを提供するためにKeeperコネクションマネージャーを利用できるUDS EnterpriseデプロイのベースURL。Keeperコネクションマネージャーは、このURLを使用してUDSとやりとりし、接続要求を認証および認可します。

USER_MAPPING

この変数はオプションで、/etc/guacamole/user-mapping.xmlファイルの内容を完全に指定します。このファイルを使用すると、MySQL、PostgreSQL、LDAPなどのより複雑な認証メソッドを設定せずに、Guacamoleのデプロイをテストできます。これは、Keeperコネクションマネージャーのインストール手順で説明されている認証メカニズムです。

このファイルの内容は基本的に機密であるため、後述のようにUSE_SHM環境変数が「N」に設定されていない限り、ファイルは単にメモリ (/dev/shm内) に格納されます。

USE_DEFAULT_BRANDING

Keeperコネクションマネージャーには、独自のデフォルトのブランディングが付属しています。独自のカスタムブランディングを使用する場合は、オプションのUSE_DEFAULT_BRANDING環境変数を「N」に設定して、Keeperのブランディングを無効にし、ご利用のブランディング拡張機能との競合を回避する必要があります。

USE_SHM

この変数はオプションであり、既知の機密ファイルをメモリではなくディスクに強制的に保管するために使用できます。保管をディスクに強制するには、USE_SHMを「N」に設定します。

デフォルトでは、keeper/guacamoleイメージは機密性が高いことがわかっているファイルの内容を/dev/shm内に保存するため、これらのファイルはメモリにのみ保存され、機密データがディスクに存続するおそれはありません。このようなファイルは起動中に環境変数からDockerイメージによって生成されるため、Dockerシークレットが使用されている場合に特に有効です。

Dockerシークレット

環境変数でデータを直接渡すのではなく、このイメージでサポートされている任意の環境変数に_FILE接尾辞を付加して、コンテナ内の指定されたファイルからその変数を強制的に読み込ませることができます。たとえば、ファイルから/etc/guacamole/user-mapping.xmlを読み取る操作は以下のとおりです。

docker run --name some-guacamole \
    -e ACCEPT_EULA=Y \
    -e GUACD_HOSTNAME=some-guacd \
    -e USER_MAPPING_FILE=/some/volume/mount/user-mapping.xml \
    -d keeper/guacamole

Dockerシークレットでは機密データがコンテナ内の/run/secrets/配下のファイルに格納されるため、これを使用して以下のように機密データをDockerシークレットから読み込めます。

docker run --name some-guacamole \
    -e ACCEPT_EULA=Y \
    -e GUACD_HOSTNAME=some-guacd \
    -e MYSQL_HOSTNAME=some-mysql \
    -e MYSQL_DATABASE=guacamole_db \
    -e MYSQL_USERNAME_FILE=/run/secrets/mysql-username \
    -e MYSQL_PASSWORD_FILE=/run/secrets/mysql-password \
    -d keeper/guacamole

Last updated