*成功はしていないが、記録のために残す

Guacamoleのユーザ認証にLDAPを使ってみる
っていうよりsamba-ActiveDirectoryをLDAPに見立てて使えるかなと。

必要なのはADのスキーマ拡張

取り合えず
http://guacamole.apache.org/releases/1.3.0/」から「guacamole-auth-ldap-1.3.0.tar.gz」を取得

中身を確認します

[root@c ~]# tar tvfz guacamole-auth-ldap-1.3.0.tar.gz
drwxr-xr-x mjumper/users     0 2018-12-13 02:52 guacamole-auth-ldap-1.3.0/doc/
drwxr-xr-x mjumper/users     0 2020-09-01 10:04 guacamole-auth-ldap-1.3.0/doc/examples/
-rw-r--r-- mjumper/users  1154 2020-09-01 10:04 guacamole-auth-ldap-1.3.0/doc/examples/exampleConfigGroup.ldif
drwxr-xr-x mjumper/users     0 2020-10-26 15:32 guacamole-auth-ldap-1.3.0/schema/
-rw-r--r-- mjumper/users  1289 2020-09-01 10:04 guacamole-auth-ldap-1.3.0/schema/guacConfigGroup.ldif
-rw-r--r-- mjumper/users  1187 2020-10-26 15:32 guacamole-auth-ldap-1.3.0/schema/guacConfigGroup.schema
drwxr-xr-x mjumper/users     0 2020-10-26 15:32 guacamole-auth-ldap-1.3.0/
drwxr-xr-x mjumper/users     0 2020-10-26 15:32 guacamole-auth-ldap-1.3.0/bundled/
drwxr-xr-x mjumper/users     0 2020-09-01 10:04 guacamole-auth-ldap-1.3.0/bundled/guice-3.0/
drwxr-xr-x mjumper/users     0 2020-09-01 10:04 guacamole-auth-ldap-1.3.0/bundled/aopalliance-1.0/
drwxr-xr-x mjumper/users     0 2020-10-26 15:32 guacamole-auth-ldap-1.3.0/bundled/directory-api-2.0.0/
drwxr-xr-x mjumper/users     0 2020-09-01 10:04 guacamole-auth-ldap-1.3.0/bundled/javax.inject-1/
-rw-r--r-- mjumper/users 11358 2020-09-01 10:04 guacamole-auth-ldap-1.3.0/bundled/guice-3.0/COPYING
-rw-r--r-- mjumper/users   120 2020-09-01 10:04 guacamole-auth-ldap-1.3.0/bundled/aopalliance-1.0/LICENSE
-rw-r--r-- mjumper/users 11358 2020-10-26 15:32 guacamole-auth-ldap-1.3.0/bundled/directory-api-2.0.0/LICENSE-2.0.txt
-rw-r--r-- mjumper/users   250 2020-09-01 10:04 guacamole-auth-ldap-1.3.0/bundled/README
-rw-r--r-- mjumper/users 11358 2020-09-01 10:04 guacamole-auth-ldap-1.3.0/bundled/javax.inject-1/LICENSE-2.0.txt
-rw-r--r-- mjumper/users   165 2020-10-26 15:32 guacamole-auth-ldap-1.3.0/NOTICE
-rw-r--r-- mjumper/users 12770 2020-10-26 15:32 guacamole-auth-ldap-1.3.0/LICENSE
-rw-r--r-- mjumper/users 7582203 2020-12-29 09:04 guacamole-auth-ldap-1.3.0/guacamole-auth-ldap-1.3.0.jar
[root@c ~]#

とldap向けのschemaが用意されている
「guacConfigGroup.schema」は標準形式
「guacConfigGroup.ldif」は標準形式をOpenLDAP向けに書き直したもの.

ldapのextenstionをコピーします

[root@c ~]# scp guacamole-auth-ldap-1.3.0/guacamole-auth-ldap-1.3.0.jar root@gate:/etc/guacamole/extensions/

まずはバックアップ

sambaを弄るのでバックアップを取ります

[root@c ~]# systemctl stop samba
[root@c ~]# cd /opt/
[root@c opt]# tar cfz b_samba-20210630.tar.gz samba/

sambaに適用してみる

[root@c schema]#  /opt/samba/bin/ldbmodify -H /opt/samba/private/sam.ldb guacConfigGroup.ldif --option="dsdb:schema update allowed"=true
ERR: (No such object) "objectclass: Cannot add cn=guacConfigGroup,cn=schema,cn=config, parent does not exist!" on DN cn=guacConfigGroup,cn=schema,cn=config at block before line 28
Modify failed after processing 0 records
 
[root@c schema]#

と失敗. まぁーguacConfigGroup.ldifはopenLDAP向けなので当然かな.
google先生に伺いActiveDirectory向けのldifを探したらあった
https://github.com/DanMaxic/guacat/blob/master/guacamole-auth-libs/schemas/ldap-active-directory/guacConfigGroup.ldif

dnの所を自分サイト側に修正します. ここでは sybyl.local なのでそれに合うように修正してます
これを「guacConfigGroup.ldif」として保存します

dn: CN=guacConfigParameter,CN=Schema,CN=Configuration,DC=sybyl,DC=local
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: guacConfigParameter
attributeID: 1.3.6.1.4.1.38971.1.1.2
attributeSyntax: 2.5.5.12
isSingleValued: FALSE
adminDisplayName: guacConfigParameter
adminDescription: guacConfigParameter
oMSyntax: 64
searchFlags: 1
lDAPDisplayName: guacConfigParameter
systemOnly: FALSE
 
 
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
 
dn: CN=guacConfigProtocol,CN=Schema,CN=Configuration,DC=sybyl,DC=local
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: guacConfigProtocol
attributeID: 1.3.6.1.4.1.38971.1.1.1
attributeSyntax: 2.5.5.12
isSingleValued: FALSE
adminDisplayName: guacConfigProtocol
adminDescription: guacConfigProtocol
oMSyntax: 64
searchFlags: 1
lDAPDisplayName: guacConfigProtocol
systemOnly: FALSE
 
 
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
 
# Classes
 
dn: CN=guacConfigGroup,CN=Schema,CN=Configuration,DC=sybyl,DC=local
changetype: ntdsschemaadd
objectClass: top
objectClass: classSchema
cn: guacConfigGroup
governsID: 1.3.6.1.4.1.38971.1.2.1
rDNAttID: cn
adminDisplayName: guacConfigGroup
adminDescription: guacConfigGroup
objectClassCategory: 1
lDAPDisplayName: guacConfigGroup
name: guacConfigGroup
systemOnly: FALSE
subClassOf: groupOfNames
mayContain: guacConfigParameter
mustContain: guacConfigProtocol
 
 
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-

これをsamba-ActiveDirectoryに反映させる

[root@c ~]# /opt/samba/bin/ldbmodify -H /opt/samba/private/sam.ldb guacConfigGroup.ldif --option="dsdb:schema update allowed"=true
Error: Bad ldif changetype 'ntdsschemaadd'
Error: Bad ldif changetype 'ntdsschemaadd'
Error: Bad ldif changetype 'ntdsschemaadd'
Modified 6 records successfully
[root@c ~]#

エラーがあるけど成功?一応 LDAP Adminで確認してみた
2021y06m30d_232051796.png
「guacConfigGroup」と「guacConfigProtocol」「guacConfigParameter」もあるみたい

guacamole.propertiesの変更

現状PostgreSQLを参照してたのをLDAPに接続変更してみる

[root@gate ~]# vi /etc/guacamole/guacamole.properties
#postgresql-hostname: localhost
#postgresql-port: 5432
#postgresql-database: guacamole_db
#postgresql-username: guacamole_user
#postgresql-password: some_password
 
auth-provider: net.sourceforge.guacamole.net.auth.ldap.LDAPAuthenticationProvider
ldap-hostname:           c.sybyl.local
ldap-port:               389
ldap-user-base-dn:       CN=Users,DC=sybyl,DC=local
ldap-username-attribute: CN
ldap-config-base-dn:     CN=Users,DC=sybyl,DC=local
[root@gate ~]#

これでjettyを再起動するとGuacamoleへのログインはAD認証経由になる.
っが、ログイン後に「あの計算機へ接続設定」「この計算機への接続設定」などは無理
それができるのはデータベース認証のみらしい....徒労に終わった

作った「guacConfigProtocol」「guacConfigParameter」に事前に接続したいvnc、rdpを用意して
Guacamoleでの認証後にそれらの接続先に向かうそうな....フラットファイル設定と同じでユーザ認証のみがLDAP/ADな訳みたい..

接続先を登録

接続先の登録はldifファイルで行う

DN: CN=TestGuacGroup,CN=Users,DC=sybyl,DC=local
changetype: add
CN: TestGuacGroup
objectClass: guacConfigGroup
guacConfigProtocol: rdp
guacConfigParameter: hostname=host1
guacConfigParameter: port=3389
member: CN=illya,CN=Users,DC=sybyl,DC=local

「/opt/samba/bin/ldbmodify -H /opt/samba/private/sam.ldb rdp-win.ldif」と実行したのだが、登録できない.

データベースでよくね

なんかそんな感じもしてきた


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2021-07-01 (木) 01:02:40 (89d)