LDAP内の接続データを格納

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属性を受け入れます。接続を利用する必要のあるユーザーは、メンバー属性を使用して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のサブツリー内で定義された接続のみが表示されます。

   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