質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
LDAP

LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。

Q&A

解決済

1回答

3371閲覧

389directory serverでldapsearchの結果が表示されない

y-hirai

総合スコア15

LDAP

LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。

0グッド

0クリップ

投稿2021/05/28 07:36

前提・実現したいこと

CentOS7でopenldap-serverを用いて認証サーバを立てていました。
老朽化したサーバを置き換えるために、新しくcentOS-streamで389dsを使って同様の環境を作ろうとしています。

その為に、新しいサーバで389dsを設定し、元のサーバからldif形式で持ってきたデータを、ldapaddコマンドで新しいサーバに読み込ませました。

発生している問題・エラーメッセージ

新しいサーバで、
ldapsearch -x -H ldap://localhost -D cn=Manager,dc=〇,dc=▽,dc=× -W -b dc=〇,dc=▽,dc=×
とすると、読み込ませたデータをすべて閲覧可能です。

しかし、それに含まれるユーザデータの一つを選び、
ldapsearch -x -D "uid=name,ou=People,dc=〇,dc=▽,dc=× -W -b dc=〇,dc=▽,dc=×" -H ldap://localhost -W -b "uid=name,ou=People,dc=〇,dc=▽,dc=× -W -b dc=〇,dc=▽,dc=×"
とすると、
Enter LDAP Password:
search result
search: 2
result: 0 Success

numResponses: 1

と、何も表示されません。

パスワードが間違っているのかとも思ったのですが、わざと間違ったパスワードを入力してみると、
ldapsearch -x -D "uid=name,ou=People,dc=〇,dc=▽,dc=× -W -b dc=〇,dc=▽,dc=×" -H ldap://localhost -W -b "uid=name,ou=People,dc=〇,dc=▽,dc=× -W -b dc=〇,dc=▽,dc=×"
Enter LDAP Password:
ldap_bind: Invalid credentials (49)
とエラーが表示されますので、パスワードは間違っていないように思われます。

元のサーバでは、このコマンドで「uid=name,ou=People,dc=〇,dc=▽,dc=× -W -b dc=〇,dc=▽,dc=×」ユーザの登録情報を閲覧する事が出来ました。
なぜ、登録データを閲覧できないのかが分からず困っております。
問題点が分かる人がいましたら教えていただけませんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おそらく、OpenLDAP の ACL から 389ds の ACI への移行ができないのだと思います。

389ds では、デフォルト拒否で、許可ルールを追加していく方針のようです(Directory Manager は除く)。
Red Hat Directory Server 11 のマニュアルが参考になると思います。

第18章アクセス制御の管理

現在の ACI の表示 は下記コマンドで確認できます。

# ldapsearch -D "cn=Directory Manager" -W -p 389 -h server.example.com -x \ -b "dc=example,dc=com" -s sub '(aci=*)' aci

じゃあ、何が足りないのかを見つけるのは難しいのですが、参考までに、CentOS 7 で 389ds (Admin Server あり) をインストールした直後の ACI は以下のとおりです。

dn: dc=example,dc=com aci: (targetattr!="userPassword || aci")(version 3.0; acl "Enable anonymous ac cess"; allow (read, search, compare) userdn="ldap:///anyone";) aci: (targetattr="carLicense || description || displayName || facsimileTelepho neNumber || homePhone || homePostalAddress || initials || jpegPhoto || labele dURI || mail || mobile || pager || photo || postOfficeBox || postalAddress || postalCode || preferredDeliveryMethod || preferredLanguage || registeredAddr ess || roomNumber || secretary || seeAlso || st || street || telephoneNumber || telexNumber || title || userCertificate || userPassword || userSMIMECertif icate || x500UniqueIdentifier")(version 3.0; acl "Enable self write for commo n attributes"; allow (write) userdn="ldap:///self";) aci: (targetattr ="*")(version 3.0;acl "Directory Administrators Group";allow (all) (groupdn = "ldap:///cn=Directory Administrators, dc=example,dc=com");) aci: (targetattr="*")(version 3.0; acl "Configuration Administrators Group"; a llow (all) groupdn="ldap:///cn=Configuration Administrators,ou=Groups,ou=Topo logyManagement,o=NetscapeRoot";) aci: (targetattr="*")(version 3.0; acl "Configuration Administrator"; allow (a ll) userdn="ldap:///uid=admin,ou=Administrators,ou=TopologyManagement,o=Netsc apeRoot";) aci: (targetattr = "*")(version 3.0; acl "SIE Group"; allow (all) groupdn = "l dap:///cn=slapd-kvm74,cn=389 Directory Server,cn=Server Group,cn=kvm74.exampl e.com,ou=example.com,o=NetscapeRoot";) dn: ou=People,dc=example,dc=com aci: (targetattr ="userpassword || telephonenumber || facsimiletelephonenumber ")(version 3.0;acl "Allow self entry modification";allow (write)(userdn = "ld ap:///self");) aci: (targetattr !="cn || sn || uid")(targetfilter ="(ou=Accounting)")(version 3.0;acl "Accounting Managers Group Permissions";allow (write)(groupdn = "lda p:///cn=Accounting Managers,ou=groups,dc=example,dc=com");) aci: (targetattr !="cn || sn || uid")(targetfilter ="(ou=Human Resources)")(ve rsion 3.0;acl "HR Group Permissions";allow (write)(groupdn = "ldap:///cn=HR M anagers,ou=groups,dc=example,dc=com");) aci: (targetattr !="cn ||sn || uid")(targetfilter ="(ou=Product Testing)")(ver sion 3.0;acl "QA Group Permissions";allow (write)(groupdn = "ldap:///cn=QA Ma nagers,ou=groups,dc=example,dc=com");) aci: (targetattr !="cn || sn || uid")(targetfilter ="(ou=Product Development)" )(version 3.0;acl "Engineering Group Permissions";allow (write)(groupdn = "ld ap:///cn=PD Managers,ou=groups,dc=example,dc=com");)

この中で、Admin Server 関連のものを除くと、「dc=example,dc=com」、「ou=People,dc=example,dc=com」それぞれ、userdn="ldap:///self" のルールがあるので、CentOS 8 Stream の aci と比較するといいと思います。
targetattr をワイルドカードで設定するのは推奨されていないので、対象の属性を列挙しているようです。

投稿2021/05/28 13:45

TaichiYanagiya

総合スコア12173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y-hirai

2021/05/28 23:47

早速のご回答ありがとうございます。 週明けに確認してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問