LDAP内の接続データを格納
guacConfigGroup
オブジェクトクラスを定義
guacConfigGroup
オブジェクトクラスを定義接続データがLDAPディレクトリ内に格納されている場合、各接続は特殊なタイプのLDAPグループとして表現され、Guacamoleの接続に関連する権限は、これらのグループへのユーザーのメンバーシップに基づいて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=net
LDAPからの接続を読み取るようにGuacamoleを設定
Docker自動インストールおよびDocker Composeインストール
LDAPからの接続データを読み取るには、Guacamoleの主要な設定ファイルである、/etc/kcm-setup/docker-compose.yml
ファイルを変更します。
LDAP内で定義されているすべての接続のベースDNは、LDAP_CONFIG_BASE_DN
プロパティを使用して指定します。このベースDNは、そのサブツリーにLDAP経由でアクセス可能なすべてのGuacamole接続を含む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
プロパティが定義されている場合、Guacamoleによって参照されます。このプロパティは、LDAPを使用して認証されたGuacamoleユーザーに適用可能なすべてのグループを含むサブツリーのルートを定義します。
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 upgrade
Docker Composeのインストールメソッド
docker-compose stop
docker-compose up -d
Last updated