特定のリソースにアクセスしたいユーザーをActive Directoryで認証したい。私は JSF 2.1 と Glassfish 3.1.2 を使用しています。これ、これ、これを試し てみましたが、うまくいきません。ユーザーはサインインできません。常にエラー ページにリダイレクトされます。
domain.xml スニペット:
<auth-realm name="ADREALM" classname="com.sun.enterprise.security.auth.realm.ldap.LDAPRealm">
<property name="directory" value="LDAP://WIN-AK5HJBX4R4G.my.com/"></property>
<property name="search-filter" value="(&(objectClass=user)(sAMAccountName=%s))"></property>
<property name="base-dn" value="DC=my,DC=com"></property>
<property name="group-search-filter" value="(&(objectClass=group)(member=%d))"></property>
<property name="jaas-context" value="ldapRealm"></property>
<property name="assign-groups" value="Domain Users"></property>
<property name="search-bind-dn" value="WIN-AK5HJBX4R4G.my.com\Administrator"></property>
<property name="search-bind-password" value="Qwerty123"></property>
</auth-realm>
WIN-AK5HJBX4R4G - これは仮想サーバーのデフォルト名です (192.168.56.101 または単に localhost にすることができます。webapp はこのサーバーにデプロイされているため、名前の付け方を意味するものではなく、AD もこのサーバー上にあります)。
次のような形式の search-bind-dn を試します。
WIN-AK5HJBX4R4G.my.com\Administrator <- it works for asp.net so I think it is good form , maybe I'm wrong?
Administrator@my.com
CN=Administrator,CN=Users,DC=my,DC=com
何も機能しません。ユーザーはまだログインできません。
web.xml スニペット:
<login-config>
<auth-method>FORM</auth-method>
<realm-name>ADREALM</realm-name>
<form-login-config>
<form-login-page>/login.xhtml</form-login-page>
<form-error-page>/loginError.xhtml</form-error-page>
</form-login-config>
</login-config>
<security-constraint>
<display-name>Example Security Constraint</display-name>
<web-resource-collection>
<web-resource-name>Protected Pages</web-resource-name>
<url-pattern>/faces/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<description>A Funky User</description>
<role-name>user</role-name>
</security-role>
glassfish-web.xml スニペット:
<security-role-mapping>
<role-name>user</role-name>
<group-name>Domain Users</group-name>
</security-role-mapping>
-Djava.naming.referral=follow
JVMオプションにも追加しました。
- 可能であれば、「サーバーへの接続に失敗しました」または「パスワードまたはログインが正しくありません」という例外やエラーなどをどこで確認できますか? ログファイルはありますか? または、他の何か?
- 構成ファイルに何かがありませんでしたか?