sshやRDP、VNCの踏み台サーバとして利用できるApache Guacamoleでは、LDAP連携を行うことでActive Directoryユーザでのログインが行える。 設定は簡単で、公式で配布されているjarファイルを所定の位置に配置してやり、かつLDAP連携の設定を設定ファイルに追記するだけだ。 公式でも手順が公開されている(…今回は既存のADとの連携だったからかそのままは利用できなかったけど)ので、参照すると良いだろう。

まず、以下のコマンドでjarファイルのダウンロード・配置を行う。 (以下の例では、Guacamoleのバージョンが0.9.10となっているので、自身の環境に合わせてファイルをダウンロードすること。また、ファイルの配布先についても環境に応じて変更すること。)

wget http://archive.apache.org/dist/incubator/guacamole/0.9.10-incubating/binary/guacamole-auth-ldap-0.9.10-incubating.tar.gz
tar xzvf guacamole-auth-ldap-0.9.10-incubating.tar.gz
cp guacamole-auth-ldap-0.9.10-incubating/guacamole-auth-ldap-0.9.10-incubating.jar /var/lib/guacamole/extensions

jarファイルの配置が終わったら、guacamoleの設定ファイルを編集してやる。 以下、設定例。

/etc/guacamole/guacamole.properties
# Hostname and port of guacamole proxy guacd-hostname: localhost guacd-port: 4822 # MySQL properties mysql-hostname: localhost mysql-port: 3306 mysql-database: guacamole mysql-username: guacamole mysql-password: P@ssw0rd mysql-default-max-connections-per-user: 0 mysql-default-max-group-connections-per-user: 0 # Auth provider class lib-directory: /var/lib/guacamole/extensions/ auth-provider: net.sourceforge.guacamole.net.auth.ldap.LDAPAuthenticationProvider # LDAP properties ldap-hostname: ad.blacknon.local ldap-port: 389 ldap-user-base-dn: OU=XXXXX,DC=blacknon,DC=local ldap-config-base-dn: OU=XXXXX,DC=blacknon,DC=local ldap-search-bind-dn: CN=LDAP User,OU=XXXXX,DC=blacknon,DC=local ldap-search-bind-password: XXXXXXXXXX ldap-username-attribute: sAMAccountName

設定ファイル編集後は、Tomcat・guacdのプロセスを再起動してやれば設定が反映するはずだ。 ちなみに、各ADユーザの権限はローカルの同名のユーザと同じものが適用される。 LDAPだけのユーザだと設定が面倒みたいなので、とりあえずパスワードをすごい複雑にした同名のローカルユーザを作っておいて、そこに権限を振るのが楽かも。