ユーザーが特定のグループに属している場合にのみ、ユーザーを認証したいと思います。
私のテストでは、2人のユーザーがいます:
- 1 人のユーザーがFIRST GROUPに属している
- その他はSECOND GROUPに属しています
私はアクティブなディレクトリを持っています:
CN=Users,DC=XXXX,DC=com
---usrA
---usrB
---group1
---group2
usrA
にあり、にありgroup1
、usrB
JBossgroup2
を介してユーザーを認証しLdapLoginModule
ますstandalone.xml
。
スタンドアローン.xml:
<login-module code="org.jboss.security.auth.spi.LdapLoginModule" flag="sufficient">
<module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
<module-option name="java.naming.provider.url" value="ldap://192.168.1.18"/>
<module-option name="java.naming.allowEmptyPasswords" value="false"/>
<module-option name="userfilter" value="(&(objectCategory=person)(objectClass=user)(cn={USERNAME})((primaryGroupID=1109)))"/>
<module-option name="principalDNSuffix" value="@XXXX.com"/>
<module-option name="java.naming.security.authentication" value="simple"/>
</login-module>
(primaryGroupID=1109)
=のときgroup1
。
結果は次のとおりです。
- ログイン
usrA
成功 usrB
成功も
そのため、使用されているフィルターが正しく機能しないか、まったく使用されていません。エラーはありません。
Active Directoryで のクエリをテストしたところ、適切な結果userfilter
が返されました " usrA
"
誰かが問題のアイデアを持っていますか? グループに応じてユーザーを使用する別の方法を持っている人はいますか?