Samba4.2で認証時LDAPグループが機能しない

  • ページ: BugTrack
  • 投稿者: umorigu
  • 優先順位: 低
  • 状態: 却下
  • カテゴリー: 本体バグ
  • 投稿日: 2016-12-15 (木) 09:13:03
  • バージョン: 1.5.1

メッセージ

Samba4.2をLDAPバックエンドにしたとき、許可グループとしてLDAPグループを指定してもアクセスが許可されない。 グループにログインユーザーが含まれていないような動作になる。official:質問箱5/248

  • Samba 4.2がLDAP_MATCHING_RULE_IN_CHAINに対応していない
  • Samba 4.4ではこの現象は発生しない

official:PukiWiki/Authentication/LDAP

調査・対応

official:質問箱5/248 より:

  • Samba 4.2 では動作しない (問題の挙動)
  • Samba 4.4.1 では動作する

Samba 4.2 のバグなので、Samba 4.4以降へのバージョンアップを推奨します。 Sambaをバージョンアップできない場合は、以下の情報に沿ってPukiWikiのカスタマイズを行うことで、グループの認証を使うことができます。(但し、制約としてネストしたグループの利用はできなくなります)

ActiveDirectory由来のLDAPの場合、LDAP_MATCHING_RULE_IN_CHAINを使ってグループのネストに対応しています。 msdn.microsoft.com/en-us/library/aa746475(v=vs.85).aspx

調べたところ、Samba 4.2 ではこのLDAP_MATCHING_RULE_IN_CHAINは動作しないようでした。bugzilla.samba.org/show_bug.cgi?id=10493 Samba 4.4以降でのサポートになっています。

以下のようにPukiWikiの実装を変更すると、LDAP_MATCHING_RULE_IN_CHAINを使わなくなるので Samba 4.2でも動作します ($fmtを上書き) -- umorigu 2016-12-15 (木) 01:57:00

diff --git a/lib/auth.php b/lib/auth.php
index 271da4c..1c6811c 100644
--- a/lib/auth.php
+++ b/lib/auth.php
@@ -673,6 +673,7 @@ function get_ldap_groups_with_user($ldapconn, $user, $is_ad) {
    if ($is_ad) {
      // LDAP_MATCHING_RULE_IN_CHAIN: Active Directory specific rule
       $fmt = '(&(sAMAccountName=%s)(memberOf:1.2.840.113556.1.4.1941:=%s))';
+      $fmt = '(&(sAMAccountName=%s)(memberOf=%s))';
    }
    $user_gfilter = sprintf($fmt,
      pkwk_ldap_escape_filter($user),

(場合によっては $ldap_base_dn を変更する必要がある)

変更前
 $ldap_base_dn = 'ou=Users,dc=example,dc=local';
変更後
 $ldap_base_dn = 'dc=example,dc=local';

  • Sambaの過去のバージョンの問題であり、PukiWiki側での対処はしません。Status:却下とします。「調査・対応」のカスタマイズを行うことで、Samba 4.2でも動作させることは可能です。(ネストしたグループに対応できない制約は生まれます) -- umorigu 2017-10-25 (水) 21:31:54


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-10-25 (水) 22:31:50
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u8. HTML convert time: 0.195 sec.

OSDN