001-007751
[Linux版の現象]Red Hat Enterprise Linux 6の環境で、認証データベースにLDAPを使用していると、ガルーンにログインできない。
- 種別
- 不具合
- 機能
-
- 全般
- 再現バージョン
-
- 3.7.0
- 3.7.1
- 3.7.2
- 3.7.3
- 3.7.4
- 3.7.5
- 改修バージョン
- 4.0.0
- 公開日
- 2014-01-28
- 更新日
- 2014-12-05
詳細
【準備】
- バージョン 3.7.0以降のガルーンを次の環境にインストールします。
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 6
- ガルーンでLDAP認証を設定します。
- システム管理画面にログインし、[基本システムの管理] > [認証] > [認証データベース] > [認証データベースを追加する]の順にクリックします。
- LDAPを選択して、[次へ]をクリックします。
- 認証データベースの内容を入力して[追加する]をクリックします。
- システム管理画面で、[基本システムの管理] > [認証] > [ログイン認証] > [標準認証] > [変更する]の順にクリックします。
- 認証データベースに、追加した認証データベースを選択し、[変更する]をクリックします。
- システム管理画面にログインし、[基本システムの管理] > [認証] > [認証データベース] > [認証データベースを追加する]の順にクリックします。
【再現手順】
- ガルーンのアプリケーション画面にログインします。
→現象発生:
次のエラーが発生し、ログインできません。
例:
--------------------
Fatal error: Call to undefined function ldap_connect() in /var/www/cgi-bin/cbgrn/code/plugin/grn/common/authentication/repository/ldap.csp on line 288
--------------------
補足:
- システム管理画面からは、ログインできます。
- サーバーの/var/log/messagesに、次のエラーメッセージが出力されます。
--------------------------------
PHP Warning: PHP Startup: Unable to load dynamic library '/var/www/cgi-bin/cbgrn/extensions/ldap.so' - libldap-2.3.so.0: cannot open shared object file: No such file or directory in Unknown on line 0
--------------------------------
LDAP認証を設定していない場合も、エラーメッセージは出力されます。 - LDAP認証に必要なライブラリを参照できていないことが原因です。
回避/対応方法
【対応方法】
シンボリックリンクを再設定します。
- ldap.soが必要とするライブラリを確認します。
例:
ldd /var/www/cgi-bin/cbgrn/extensions/ldap.so
--------------------------------
inux-gate.so.1 => (0x0052b000)
libldap-2.3.so.0 => not found
liblber-2.3.so.0 => not found
libc.so.6 => /lib/libc.so.6 (0x00979000)
/lib/ld-linux.so.2 (0x006b9000)
--------------------------------
補足:
「libldap-2.3.so.0」と「liblber-2.3.so.0」を参照できていません。 - シンボリックリンクを再設定します。
例:
ln -s /usr/local/cybozu/openldap/lib/liblber-2.4.so.2.8.5 /usr/local/cybozu/openldap/lib/liblber-2.3.so.0
ln -s /usr/local/cybozu/openldap/lib/libldap-2.4.so.2.8.5 /usr/local/cybozu/openldap/lib/libldap-2.3.so.0 - 再度、lddコマンドを実行します。
次のように表示されると、必要なライブラリを参照できている状態です。
例:
ldd /var/www/cgi-bin/cbgrn/extensions/ldap.so
--------------------------------
linux-gate.so.1 => (0x00403000)
libldap-2.3.so.0 => /usr/local/cybozu/openldap/lib/libldap-2.3.so.0 (0x00f91000)
liblber-2.3.so.0 => /usr/local/cybozu/openldap/lib/liblber-2.3.so.0 (0x008c9000)
libc.so.6 => /lib/libc.so.6 (0x00b30000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00d5c000)
libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x003ca000)
libssl.so.0.9.8 => /usr/local/cybozu/openssl/lib/libssl.so.0.9.8 (0x00f14000)
libcrypto.so.0.9.8 => /usr/local/cybozu/openssl/lib/libcrypto.so.0.9.8 (0x00110000)
/lib/ld-linux.so.2 (0x006b9000)
libdl.so.2 => /lib/libdl.so.2 (0x0025c000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x009c9000)
libfreebl3.so => /lib/libfreebl3.so (0x00868000)
--------------------------------
補足:
- 64bit版のRed Hat Enterprise Linux 6を利用している場合は、LDAP認証を利用するために次の制限事項の対応を行なう必要があります。
[Linux版の現象]64bit版のRed Hat Enterprise Linux 6の環境で、認証データベースにLDAPを使用していると、ガルーンにログインできない。
https://kb.cybozu.support/article/30549/ - シンボリックリンクの再設定を行なうことで、/var/log/messagesへのエラーメッセージ出力は解消します。