user_ldap アプリを利用してLDAP/ADサーバと連携している場合、Eメールアドレスを入力してログインする際の挙動が修正されました。
今までは、ldapLoginFilterEmail が 0 の場合でも、ユーザIDに紐づくEメールアドレスでのログインが可能でした。この挙動は、v25.0.2, v24.0.8, v23.0.12 以降で修正されています。
管理画面のLDAP設定画面では、下記画像の赤枠内の設定が該当します。
修正以前のバージョンでは、ログインフィルタのLDAP/ADメールアドレスのチェックが “OFF(ldapLoginFilterEmail: 0)”の場合、挙動としては次のようになっていました。
- Eメールアドレスでのログイン試行が失敗する
- Eメールアドレスに紐づくユーザIDにより再ログインが試行される
結果としてEメールアドレスでのログインが可能でした(内部的にはユーザIDを使用)。
この動きは、デバッグログ出力用のパッチを適用すると様子がわかります。
1. sample@example.jpx を入力してログインしたが、ログイン名が見つからないため失敗する
{"reqId":"XZopnWwaVj7waTABfBlF","level":3,"time":"2023-02-22T16:14:01+09:00","remoteAddr":"xx.xx.xx.xx","user":"--","app":"user_ldap","method":"POST","url":"/login","message":"No record found for loginname sample@example.jpx ","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0","version":"25.0.1.1","data":{"app":"user_ldap"}}
2. 1と同じ処理で、入力したEメールアドレスに紐づくユーザIDにて再ログインが行われる
{"reqId":"XZopnWwaVj7waTABfBlF","level":3,"time":"2023-02-22T16:14:01+09:00","remoteAddr":"xx.xx.xx.xx","user":"--","app":"user_ldap","method":"POST","url":"/login","message":"Found record cn=testuser,cn=users,dc=testdomain,dc=local for loginname testuser ","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0","version":"25.0.1.1","data":{"app":"user_ldap"}}
Nextcloud 25.0.2, 24.0.8, 23.0.12 では、この挙動が修正されており、入力したEメールアドレスに紐づくユーザIDで、再ログインが試行されることはなくなりました。
この修正はGithubの下記チケットで行われています。
[Skip general login with email for non-valid addresses and LDAP]https://github.com/nextcloud/server/pull/34804
これまでLDAPログインフィルタのEメールオプションを無効化していたのにも関わらず、なんとなくEメールアドレスでのログインを使用していた場合などは、Nextcloudのバージョンアップにより、Eメールアドレスでのログインができなくなります。
急にログインできなくなった!? とならないように注意が必要です。
以上、現場からでした。