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

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

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

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

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

1回答

1994閲覧

389dsを使ってのApache Basic認証がうまく行かない

y-hirai

総合スコア14

LDAP

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

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

0クリップ

投稿2021/08/19 07:26

前提・実現したいこと

以前こちらで質問させていただいたことがあるのですが、389DSを用いてLDAP認証サーバを立てています。
今回別のWEBサーバのBasic認証に、このサーバのLDAPを使おうとしています。(WEBサーバのApacheのバージョンは2.4.6)

#発生している問題・エラーメッセージ
WEBサーバで動かしているApacheの設定ファイルで
<Location "/~">
AuthType Basic
AuthName "Input ID and Password"
AuthBasicProvider ldap
AuthLDAPURL ldap://〇/ou=People,dc=〇,dc=▽,dc=×?uid TLS
Require valid-user
</Location>
この場合、認証は問題なく通ります。
Require user A B……
と個別にユーザ名を記述した場合も問題はありませんでした。

しかし、
<Location "/~">
Options Includes
AuthType Basic
AuthName "Input ID and Password"
AuthBasicProvider ldap
AuthLDAPURL ldap://〇/ou=People,dc=〇,dc=▽,dc=×?uid TLS
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
require ldap-group cn=▽,ou=Group,dc=〇,dc=▽,dc=×
</Location>
これだと認証が通らないのです。

なぜ、認証が通らないのかが分からず困っております。
問題点が分かる人がおられましたら教えていただけませんでしょうか?

メモ

WEBサーバで
ldapsearch -x -H ldap://〇 -b cn=▽,ou=Group,dc=〇,dc=▽,dc=×
とやると結果が返ってきます。
dn: cn=▽,ou=Group,dc=〇,dc=▽,dc=×
objectClass: top
objectClass: posixGroup
cn: ▽
gidNumber: (番号)
memberUid: 登録されたuid
……

この点には問題がなさそうに見えます。

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

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

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

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

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

TaichiYanagiya

2021/08/20 12:21

389-ds の access ログには何か記録されていませんでしょうか? 特に、「CMP dn="グループDN" attr="memberUid"」とその結果箇所。
y-hirai

2021/08/20 12:30

お返事ありがとうございます。 [日時] conn=88191 op=5 CMP dn="▽,ou=Group,dc=〇,dc=▽,dc=×" attr="memberUid" [日時] conn=88191 op=5 RESULT err=50 tag=111 nentries=0 wtime=0.000048816 optime=0.000039781 etime=0.000087658 こんな感じになります。
guest

回答1

0

ベストアンサー

「err=50」は LDAP_INSUFFICIENT_ACCESS (0x32) とのことです。
グループに対する compare 権限が anonymous に無いのだと思います。
権限を持つ DN、パスワードを AuthLDAPBindDN, AuthLDAPBindPassword に設定するか、anonymous で compare できるよう、ACI を設定する必要があります。

後者の場合、ACI を設定したら、ldapcompare コマンドで事前に確認するといいと思います。

ldapcompare -x -H ldap://... "グループDN" "memberUid:ユーザーID" ; echo $? (主な終了コード : ldap.h) #define LDAP_COMPARE_FALSE 0x05 #define LDAP_COMPARE_TRUE 0x06 #define LDAP_INSUFFICIENT_ACCESS 0x32

投稿2021/08/20 12:53

TaichiYanagiya

総合スコア12146

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

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

y-hirai

2021/08/20 13:52

早速のご回答ありがとうございます。 週明けになりますが、試してみる心算です。
y-hirai

2021/08/23 00:57

上記の件、試してみました。 dn: dc=〇,dc=▽,dc=× add: aci aci: (targetfilter="(objectClass=posixGroup)")(version 3.0;acl"";allow(search,read,compare)(userdn="ldap:///anyone");) というldifを書いて、読み込ませてみました。 ldapsearchでaciを表示させると、 aci: (targetfilter="(objectClass=posixGroup)")(version 3.0;acl"";allow(search, read,compare)(userdn="ldap:///anyone");) との表記がきちんとあります。 しかし、 ldapcompare -x -H ldap://…… 'cn=グループ名,ou=Group,dn: dc=〇,dc=▽,dc=×' 'memberUid: ユーザID' としてみましたが、結果は Compare Result: Insufficient access (50) UNDEFINED でした。 念のため、Basic認証も試してみましたが、状況は変わりませんでした。 この書き方では、compare権限をanonymousにつけることが出来ていないという事でしょうか?
TaichiYanagiya

2021/08/23 08:12

targetfilter だけだとダメみたいです。 「(targetfilter="(objectClass=posixGroup)")(targetattr="memberUid")」あるいは 「(targetfilter="(objectClass=posixGroup)")(targetattr="*")」で属性も指定する必要があります。
y-hirai

2021/08/23 09:14

ありがとうございます。 もしかして、targetattrも要るのか?とやっと思いついたところでした。 設定してみたところ、うまく行きました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問