LDAP内の接続データを格納
guacConfigGroup オブジェクトクラスを定義
guacConfigGroup オブジェクトクラスを定義接続データがLDAPディレクトリ内に格納されている場合、各接続は特殊なタイプのLDAPグループとして表現され、Keeperコネクションマネージャーの接続に関連する権限は、これらのグループへのユーザーのメンバーシップに基づいてLDAPで直接管理できます。この方法では、guacConfigGroup という新しいオブジェクトクラスを追加するスキーマ変更が必要となります。
スキーマ変更をOpenLDAPと互換性のある形式で定義したLDIFファイルが、kcm-guacamole-auth-ldap パッケージの中で /opt/keeper/share/guacamole-auth-ldap/schema/guacConfigGroup.ldif に提供されています。このファイルは、ldapadd コマンドを使用してOpenLDAPサーバーに適用できます。
$ sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /opt/keeper/share/guacamole-auth-ldap/schema/guacConfigGroup.ldifこのコマンドを実行すると、LDAPディレクトリ内に新しい guacConfigGroup オブジェクトを作成して、接続を定義できます。各 guacConfigGroup は、接続に関連付けられたプロトコルを定義する単一のguacConfigProtocol 属性と、それぞれが接続パラメータの名前と値のペアを定義する、任意の数の guacConfigParameter 属性を受け入れます。接続を利用する必要のあるユーザーは、member 属性を使用して guacConfigGroup のメンバーとして追加されなければなりません。
たとえば、VNCを使用し、パスワード「secret」でlocalhostのポート5900に接続する2人のユーザーがアクセスできる接続は、以下のLDIFファイルで定義できます。
dn: cn=Example Connection,ou=groups,dc=example,dc=net
objectClass: guacConfigGroup
objectClass: groupOfNames
cn:Example Connection
guacConfigProtocol: vnc
guacConfigParameter: hostname=localhost
guacConfigParameter: port=5900
guacConfigParameter: password=secret
member: cn=user1,ou=people,dc=example,dc=net
member: cn=user2,ou=people,dc=example,dc=netLDAPからの接続を読み取るようにKCMを設定
Docker自動インストールおよびDocker Composeインストール
LDAPからの接続データを読み取るには、/etc/kcm-setup/docker-compose.yml ファイルを変更します。
LDAP内で定義されているすべての接続のベースDNは、LDAP_CONFIG_BASE_DN プロパティを使用して指定します。このベースDNは、そのサブツリーにLDAP経由でアクセス可能なすべてのKeeper接続を含むLDAPディレクトリの一部であるDNでなければなりません。このベースDNのサブツリー内で定義された接続のみが表示されます。
EXTENSION_PRIORITY プロパティでは、拡張機能がロードされる順序を指定します。以下の例では、other-extensions がLDAPより先にロードされるようになります。
guacamole:
image: keeper/guacamole:2
environment:
ACCEPT_EULA:"Y"
GUACD_HOSTNAME: "guacd"
MYSQL_HOSTNAME: "db"
MYSQL_DATABASE: "guacamole_db"
MYSQL_USERNAME: "guacamole_user"
MYSQL_PASSWORD: "xxxxxxx"
# LDAP Connection
LDAP_HOSTNAME: "localhost"
LDAP_PORT:389
LDAP_ENCRYPTION_METHOD: "none"
ADDITIONAL_GUACAMOLE_PROPERTIES: "extension-priority: *, ldap"
## Optional Settings ##
# Read Connections from LDAP
LDAP_CONFIG_BASE_DN: "ou=connections,dc=example,dc=net"グループメンバーシップを使用したアクセス制御
Docker自動インストールおよびDocker Composeインストール
LDAPを使用してグループメンバーシップを管理するには、/etc/kcm-setup/docker-compose.ymlファイルを変更します。
seeAlso 属性を使用して、グループ全体に接続へのアクセス権を付与することもできます。この属性は、標準のLDAP属性であり、LDAP_GROUP_BASE_DNプロパティが定義されている場合、Keeperによって参照されます。このプロパティは、LDAPを使用して認証されたKeeperコネクションマネージャーユーザーに適用可能なすべてのグループを含むサブツリーのルートを定義します。
guacamole:
image: keeper/guacamole:2
environment:
ACCEPT_EULA:"Y"
GUACD_HOSTNAME: "guacd"
MYSQL_HOSTNAME: "db"
MYSQL_DATABASE: "guacamole_db"
MYSQL_USERNAME: "guacamole_user"
MYSQL_PASSWORD: "xxxxxxx"
# LDAP Connection
LDAP_HOSTNAME: "localhost"
LDAP_PORT:389
LDAP_ENCRYPTION_METHOD: "none"
ADDITIONAL_GUACAMOLE_PROPERTIES: "extension-priority: *, ldap"
## Optional Settings ##
# Mapping Guacamole groups to LDAP DN's
LDAP_GROUP_BASE_DN: "ou=groups,dc=example,dc=net"
LDAP_GROUP_NAME_ATTRIBUTE: "cn"インストールを実行
Dockerの自動インストールメソッド
sudo ./kcm-setup.run stop
sudo ./kcm-setup.run upgradeDocker Composeのインストールメソッド
docker-compose stop
docker-compose up -d最終更新

