For the complete documentation index, see llms.txt. This page is also available as Markdown.

カスタムブランディング

Keeperコネクションマネージャーのユーザーインターフェースのカスタマイズ

Keeperコネクションマネージャーでは、フロントエンドユーザーインターフェースCSSのカスタマイズとカスタムJavascriptの注入に対応しています。本ページでは、カスタマイズしたブランディングを表示してカスタムJavascriptコードを実行するようにウェブアプリケーションを変更する方法について解説します。

概要

Keeperコネクションマネージャーを使用して、プラットフォーム全体にカスタム拡張機能を追加できる「拡張機能」を開発できます。簡単な修正でブランディングやUIを変更できる例をご紹介します。

Keeperコネクションマネージャーの拡張機能では以下が可能となります。

  1. 代替の認証方法および接続ソース/ユーザーのデータソース

  2. Guacamoleが認証やトンネル接続などのタスクを実行するときに通知されるイベントリスナー

  3. 追加のCSSファイルと静的リソースを使用して、ユーザーインターフェースをテーマにそって構成またはブランディング

  4. 自動的にロードされるJavaScriptを使用して、KeeperコネクションマネージャーのJavaScriptコードを拡張

  5. 表示言語の追加や既存の言語の翻訳文字列の変更

拡張形式

Keeperコネクションマネージャーの拡張機能は標準のJavaの .jar ファイル (基本的には .zip ファイル) で、拡張機能に必要なすべてのクラスとリソースおよびKCM拡張機能のマニフェストが含まれます。マニフェストがアーカイブのルートになければならないことを除いて、拡張機能に決まった構造はありません。Javaクラスとパッケージ (存在する場合) は、ルートを基準とした .jar からも読み取られます。

ブランディング拡張機能の例

以下は、カスタムブランディングで既存のKeeperコネクションマネージャーインストールを変更する手順となります。

  1. Keeperコネクションマネージャーまたはワークステーションを実行しているインスタンスで、以下のようにサンプルリポジトリを取得するか、zipファイルとしてダウンロードします。

  1. ブランディングフォルダの内容を kcm-branding.jar というファイルに圧縮します。ファイルの名前は、ユニークな名前である限り自由です。Keeperコネクションマネージャーが目的のフォルダに配置された拡張機能をすべてロードします。

  1. ファイルを/etc/kcm-setupフォルダまたはサーバー上の任意のパスにコピーします。

  1. docker-compose.yml ファイル (/etc/kcm-setup/docker-compose.yml など) には、以下の2つの変更が必要です。

  • 「guacamole」セクションで、Jarファイルへの参照を追加して、ホストからguacamoleインスタンスに直接ボリュームマウントします。Keeperコネクションマネージャーはjarファイルをすべて取得して処理するため、ファイルの名前は重要ではありません。

  • 値が「N」の環境変数 USE_DEFAULT_BRANDING を追加します。

以下はその例です。

  1. コンテナを再起動します。

以上です。サービスが起動すると、Keeperコネクションマネージャーページのブランディングが刷新され、ページを読み込む際にポップアップアラートが表示されます。

Javascriptの例
HTML/CSSの修正例

さらに変更を繰り返すには、リソースを編集してファイルを圧縮し、zipファイルを目的のフォルダにコピーして、Keeperコネクションマネージャーコンテナを再起動します。

技術的詳細

CSS

guac-manifest.jsonで参照されるCSSファイルは、ロード時にアプリケーションCSSに追加されるため、CSSプロパティが上書きされます。

Javascript

guac-manifest.jsonで参照されるJavascriptファイルは、ロード時にアプリケーションJavascriptに追加されます。

HTMLの修正

Keeperコネクションマネージャーのインターフェースの既存のHTML構造は、 guac-manifest.json の html プロパティによって宣言された特別な「patch」HTMLファイルを使用して変更できます。これらのファイルはHTMLフラグメントであり、他のHTMLファイルと同じですが、Keeperコネクションマネージャー独自のHTMLを特別な方法で変更するようにKeeperコネクションマネージャーに指示するKeeperコネクションマネージャー固有のメタタグが含まれている点が異なります。各メタタグの形式は以下のとおりです。

ここで、SELECTOR は、変更のベースとして機能するKeeperコネクションマネージャーインターフェース内の要素と一致するCSSセレクタで、NAME は以下の定義済み変更のいずれかになります。

before

CSSセレクタに一致する要素の直前に、指定したHTMLを挿入します。

after

CSSセレクタに一致する要素の直後に、指定したHTMLを挿入します。

replace

CSSセレクタに一致する要素を、指定したHTMLに置き換えます。

before-children

CSSセレクタに一致する要素の最初の子 (存在する場合) の直前に、指定したHTMLを挿入します。一致する要素に子がない場合は、HTMLがそのまま一致する要素の内容となります。

after-children

CSSセレクタに一致する要素の最後の子 (存在する場合) の直後に、指定したHTMLを挿入します。一致する要素に子がない場合は、HTMLがそのまま一致する要素の内容となります。

replace-children

CSSセレクタに一致する要素の内容をすべて指定したHTMLで置き換えます。

たとえば、ごく一般的なニーズとしてあいさつ文と企業のプライバシーポリシーへのリンクを追加するには、以下のようなHTMLファイルを追加します。

拡張機能をインストールしてKeeperコネクションマネージャーを再起動すると、最初からKeeperコネクションマネージャーのHTMLの一部であるかのように、「welcome」divブロックとその内容がログインダイアログ ( .login-ui .login-dialog に一致する唯一の要素) のすぐ下に自動的に挿入されます。

トラブルシューティング

拡張機能の適用後にページに空白が読み込まれた場合は、以下のようにログを確認します。

nullポインター例外が発生する場合は、guac-manifest.json で参照されているリソースの1つが .jar アーカイブで見つからないことが原因である可能性があります。すべてのファイルとフォルダが正しく圧縮されていることを確認します。

最終更新