Nextcloud

[LDAP連携] Eメールアドレスでログイン時の挙動が修正されました

user_ldap アプリを利用してLDAP/ADサーバと連携している場合、Eメールアドレスを入力してログインする際の挙動が修正されました。

今までは、ldapLoginFilterEmail が 0 の場合でも、ユーザIDに紐づくEメールアドレスでのログインが可能でした。この挙動は、v25.0.2, v24.0.8, v23.0.12 以降で修正されています。

管理画面のLDAP設定画面では、下記画像の赤枠内の設定が該当します。

修正以前のバージョンでは、ログインフィルタのLDAP/ADメールアドレスのチェックが “OFF(ldapLoginFilterEmail: 0)”の場合、挙動としては次のようになっていました。

  1. Eメールアドレスでのログイン試行が失敗する
  2. 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メールアドレスでのログインができなくなります。

急にログインできなくなった!? とならないように注意が必要です。

以上、現場からでした。