Tomcat6 をサーブレット コンテナーとして Java を実行しているので、Tomcat JNDIRealm 機能を使用して、LDAP ユーザーが追加の作業なしでサイトにログインできるようにすることが適切であることがわかりました。私が使用している LDAP サーバーは、Ubuntu の OpenLDAPです。
この上に、 https 接続を介したフォームベース認証を使用したログイン ページがあります。
LDAP を介した認証ユーザーの 2 つの非常に良い例を見つけました。こことここで、どちらも私がほぼ達成したと感じていることを達成しています。なぜほぼ達成されたのですか?
間違った資格情報でログインしようとすると、私の場合は適切に に送信され<form-error-page>
ますlogin-failed.html
。
資格情報が良好で、認証に成功すると、サイト内のすべての URL に対して 403 が返され始めます。また、Tomcat を再起動しない限り、403 エラーを削除することはできません (ログイン ページでも削除できません!)。
roles
その理由は、レルムまたは他の構成ファイルが正しくセットアップされていないためだと思われます。簡潔にするために、関連する構成ファイルの抜粋をpastebinに置きます。
- Tomcat のレルム
server.xml
- 関連
tomcat-users.xml
部品 - 関連
web.xml
部品 - 基本的な LDAP 構造、ダッシュはツリー構造を示します
ロールはtomcat-users.xml
. したがって、認証に成功した後、認証されたユーザーの役割を LDAP から取得するのは問題だと思います。
TL/DR
Tomcat を LDAP 認証に接続する際に構成の問題があります。ユーザー データは適切に取得されましたが、ユーザーの役割は取得されませんでした。リクエストに応じて利用可能な LDAP ログメッセージ ;)
更新:ここに LDAP データを貼り付けました。