# keeper/guacamole

**イメージ:** `keeper/guacamole`

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

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

* [環境変数](#id-.glyptodon-guacamolev2.x-environmentvariables)
  * [ACCEPT\_EULA](#id-.glyptodon-guacamolev2.x-accept_eula)
  * [KCM\_LICENSE](#id-.glyptodon-guacamolev2.x-accept_eula-1)
  * [ADDITIONAL\_GUACAMOLE\_PROPERTIES](#id-.glyptodon-guacamolev2.x-additional_guacamole_properties)
  * [ALLOWED\_LANGUAGES](#id-.glyptodon-guacamolev2.x-allowed_languages)
  * [API\_\*](#id-.glyptodon-guacamolev2.x-api)
  * [AWS\_DISCOVERY\_\*](#id-.glyptodon-guacamolev2.x-context_path)
  * [BAN\_\*](#id-.glyptodon-guacamolev2.x-context_path-1)
  * ​[CA\_CERTIFICATES](#ca_certificates)​
  * ​[CATALINA\_OPTS](#id-.glyptodon-guacamolev2.x-context_path-2)
  * [CONTEXT\_PATH](#id-.glyptodon-guacamolev2.x-context_path-2)
  * [DUO\_\*](#id-.glyptodon-guacamolev2.x-duoduo)
  * [EXTENSIONS](#id-.glyptodon-guacamolev2.x-extensions)
  * [EXTENSION\_PRIORITY](#id-.glyptodon-guacamolev2.x-guacdguacd)
  * [GUACD\_\*](#id-.glyptodon-guacamolev2.x-guacdguacd-1)
  * [JSON\_\*](#id-.glyptodon-guacamolev2.x-jsonjson)
  * [KSM\_\*](#id-.glyptodon-guacamolev2.x-ldapldap)
  * [LDAP\_\*](#id-.glyptodon-guacamolev2.x-ldapldap-1)
  * [LOG\_LEVEL](#id-.glyptodon-guacamolev2.x-log_level)
  * [MYSQL\_\*](#id-.glyptodon-guacamolev2.x-mysqlmysql)
  * [OPENID\_\*](#openid)
  * [POSTGRES\_\*](#id-.glyptodon-guacamolev2.x-postgrespostgres)
  * [REQUIRE\_ACCOUNT\_APPROVAL](#require_account_approval)
  * [SAML\_\*](#saml)
  * [SQLSERVER\_\*](#id-.glyptodon-guacamolev2.x-sqlserversqlserver)
  * [SSL\_\*](#ssl)
  * [TOTP\_\*](#id-.glyptodon-guacamolev2.x-totptotp)
  * [UDS\_\*](#id-.glyptodon-guacamolev2.x-udsuds)
  * [USER\_MAPPING](#id-.glyptodon-guacamolev2.x-user_mapping)
  * [USE\_DEFAULT\_BRANDING](#id-.glyptodon-guacamolev2.x-use_default_branding)
  * [USE\_SHM](#id-.glyptodon-guacamolev2.x-use_shm)
* [Dockerシークレット](#id-.glyptodon-guacamolev2.x-dockersecrets)

## Guacamoleのログを表示 <a href="#id-.glyptodon-guacamolev2.x-viewingtheguacamolelogs" id="id-.glyptodon-guacamolev2.x-viewingtheguacamolelogs"></a>

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

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

## 環境変数 <a href="#id-.glyptodon-guacamolev2.x-environmentvariables" id="id-.glyptodon-guacamolev2.x-environmentvariables"></a>

### `ACCEPT_EULA` <a href="#id-.glyptodon-guacamolev2.x-accept_eula" id="id-.glyptodon-guacamolev2.x-accept_eula"></a>

環境変数`ACCEPT_EULA`は「Y」に設定して、[KeeperコネクションマネージャーのEULA](https://www.keepersecurity.com/en_GB/termsofuse.html?t=v)に同意したことを示す必要があります。このDockerイメージは、EULAの条件に従わないと使用できません。

### `KCM_LICENSE` <a href="#id-.glyptodon-guacamolev2.x-additional_guacamole_properties" id="id-.glyptodon-guacamolev2.x-additional_guacamole_properties"></a>

`KCM_LICENSE` 環境変数には、[Keeperサポート](https://www.keepersecurity.com/support.html)から提供されるライセンスキーが含まれています。

### `ADDITIONAL_GUACAMOLE_PROPERTIES` <a href="#id-.glyptodon-guacamolev2.x-additional_guacamole_properties" id="id-.glyptodon-guacamolev2.x-additional_guacamole_properties"></a>

この変数はオプションで、起動中に`/etc/guacamole/guacamole.properties`に追加する必要のある追加コンテンツを指定します。この情報は、[`guacamole.properties.docker`](https://github.com/Keeper-Security/gitbook-jp-kcm/blob/main/installation/docker-compose-install/broken-reference/README.md)を使用して追加されるため、**この変数の内容に対する環境変数の代入が自動的に実行されます**。

### `ALLOWED_LANGUAGES` <a href="#id-.glyptodon-guacamolev2.x-allowed_languages" id="id-.glyptodon-guacamolev2.x-allowed_languages"></a>

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

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

### `API_*` <a href="#id-.glyptodon-guacamolev2.x-api" id="id-.glyptodon-guacamolev2.x-api"></a>

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

| 変数名                    | 説明                                                                                                                                                                                                                                                                                                                                                                      |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `API_MAX_REQUEST_SIZE` | REST APIに対する特定のHTTPリクエスト (認証リクエストなど) のエンティティボディで受け入れる最大バイト数。**この制限は、リモートデスクトップセッション内で転送されるファイルには適用されません。**&#x30;を指定すると、リクエストサイズの制限が無効になります。デフォルトでは、リクエストは2097152バイト (2MB) に制限されています。                                                                                                                                                                                    |
| `API_SESSION_TIMEOUT`  | <p>Guacamoleセッションがアクティブでなくても有効状態を維持できる時間 (分単位）。デフォルトでは、Guacamoleセッションは1時間に制限されています。</p><p><strong>この設定は、Guacamoleセッションにのみ影響し、リモートデスクトップセッションには影響しません。</strong>リモートデスクトップセッションの時間に制限を適用するには、リモートデスクトップサーバー内の関連する設定 (Windows RDPサーバーに設定するセッション時間制限のGPOなど) を変更する必要があります。Guacamoleは、リモートデスクトップセッションが接続されるとユーザーがアクティブであると見なし、接続されているがアイドル状態であるリモートデスクトップセッションについては区別しません</p> |

### `AWS_DISCOVERY_*` <a href="#id-.glyptodon-guacamolev2.x-context_path" id="id-.glyptodon-guacamolev2.x-context_path"></a>

`AWS_DISCOVERY_`で始まる環境変数はすべて、通常は`guacamole.properties`内で指定される[AWS EC2ディスカバリ](/keeper-connection-manager/jp/using-keeper-connection-manager/aws-ec2-discovery.md)の設定プロパティに関連しています。

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_*` <a href="#id-.glyptodon-guacamolev2.x-context_path" id="id-.glyptodon-guacamolev2.x-context_path"></a>

`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` <a href="#id-.glyptodon-guacamolev2.x-context_path" id="id-.glyptodon-guacamolev2.x-context_path"></a>

この変数は任意で、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` <a href="#id-.glyptodon-guacamolev2.x-context_path" id="id-.glyptodon-guacamolev2.x-context_path"></a>

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

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

### `DUO_*` <a href="#id-.glyptodon-guacamolev2.x-duoduo" id="id-.glyptodon-guacamolev2.x-duoduo"></a>

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` <a href="#id-.glyptodon-guacamolev2.x-extensions" id="id-.glyptodon-guacamolev2.x-extensions"></a>

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

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

| 拡張機能名        | 宣言された機能                 | 対応パッケージ                                                                                                                                                            |
| ------------ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `duo`        | `guacamole(duo)`        | [`kcm-guacamole-auth-duo`](/keeper-connection-manager/jp/authentication/using-duo-for-multi-factor-authentication.md)                                              |
| `json`       | `guacamole(json)`       | [`kcm-guacamole-auth-json`](https://docs.keeper.io/kcm-linux-rpm-method/using-keeper-connection-manager/dynamic-connections)                                       |
| `ldap`       | `guacamole(ldap)`       | [`kcm-guacamole-auth-ldap`](https://docs.keeper.io/glyptodon-1.x/authentication/authenticating-users-with-ldap)                                                    |
| `mysql`      | `guacamole(mysql)`      | [`kcm-guacamole-auth-jdbc-mysql`](https://github.com/Keeper-Security/gitbook-jp-kcm/blob/main/installation/docker-compose-install/broken-reference/README.md)      |
| `openid`     | `guacamole(openid)`     | [`kcm-guacamole-auth-sso-openid`](https://newdocs.keeper.io/kcm-linux-rpm-method/authentication/authenticating-users-with-openid-connect)                          |
| `postgresql` | `guacamole(postgresql)` | [`kcm-guacamole-auth-jdbc-postgresql`](https://github.com/Keeper-Security/gitbook-jp-kcm/blob/main/installation/docker-compose-install/broken-reference/README.md) |
| `saml`       | `guacamole(saml)`       | [`kcm-guacamole-auth-sso-saml`](https://newdocs.keeper.io/kcm-linux-rpm-method/authentication/authenticating-users-with-saml)                                      |
| `sqlserver`  | `guacamole(sqlserver)`  | [`kcm-guacamole-auth-jdbc-sqlserver`](https://github.com/Keeper-Security/gitbook-jp-kcm/blob/main/installation/docker-compose-install/broken-reference/README.md)  |
| `ssl`        | `guacamole(ssl)`        | [`kcm-guacamole-auth-sso-ssl`](https://docs.keeper.io/keeper-connection-manager/authentication/ssl-tls-client-authentication)                                      |
| `totp`       | `guacamole(totp)`       | [`kcm-guacamole-auth-totp`](https://docs.keeper.io/kcm-linux-rpm-method/authentication/using-totp-for-multi-factor-authentication)                                 |
| `uds`        | `guacamole(uds)`        | [`kcm-guacamole-auth-uds`](https://github.com/Keeper-Security/gitbook-jp-kcm/blob/main/installation/docker-compose-install/broken-reference/README.md)             |

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

### `EXTENSION_PRIORITY` <a href="#id-.glyptodon-guacamolev2.x-guacdguacd" id="id-.glyptodon-guacamolev2.x-guacdguacd"></a>

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

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

| 説明                                                                 | EXTENSION\_PRIORITYの値   |
| ------------------------------------------------------------------ | ----------------------- |
| SAMLが他のすべての拡張機能よりも優先度が高いことを強制します。                                  | `saml`                  |
| 他のすべての拡張機能がSAMLよりも優先度が高いことを強制します。                                  | `*, saml`               |
| 他のすべての認証メソッドよりもLDAPを優先し、他のすべての拡張機能がSAMLおよびOpenIDよりも優先度が高いことを強制します。 | `ldap, *, saml, openid` |

### `GUACD_*` <a href="#id-.glyptodon-guacamolev2.x-guacdguacd" id="id-.glyptodon-guacamolev2.x-guacdguacd"></a>

guacdのTCP接続情報。

| 変数名              | 説明                         |
| ---------------- | -------------------------- |
| `GUACD_HOSTNAME` | guacdサービスをホストしているマシンのホスト名。 |

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

| 変数名          | 説明                             |
| ------------ | ------------------------------ |
| `GUACD_PORT` | guacdサービスが使用するポート。             |
| `GUACD_SSL`  | guacdサービスがSSL/TLS用に設定されているか否か。 |

### `JSON_*` <a href="#id-.glyptodon-guacamolev2.x-jsonjson" id="id-.glyptodon-guacamolev2.x-jsonjson"></a>

`JSON_`で始まる環境変数はすべて、通常は`guacamole.properties`内で指定される[暗号化されたJSON認証](/keeper-connection-manager/jp/using-keeper-connection-manager/dynamic-connections.md)の設定プロパティに関連しています。

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

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

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

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

### `KSM_*` <a href="#id-.glyptodon-guacamolev2.x-ldapldap" id="id-.glyptodon-guacamolev2.x-ldapldap"></a>

`KSM_*`で始まる環境変数はすべて、Keeperシークレットマネージャーの設定プロパティに関連しています。 [Keeperボルト連携](https://newdocs.keeper.io/kcm-linux-rpm-method/vault-integration)のページをご参照ください。

| 変数名                           | 説明                                                                                                                                                                                                                                                                     |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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ドメインは、代わりにレコードのユーザー名をユーザー名とドメインの部分に分割して判定されます。分割は、[ユーザープリンシパル名形式とダウンレベルログオン名形式](https://docs.microsoft.com/en-us/windows/win32/secauthn/user-name-formats)に基づいて実行されます。デフォルトでは、ユーザー名は分割されず、Windowsドメインはレコードの分割された「ドメイン」フィールドからのみ読み取られます。 |
| `KSM_TOKEN_MAPPING`           | Keeperボルトの特定のレコードおよびフィールドを識別するために使用される静的トークン。                                                                                                                                                                                                                          |
| `*_KSM_SECRET`                | Keeperボルトでの設定値の保護と保管に使用されます。                                                                                                                                                                                                                                           |

### `LDAP_*` <a href="#id-.glyptodon-guacamolev2.x-ldapldap" id="id-.glyptodon-guacamolev2.x-ldapldap"></a>

`LDAP_`で始まる環境変数はすべて、通常は`guacamole.properties`内で指定される[LDAP認証](/keeper-connection-manager/jp/authentication/authenticating-users-with-ldap.md)の設定プロパティに関連しています。

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

| 変数名                 | 説明                                          |
| ------------------- | ------------------------------------------- |
| `LDAP_HOSTNAME`     | Guacamoleが認証に使用するLDAPサーバーのホスト名またはIPアドレス。    |
| `LDAP_USER_BASE_DN` | LDAPディレクトリ内のすべてのGuacamoleユーザーが共有する共通のベースDN。 |

[**LDAPサーバーを複数台使用する場合**](https://docs.keeper.io/kcm-linux-rpm-method/authentication/authenticating-users-with-ldap/using-multiple-ldap-servers)、またはLDAPサーバー設定をYAML形式で指定する場合は、以下の環境変数が必要です。

| 変数名            | 説明                                                                                                                                                              |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `LDAP_SERVERS` | 適切なyml形式のLDAPサーバーのリスト。[こちらのページ](https://docs.keeper.io/kcm-linux-rpm-method/authentication/authenticating-users-with-ldap/using-multiple-ldap-servers)をご参照ください。 |

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サーバーで構成されている場合](/keeper-connection-manager/jp/authentication/authenticating-users-with-ldap/using-multiple-ldap-servers.md)、代替の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` <a href="#id-.glyptodon-guacamolev2.x-log_level" id="id-.glyptodon-guacamolev2.x-log_level"></a>

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

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

### `MYSQL_*` <a href="#id-.glyptodon-guacamolev2.x-mysqlmysql" id="id-.glyptodon-guacamolev2.x-mysqlmysql"></a>

`MYSQL_`で始まる環境変数はすべて、通常は`guacamole.properties`内で指定される[MySQL認証](https://github.com/Keeper-Security/gitbook-jp-kcm/blob/main/installation/docker-compose-install/broken-reference/README.md)の設定プロパティに関連します。

MySQLを使用する予定の場合は、Guacamoleで使用するために自動的に初期化されるMySQLデータベースが含まれる[`keeper/guacamole-db-mysql`イメージ](/keeper-connection-manager/jp/installation/docker-compose-install/database-images/keeper-guacamole-db-mysql.md)の使用をお勧めします。

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_*` <a href="#openid" id="openid"></a>

OPENID\_で始まる環境変数はすべて、通常はguacamole.properties内で指定される[Open ID Connect認証](https://github.com/Keeper-Security/gitbook-jp-kcm/blob/main/installation/docker-compose-install/broken-reference/README.md)の設定プロパティに関連しています。

| 変数名                             | 説明                                                                                                                                                                                                                                                                                       |
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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`                 | <p>受信したすべてのIDトークンの発行者。この値は、IDプロバイダが発行する必要があります。OpenID Connect Discoveryを実装するIDプロバイダの場合、この値はプロバイダの</p><p>「.well-known/openid-configuration」JSONファイルの「issuer」プロパティから取得できます。</p>                                                                                                            |
| `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_*` <a href="#id-.glyptodon-guacamolev2.x-postgrespostgres" id="id-.glyptodon-guacamolev2.x-postgrespostgres"></a>

`POSTGRES_`で始まる環境変数はすべて、通常は`guacamole.properties`内で指定される[PostgreSQL認証](https://github.com/Keeper-Security/gitbook-jp-kcm/blob/main/installation/docker-compose-install/broken-reference/README.md)の設定プロパティに関連しています。

PostgreSQLを使用する予定の場合は、Guacamoleで使用するために自動的に初期化されるPostgreSQLデータベースが含まれる[`keeper/guacamole-db-postgres`イメージ](/keeper-connection-manager/jp/installation/docker-compose-install/database-images/keeper-guacamole-db-postgres.md)の使用をお勧めします。

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`                 |

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

* [`MYSQL_AUTO_CREATE_ACCOUNTS`](#id-.glyptodon-guacamolev2.x-mysqlmysql_)
* [`POSTGRESQL_AUTO_CREATE_ACCOUNTS`](#id-.glyptodon-guacamolev2.x-postgrespostgres_-1)
* [`SQLSERVER_AUTO_CREATE_ACCOUNTS`](#id-.glyptodon-guacamolev2.x-sqlserversqlserver_)
  {% endhint %}

### **`SAML_*`**

`SAML_`で始まる環境変数はすべて、通常は`guacamole.properties`内で指定される[SAML認証](https://github.com/Keeper-Security/gitbook-jp-kcm/blob/main/installation/docker-compose-install/broken-reference/README.md)の設定プロパティに関連しています。

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_*` <a href="#id-.glyptodon-guacamolev2.x-sqlserversqlserver" id="id-.glyptodon-guacamolev2.x-sqlserversqlserver"></a>

`SQLSERVER_`で始まる環境変数はすべて、通常は`guacamole.properties`内で指定される[SQL Server認証](https://github.com/Keeper-Security/gitbook-jp-kcm/blob/main/installation/docker-compose-install/broken-reference/README.md)の設定プロパティに関連しています。

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クライアント認証 (スマートカード認証)](/keeper-connection-manager/jp/authentication/ssl-tls-client-authentication.md) の設定プロパティに関連します。

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_*` <a href="#id-.glyptodon-guacamolev2.x-totptotp" id="id-.glyptodon-guacamolev2.x-totptotp"></a>

`TOTP_`で始まる環境変数はすべて、通常は`guacamole.properties`内で指定される[TOTP多要素認証](/keeper-connection-manager/jp/authentication/using-totp-for-multi-factor-authentication.md)の設定プロパティに関連しています。

| 変数名           | 説明                                                                                                                                                            |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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_*` <a href="#id-.glyptodon-guacamolev2.x-udsuds" id="id-.glyptodon-guacamolev2.x-udsuds"></a>

`UDS_`で始まる環境変数はすべて、通常は`guacamole.properties`内で指定される[UDS Enterprise](https://github.com/Keeper-Security/gitbook-jp-kcm/blob/main/installation/docker-compose-install/broken-reference/README.md)と連携するための設定プロパティに関連しています。

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

### `USER_MAPPING` <a href="#id-.glyptodon-guacamolev2.x-user_mapping" id="id-.glyptodon-guacamolev2.x-user_mapping"></a>

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

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

### `USE_DEFAULT_BRANDING` <a href="#id-.glyptodon-guacamolev2.x-use_default_branding" id="id-.glyptodon-guacamolev2.x-use_default_branding"></a>

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

### `USE_SHM` <a href="#id-.glyptodon-guacamolev2.x-use_shm" id="id-.glyptodon-guacamolev2.x-use_shm"></a>

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

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

### Dockerシークレット <a href="#id-.glyptodon-guacamolev2.x-dockersecrets" id="id-.glyptodon-guacamolev2.x-dockersecrets"></a>

環境変数でデータを直接渡すのではなく、このイメージでサポートされている任意の環境変数に`_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
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeper-connection-manager/jp/installation/docker-compose-install/keeper-guacamole.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
