3

Tomcat6 をサーブレット コンテナーとして Java を実行しているので、Tomcat JNDIRealm 機能を使用して、LDAP ユーザーが追加の作業なしでサイトにログインできるようにすることが適切であることがわかりました。私が使用している LDAP サーバーは、Ubuntu の OpenLDAPです。

この上に、 https 接続を介したフォームベース認証を使用したログイン ページがあります。

LDAP を介した認証ユーザーの 2 つの非常に良い例を見つけました。ここここで、どちらも私がほぼ達成したと感じていることを達成しています。なぜほぼ達成されたのですか?

間違った資格情報でログインしようとすると、私の場合は適切に に送信され<form-error-page>ますlogin-failed.html

資格情報が良好で、認証に成功すると、サイト内のすべての URL に対して 403 が返され始めます。また、Tomcat を再起動しない限り、403 エラーを削除することはできません (ログイン ページでも削除できません!)。

rolesその理由は、レルムまたは他の構成ファイルが正しくセットアップされていないためだと思われます。簡潔にするために、関連する構成ファイルの抜粋をpastebinに置きます。

ロールはtomcat-users.xml. したがって、認証に成功した後、認証されたユーザーの役割を LDAP から取得するのは問題だと思います。

TL/DR

Tomcat を LDAP 認証に接続する際に構成の問題があります。ユーザー データは適切に取得されましたが、ユーザーの役割は取得されませんでした。リクエストに応じて利用可能な LDAP ログメッセージ ;)

更新:ここに LDAP データを貼り付けました。

4

1 に答える 1

1

それは正しいです。LDAPロールがJNDIRealmによって検出されていません。Tomcatの外部でロール検索文字列をテストして、期待どおりの結果が得られることを確認する必要があります。LDAPの詳細を提供していないため、これ以上コメントすることはできません。

/*を使用してサイト全体にセキュリティ許可を設定するのは間違いです。ログインページと、おそらくフロントページとパスワードを忘れたページも、おそらくそれ以上、役割を要求することから除外する必要があります。

于 2012-06-25T22:37:45.257 に答える