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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

LDAP

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

Apache

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

Q&A

解決済

1回答

3557閲覧

Apacheでのベーシック認証

Serrrim

総合スコア1

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

LDAP

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

Apache

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

0グッド

0クリップ

投稿2021/09/22 08:49

編集2021/09/28 06:40

前提・実現したいこと

現在サーバーの勉強をしていて、LDAP( 389 Directory Server )の構築を行っているんですけど
LDAP( ldapsearch )の接続してのユーザー情報の取得は出来ているのですが、Apacheのベーシック認証をする際に
ログイン画面後、ユーザー名( user1 )とパスワード( user1 )の入力後にエラーが発生するのですが、誰かわかる方がいたら教えていただければ幸いです。

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

Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log.

#/var/log/httpd/access_log

192.168.3.1 - - [22/Sep/2021:16:38:15 +0900] "GET / HTTP/1.1" 401 381 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0" 192.168.3.1 - user1 [22/Sep/2021:16:38:25 +0900] "GET / HTTP/1.1" 500 527 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0" 192.168.3.1 - user1 [22/Sep/2021:16:38:25 +0900] "GET /favicon.ico HTTP/1.1" 500 527 "http://192.168.3.101/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0"

#/var/log/httpd/error_log には特に記述なし

#/var/log/dirsrv/slapd-Instance1/access

[22/Sep/2021:16:38:25.087235949 +0900] conn=17 fd=64 slot=64 connection from 192.168.3.101 to 192.168.3.101 [22/Sep/2021:16:38:25.087417408 +0900] conn=17 op=0 BIND dn="Directory Manager" authzid="(null)", invalid bind dn [22/Sep/2021:16:38:25.087462864 +0900] conn=17 op=0 RESULT err=34 tag=97 nentries=0 wtime=0.000091676 optime=0.000094978 etime=0.000184462 [22/Sep/2021:16:38:25.087954227 +0900] conn=17 op=1 UNBIND [22/Sep/2021:16:38:25.087984190 +0900] conn=17 op=1 fd=64 closed error - U1 [22/Sep/2021:16:38:25.162448449 +0900] conn=18 fd=65 slot=65 connection from 192.168.3.101 to 192.168.3.101 [22/Sep/2021:16:38:25.162643457 +0900] conn=18 op=0 BIND dn="Directory Manager" authzid="(null)", invalid bind dn [22/Sep/2021:16:38:25.162673389 +0900] conn=18 op=0 RESULT err=34 tag=97 nentries=0 wtime=0.000118580 optime=0.000055076 etime=0.000171851 [22/Sep/2021:16:38:25.163171737 +0900] conn=18 op=1 UNBIND [22/Sep/2021:16:38:25.163188520 +0900] conn=18 op=1 fd=65 closed error - U1
# vi /etc/dirsrv/slapd-Instance1/base.ldif
dn: dc=localdomain objectClass: domain dc: localdomain dn: ou=groups,dc=localdomain objectClass: organizationalunit ou: groups dn: cn=group1,ou=groups,dc=localdomain objectClass: posixGroup cn: group1 gidNumber: 3000 dn: ou=users,dc=localdomain objectClass: organizationalunit ou: users dn: uid=user1,ou=users,dc=localdomain objectClass: posixAccount cn: user1 gidNumber: 3000 homeDirectory: /home/user1 uid: user1 uidNumber: 3000 loginShell: /bin/bash userPassword: abcuser
# ldapsearch -H ldap://centos8.localdomain -D "cn=Directory Manager" -w 'kdnrIHMe45' -b dc=localdomain
# extended LDIF # # LDAPv3 # base <dc=localdomain> with scope subtree # filter: (objectclass=*) # requesting: ALL # # localdomain dn: dc=localdomain objectClass: domain objectClass: top dc: localdomain # groups, localdomain dn: ou=groups,dc=localdomain objectClass: organizationalunit objectClass: top ou: groups # group1, groups, localdomain dn: cn=group1,ou=groups,dc=localdomain objectClass: posixGroup objectClass: top cn: group1 gidNumber: 3000 # users, localdomain dn: ou=users,dc=localdomain objectClass: organizationalunit objectClass: top ou: users # user1, users, localdomain dn: uid=user1,ou=users,dc=localdomain objectClass: posixAccount objectClass: top cn: user1 gidNumber: 3000 homeDirectory: /home/user1 uid: user1 uidNumber: 3000 loginShell: /bin/bash userPassword:: e1BCS0RGMl9TSEEyNTZ9QUFBSUFOM1lxVUw4bFpHdmxScThzckpPWEEzWHR3UzU vYXMwdGl3R1BrcmUxNVRuZ2ltYzN1V3IrODFXWVB2U1dLWlF6b3NxV20rbGFqZ3MxVDdSNHR3N3Bu MFdyUTVnelEwcnJYQ3E4dkJYLytrN3lvZlZFUmo3QnZjMllwZXJyYzJDNXJ4SVFnaEE2U0w5ZFNIb 2QvSVRGSERaa1VWNzlTeDdvYmJFREdVM04wT1pWcTZ2SE9RTUpsREdzV3IxclJBL21SSk9rVThlOG 1OOCtHcUh4c2lML1dJQVJDVHhWd0JJZG5nK25WWDZNQktiandWbGpOTW5oWkdwdWhQYUU1ZWRZL0N WMklsREF1VkxRQWpLdldnbHFQYnpnRVFvdGNkR0o3TDQ3RUFFTC9SWmFhRmlhVW8xWWRJblA0Q0h5 WjVaQzQ2UGZBKy9BZ0FOcUpxb283eXlEL21pVC83alhlUWc5SzY5TVlrTko2SXhGTFJwZnlPcDRsQ 3dzUTRiMGZ4Nkl5amlRTnphRE5XOHB1TWxZRDZWdjJPanJrQ3NVd2hrTDkzWTlCVHlHYnlQ # search result search: 2 result: 0 Success # numResponses: 6 # numEntries: 5 # vi /etc/httpd/conf/httpd.conf AuthType Basic AuthName "LDAP Authentication" AuthBasicProvider ldap AuthLDAPURL "ldap://centos8.localdomain:389/ou=users,dc=localdomain?sAMAccountName?sub?(objectClass=*)" AuthLDAPBindDN "Directory Manager" AuthLDAPBindPassword "kdnrIHMe45" Require valid-user
# vi /etc/httpd/conf/httpd.conf

AuthType

1 AuthName "LDAP Authentication" 2 AuthBasicProvider ldap 3 AuthLDAPURL "ldap://centos8.localdomain:389/ou=users,dc=localdomain?sAMAccountName?sub?(objectClass=*)" 4 AuthLDAPBindDN "Directory Manager" 5 AuthLDAPBindPassword "kdnrIHMe45" 6 Require valid-user

補足情報(FW/ツールのバージョンなど)

Centos : ver 8.1 Apache : ver 2.4.37

389 Directory Server : ver 1.4.4.16

( firewall と selinux は無効化済み)
※ aciの設定はデフォルトのままです。

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

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

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

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

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

angel_p_57

2021/09/22 10:44

ログや設定ファイルについては ``` の行を前後に挟んで記載するようにお願いします。 変に修飾されて見辛いです。
Serrrim

2021/09/24 00:06

すみません、ご指摘ありがとうございます。 修正させていただきました。
guest

回答1

0

ベストアンサー

取り敢えず、LDAPサーバのログに "invalid bind dn" とあること、

[22/Sep/2021:16:38:25.087417408 +0900] conn=17 op=0 BIND dn="Directory Manager" authzid="(null)", invalid bind dn

ldapsearchコマンドで試す時には -D "cn=Directory Manager" とbind-dnを指定しているのに対し、Apacheの設定ではAuthLDAPBindDN "Directory Manager" となっている点がミスマッチであること、

以上2点から、bind-dn の設定がまず問題ではないかと思います。

投稿2021/09/22 10:49

angel_p_57

総合スコア1681

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

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

Serrrim

2021/09/24 05:31 編集

Apacheの設定で AuthLDAPBindDN "cn=Directory Manager" にした所、ldapsearchも上手くいきウェブまではいけたのですが ユーザー名、パスワード(どちらもuser1)での入力したのですがログインに失敗してしまいます、、、 /var/log/httpd/access_log ``` 192.168.3.2 - - [24/Sep/2021:14:20:08 +0900] "GET / HTTP/1.1" 401 381 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36" 192.168.3.2 - user1 [24/Sep/2021:14:20:18 +0900] "GET / HTTP/1.1" 401 381 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36" ``` /var/log/httpd/error_log ``` [Fri Sep 24 14:21:27.655314 2021] [auth_basic:error] [pid 2579:tid 140039900038912] [client 192.168.3.2:56660] AH01617: user user1: authentication failure for "/": Password Mismatch ``` Instance1/access ``` [24/Sep/2021:14:23:34.128960615 +0900] conn=21 fd=64 slot=64 connection from 192.168.3.3 to 192.168.3.3 [24/Sep/2021:14:23:34.129089260 +0900] conn=21 op=0 BIND dn="cn=Directory Manager" method=128 version=3 [24/Sep/2021:14:23:34.129224867 +0900] conn=21 op=0 RESULT err=49 tag=97 nentries=0 wtime=0.000060991 optime=0.000159700 etime=0.000219211 - Invalid credentials [24/Sep/2021:14:23:34.129484674 +0900] conn=21 op=1 UNBIND [24/Sep/2021:14:23:34.129493155 +0900] conn=21 op=1 fd=64 closed error - U1 [24/Sep/2021:14:23:40.954391880 +0900] conn=22 fd=64 slot=64 connection from 192.168.3.3 to 192.168.3.3 [24/Sep/2021:14:23:40.954486711 +0900] conn=22 op=0 BIND dn="cn=Directory Manager" method=128 version=3 [24/Sep/2021:14:23:40.954643496 +0900] conn=22 op=0 RESULT err=49 tag=97 nentries=0 wtime=0.000058455 optime=0.000167720 etime=0.000224228 - Invalid credentials [24/Sep/2021:14:23:40.954971037 +0900] conn=22 op=1 UNBIND [24/Sep/2021:14:23:40.954981759 +0900] conn=22 op=1 fd=64 closed error - U1 ```
angel_p_57

2021/09/26 06:10

bind-dnはあってるけどパスワードが間違ってるということですね。( Invaild credentials ) 設定とldapsearchのコマンドラインを見る限りあっているようなので、そこはなんとも分かりません。 ただ、他の設定項目を見て思ったのですが、認証するユーザとLDAP上のエントリの対応もおかしいようなので ( AuthLDAPURLに sAMAccountName? とありますけど、ldif の属性にそんなのありませんよね )、抜本的に見直しても良い気がします。 今の設定だと、"cn=Directory Manager"でBIND→ユーザに対応するDNを検索→検索したDNとユーザパスワードで改めてBIND→BINDに成功すれば認証O.K. という流れを想定したものになります。 が、検索をすっとばして、いきなりユーザのDNでBINDさせた方が話が早そうです。 その場合、AuthLDAPInitialBindAsUser を on にした上で、ユーザ名とDNの対応を AuthLDAPInitialBindPattern で設定する形になります。 https://httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html#authldapinitialbindasuser https://httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html#authldapinitialbindpattern パターンの設定は上記マニュアルにも例がありますが、今回 "uid=ユーザ名,ou=users,dc=localdomain" というDNにされているようなので、次のような設定になるかと思います。 AuthLDAPInitialBindPattern (.+) uid=$1,ou=users,dc=localdomain
Serrrim

2021/09/27 01:42

angel_p_57 様 ご回答頂きまして本当に有難う御座います。 AuthLDAPURL の sAMAccountName? のミスと言うことをご教示頂き、 以下の設定に変更したところ、無事に認証されました! AuthLDAPURL "ldap://centos8.localdomain:389/ou=users,dc=localdomain" 1週間程悩み苦しみましたが、こんなに早く解決するとは思っておりませんでした。 こちらで相談して本当に良かったです。 またどうぞよろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問