# KCM バージョン 2.21.0

## 概要

バージョン2.21.0では、PAMでのリンクレコードへのサポートが追加され、動的トークンを使用してリンクされたKeeperレコードから管理者認証情報や接続用認証情報を取得できるようになりました。新たに `${KEEPER_SERVER_ADMIN_*}` および `${KEEPER_GATEWAY_LAUNCH_*}` トークンが追加され、既存のトークンも更新されています。

また、サービスの接続性、認証応答性、ライセンス状態を監視するヘルスチェックAPIエンドポイントが追加されました。さらに、Apache Guacamole1.6.0の改善点 (テキスト選択の強化、VNCの自動リサイズ、パラメータトークンの拡張、Wake-on-LANチェックなど) への対応も含まれています。加えて、ユーザー名の大文字・小文字の区別設定、グループ単位でのMFA適用、LDAPおよびOpenID Connectの機能強化、多言語対応やキーボードレイアウト対応も追加されました。

## KeeperPAMリンクレコードのサポート

**KCM-421:** リンクレコードのサポート

Keeperシークレットマネージャーとの統合で、ボルトのPAMレコードに関連付けられた「管理者認証情報」と「接続用認証情報」を含むリンクレコードのシークレットを読み取れるようになりました。既存の `${KEEPER_SERVER_*}` および `${KEEPER_GATEWAY_*}` トークンと同様に、リンクレコードからシークレットを取得する動的トークンが利用可能です。

#### **`${KEEPER_SERVER_ADMIN_*}`**

リモートデスクトップサーバーのホスト名に一致するKeeperレコードにリンクされた管理者認証情報 (例: `${KEEPER_SERVER_ADMIN_PASSWORD}`) を取得します。`${KEEPER_SERVER_*}` が一致する仕組みと同様に動作します。

#### **`${KEEPER_SERVER_LAUNCH_*}`**

リモートデスクトップサーバーのホスト名に一致するKeeperレコードにリンクされた接続用認証情報 (例: `${KEEPER_SERVER_LAUNCH_PASSWORD}`) を取得します。`${KEEPER_SERVER_*}` が一致する仕組みと同様に動作します。

#### **`${KEEPER_GATEWAY_ADMIN_*}`**

リモートデスクトップサーバーの `gateway-hostname` パラメータに一致するKeeperレコードにリンクされた管理者認証情報 (例: `${KEEPER_GATEWAY_ADMIN_PASSWORD}`) を取得します。このトークンはMicrosoft RD Gateway使用時に特化しており、RDP接続にのみ適用されます。`${KEEPER_GATEWAY_*}` が一致する仕組みと同様に動作します。

#### **`${KEEPER_GATEWAY_LAUNCH_*}`**

リモートデスクトップサーバーの `gateway-hostname` パラメータに一致するKeeperレコードにリンクされた接続用認証情報 (例: `${KEEPER_GATEWAY_LAUNCH_PASSWORD}`) を取得します。このトークンはMicrosoft RD Gateway使用時に特化しており、RDP接続にのみ適用されます。`${KEEPER_GATEWAY_*}` が一致する仕組みと同様に動作します。

#### 既存トークンの動作変更

`${KEEPER_SERVER_*}` および `${KEEPER_GATEWAY_*}` トークンは、リンクされた「管理者」認証情報を持つレコードがある場合、その認証情報を優先して使用します。直接レコードに保存されたシークレットは、リンクが使用されていない場合にのみ動的トークンに使用されます。

## ヘルスチェックとライセンス状態確認用エンドポイント

**KCM-469:** ヘルスチェックAPI

KCMには定期的に実行される自動ヘルスチェック機能が追加されました。この機能により、`guacd` サービスが到達可能か、認証サブシステムが応答しているか、KCMライセンスが近々期限切れにならないかを確認できます。ヘルスチェックには、システムの状態を自動で確認できるREST APIエンドポイントが含まれています。

ヘルスチェックエンドポイントには、`.../api/ext/healthcheck/full` への `GET` リクエストでアクセスでき、認証は不要です。たとえば、KCMが `kcm.example.net` にホストされている場合、以下の `curl` コマンドでヘルスチェックのステータスを取得できます。

`curl https://kcm.example.net/api/ext/healthcheck/full`

KCMサーバーが正常でライセンスが有効な場合、以下のようなJSONが返されます。

`{ "licensed": true, "licenseExpiresSoon": false, "healthy" : true }`

サーバーが正常でない場合、またはライセンスが無効な場合は、上記JSONに表示されるフラグの値が異なります。ヘルスチェック応答JSONのフラグは以下の通りです。

| プロパティ名               | 説明                                                                                                                                                                                                                                                                                                                        |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `licensed`           | KCMライセンスが現在有効かどうかを示します。有効かつ期限切れでない場合は `true`、無効または期限切れの場合は `false` となります。                                                                                                                                                                                                                                                 |
| `licenseExpiresSoon` | <p>KCMライセンスが現在有効であるが、間もなく期限切れとなるかどうかを示します。<br>期限切れが間もなくでない場合は <code>false</code>、間もなく期限切れとなり、できるだけ早く更新する必要がある場合は <code>true</code> となります。</p><p>「間もなく」の期間は設定可能です (以下参照)。デフォルトでは、ライセンスが次の1週間以内に期限切れとなる場合に「間もなく期限切れ」と見なされます。</p><p><strong>注意:</strong> このプロパティは、<code>licensed</code> が <code>false</code> の場合は省略されます。</p> |
| `healthy`            | KCMサーバーが正常かどうかを示します。guacdサービスおよびKCMの認証システムの可用性をテストした結果に基づきます。guacdまたはKCMの認証システムのいずれかが応答していない場合は `false`、両方が利用可能である場合は `true` となります。                                                                                                                                                                                       |

ヘルスチェックの動作は、以下の設定プロパティ (RPMインストール時) または環境変数 (Dockerインストール時) を使用して変更できます。

| 設定プロパティ (guacamole.properties)     | 環境変数                               | 説明                                                                                                                                                                                                               |
| ---------------------------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `healthcheck-interval`             | `HEALTHCHECK_INTERVAL`             | <p>各ヘルスチェックの間に待機する秒数です。<br>ヘルスチェックエンドポイントへのリクエストとは無関係に、KCMはこの間隔に従って定期的にヘルスチェックを実行します。<br>ヘルスチェックエンドポイントへのリクエストは、直近のチェック結果を返すだけです。</p><p>デフォルトでは、ヘルスチェックは5秒ごとに実行されます。</p>                                         |
| `healthcheck-license-grace-period` | `HEALTHCHECK_LICENSE_GRACE_PERIOD` | <p>ライセンスの有効期限が「まもなく切れる」と見なされるまでの残り日数です。<br>この期間に達すると、ライセンスがまだ期限切れになっていなくても、ヘルスチェックのレスポンスでは <code>licenseExpiresSoon</code> が <code>true</code> になります。</p><p>デフォルトでは、ライセンスが今後7日以内に期限切れになる場合、「まもなく切れる」と見なされます。</p> |
| `healthcheck-base-uri`             | `HEALTHCHECK_BASE_URI`             | <p>ヘルスチェックが認証サービスの可用性を確認するために使用するKCMサーバーのベースURIです。<br><strong>このURIは、KCM自身からローカルネットワーク経由で到達可能であれば十分です。</strong></p><p>デフォルトでは、<code><http://localhost:8080></code> が使用されます。</p>                                  |

## Apache Guacamole1.6.0からの改善・修正

**KCM-446:** Keeperコネクションマネージャーは、Apache Guacamoleの最新リリースに対応しました。\
これまでのKCMリリースで、Guacamoleの多くの改善は先行して取り込まれていましたが、今回さらに新たに以下の注目すべき変更が加わっています。

* ターミナルエミュレーター内のテキストをダブルクリックで選択できるようになりました。
* 改行やインデントを含むテキストのコピーに関する不具合を修正しました。
* VNCサーバーが対応している場合、VNC画面の自動リサイズが行われるようになりました。
* LDAPユーザーのドメイン、OpenID ConnectのJWTクレーム、現在の接続名といった追加のパラメータトークンが利用可能になりました。
* Wake-on-LANの機能が改善され、マシンの稼働状況を自動で確認できるようになりました。

## Docker環境変数にまだ対応していない設定オプション

以下の新しい機能も追加されていますが、現時点ではDockerイメージでの設定は `ADDITIONAL_GUACAMOLE_PROPERTIES` という包括的な環境変数を通じてのみ可能で、専用の環境変数にはまだ対応していません。

* グループメンバーシップやIPアドレスに基づき、TOTPの強制を無効化できるようになりました。
* ユーザー名の大文字、小文字の区別を設定で切り替えられるようになりました。

## ユーザーインターフェースやプラットフォームの更新

* 接続名用のパラメータトークンを追加 ([GUACAMOLE-1177](https://issues.apache.org/jira/browse/GUACAMOLE-1177))
* ユーザー名の大文字小文字の区別を設定可能に ([GUACAMOLE-1239](https://issues.apache.org/jira/browse/GUACAMOLE-1239))
* グループ一覧にて、ユーザーグループが無効化されているかどうかを表示 ([GUACAMOLE-1479](https://app.gitbook.com/u/WgKkqrjbO1UfVOvhOYKmihb59Uh1))
* フルスクリーン表示やキーボードロックに対応 ([GUACAMOLE-1525](https://issues.apache.org/jira/browse/GUACAMOLE-1525))
* ユーザーホームページのセクション見出しをブランド化、カスタマイズ可能に ([GUACAMOLE-1584](https://issues.apache.org/jira/browse/GUACAMOLE-1584))
* ウェブアプリUIでVNCの「encodings」パラメータ指定に対応 ([GUACAMOLE-1642](https://issues.apache.org/jira/browse/GUACAMOLE-1642))
* 画像やバイナリデータのBase64エンコードによる過剰なシステムコールを改善し、パフォーマンス低下を改善 ([GUACAMOLE-1776](https://issues.apache.org/jira/browse/GUACAMOLE-1776))
* 「最近の接続」セクションの改善 ([GUACAMOLE-1866](https://issues.apache.org/jira/browse/GUACAMOLE-1866))
* クローン操作時の通知表示とページ先頭へのスクロール機能を追加 ([GUACAMOLE-1916](https://issues.apache.org/jira/browse/GUACAMOLE-1916))

## 認証、統合、ストレージの更新

* GUAC\_DATE/GUAC\_TIMEトークンが接続の開始日時と一致するように保証 ([GUACAMOLE-61](https://issues.apache.org/jira/browse/GUACAMOLE-61))
* LDAP拡張機能にプロキシホスト名とポートを追加 ([GUACAMOLE-577](https://issues.apache.org/jira/browse/GUACAMOLE-577))
* 登録完了まで、TOTPキーの生成をランダム化 ([GUACAMOLE-1068](https://issues.apache.org/jira/browse/GUACAMOLE-1068))
* グループメンバーシップに応じてTOTPを無効化可能に ([GUACAMOLE-1219](https://issues.apache.org/jira/browse/GUACAMOLE-1219))
* LDAP拡張機能でTLSレベルを設定可能に ([GUACAMOLE-1488](https://issues.apache.org/jira/browse/GUACAMOLE-1488))
* ユーザーがKeeperシークレットマネージャーの呼び出し頻度を設定可能に ([GUACAMOLE-1722](https://issues.apache.org/jira/browse/GUACAMOLE-1722))
* OpenID ConnectのJWTクレームをパラメータトークンとして利用可能に ([GUACAMOLE-1844](https://issues.apache.org/jira/browse/GUACAMOLE-1844))
* クライアントIPに基づいてMFAをスキップまたは強制可能に ([GUACAMOLE-1855](https://issues.apache.org/jira/browse/GUACAMOLE-1855))
* LDAPユーザーのドメイン用パラメータトークンを追加 ([GUACAMOLE-1881](https://issues.apache.org/jira/browse/GUACAMOLE-1881))

## プロトコルサポートの更新

* ターミナルやリモート画面で単語をダブルクリックで選択可能に ([GUACAMOLE-192](https://issues.apache.org/jira/browse/GUACAMOLE-192))
* 接続タイムアウトの指定を許可 ([GUACAMOLE-600](https://issues.apache.org/jira/browse/GUACAMOLE-600))
* 非公開のRemoteAppに接続すると黒画面になる不具合を修正 ([GUACAMOLE-1084](https://issues.apache.org/jira/browse/GUACAMOLE-1084))
* VNCセッションで自動リサイズ機能を追加 ([GUACAMOLE-1196](https://issues.apache.org/jira/browse/GUACAMOLE-1196))
* RemoteAppウィンドウが最小化後に操作不能になる不具合を修正 ([GUACAMOLE-1231](https://issues.apache.org/jira/browse/GUACAMOLE-1231))
* VNCプロトコルにリモート入力を無効化するオプションを追加 ([GUACAMOLE-1267](https://issues.apache.org/jira/browse/GUACAMOLE-1267))
* ターミナルエミュレーターで折り返した行のコピー時に改行が追加される不具合を修正 ([GUACAMOLE-1586](https://issues.apache.org/jira/browse/GUACAMOLE-1586))
* ターミナルエミュレーターからコピーしたテキストでインデントが正しく反映されない不具合を修正 ([GUACAMOLE-1632](https://issues.apache.org/jira/browse/GUACAMOLE-1632))
* ターミナルで代替スクリーンバッファをサポート ([GUACAMOLE-1633](https://issues.apache.org/jira/browse/GUACAMOLE-1633))
* Wake-on-LANパケット送信時にマシンの稼働状況を確認 ([GUACAMOLE-1686](https://issues.apache.org/jira/browse/GUACAMOLE-1686))
* VNCの圧縮率および画質レベルのパラメータを追加 ([GUACAMOLE-1760](https://issues.apache.org/jira/browse/GUACAMOLE-1760))
* SSHで選択したテキストがカーソル位置とずれる不具合を修正 ([GUACAMOLE-1944](https://app.gitbook.com/u/WgKkqrjbO1UfVOvhOYKmihb59Uh1))
* マウスホイールの1回転で複数のスクロールイベントが発生する不具合を修正 ([GUACAMOLE-1967](https://app.gitbook.com/u/WgKkqrjbO1UfVOvhOYKmihb59Uh1))

## 多言語対応の更新

* RDP用日本語キーボードレイアウトの不具合を修正 ([GUACAMOLE-520](https://issues.apache.org/jira/browse/GUACAMOLE-520))
* カナダフランス語キーボードレイアウトに対応 ([GUACAMOLE-1312](https://issues.apache.org/jira/browse/GUACAMOLE-1312))
* フランス語翻訳の更新 ([GUACAMOLE-1611](https://app.gitbook.com/o/-LO5CAzoigGmCWBUbw9z/s/IobsHpXglslwVefz7dvX/))
* イタリア語翻訳の誤字修正および改善 ([GUACAMOLE-1612](https://app.gitbook.com/u/WgKkqrjbO1UfVOvhOYKmihb59Uh1))
* チェコ語翻訳の更新 ([GUACAMOLE-1664](https://issues.apache.org/jira/browse/GUACAMOLE-1664))
* ドイツ語翻訳の更新 ([GUACAMOLE-1692](https://issues.apache.org/jira/browse/GUACAMOLE-1692))
* チェコ語キーボードレイアウトを追加 ([GUACAMOLE-1708](https://issues.apache.org/jira/browse/GUACAMOLE-1708))
* ポーランド語翻訳を追加 ([GUACAMOLE-1730](https://issues.apache.org/jira/browse/GUACAMOLE-1730))
* チェコ語翻訳の更新 ([GUACAMOLE-1758](https://issues.apache.org/jira/browse/GUACAMOLE-1758))
* RDPプロトコルにルーマニア語キーマップを追加 ([GUACAMOLE-1770](https://issues.apache.org/jira/browse/GUACAMOLE-1770))
* RDPプロトコルにポルトガル語キーマップを追加 ([GUACAMOLE-1771](https://issues.apache.org/jira/browse/GUACAMOLE-1771))
* 簡体字中国語翻訳の更新 ([GUACAMOLE-1778](https://issues.apache.org/jira/browse/GUACAMOLE-1778))
* TOTP認証拡張用の簡体字中国語翻訳を更新 ([GUACAMOLE-1781](https://app.gitbook.com/o/-LO5CAzoigGmCWBUbw9z/s/IobsHpXglslwVefz7dvX/))
* チェコ語翻訳の更新 ([GUACAMOLE-1792](https://issues.apache.org/jira/browse/GUACAMOLE-1792))

***

アップグレードの手順については、[こちら](https://docs.keeper.io/release-notes/enterprise/keeper-connection-manager/upgrading)のページをご参照ください。
