使用 Apache shiro 登录活动目录
Active directory login using Apache shiro
我们有一个基于 Java 的应用程序,我们使用 CN 作为登录名。
但是我们想使用 samAccountName 作为 userId。
以下是 shiro.ini
contextFactory=com.trmsys.cargo.shield.shiro.ldap.JndiExtLdapContextFactory
contextFactory.url=ldaps://ldaps.test.net:636
contextFactory.systemAuthenticationMechanism=simple
contextFactory.systemUsername=CN=SRV,OU=ServiceUsers,DC=test,DC=net
contextFactory.systemPassword=12WEty%^
contextFactory.environment[java.naming.security.protocol]=ssl
ldapRealm=com.trmsys.cargo.shield.shiro.ldap.JndiLdapRoleRealm
ldapRealm.contextFactory=$contextFactory
ldapRealm.userDnTemplate=CN={0},OU=AppUsers,DC=test,DC=net
ldapRealm.searchBase=OU=Groups,DC=test,DC=net
ldapRealm.searchUserBase=OU=AppUsers,DC=test,DC=net
ldapRealm.groupObjectClass=group
ldapRealm.uniqueMemberAttribute=member
ldapRealm.uniqueMemberAttributeValueTemplate=CN=0},OU=AppUsersDC=test,DC=net
任何人都可以提供进行所需更改的正确方法。
找到了正确的方法。
我们必须在以下行中进行更改
ldapRealm.userDnTemplate=CN={0},OU=AppUsers,DC=test,DC=net
变化如下
ldapRealm.userDnTemplate={0}
现在,sAmAccountName 可以用作 userId。登录时,用户名应使用 "domain/account" 或 "account@domain".
如果我们不想使用"domain/account",更改如下
ldapRealm.userDnTemplate=domain/{0}
现在用户 ID 为 "account"。 [帐户 == sAmAccountName 的值]
我们有一个基于 Java 的应用程序,我们使用 CN 作为登录名。 但是我们想使用 samAccountName 作为 userId。 以下是 shiro.ini
contextFactory=com.trmsys.cargo.shield.shiro.ldap.JndiExtLdapContextFactory
contextFactory.url=ldaps://ldaps.test.net:636
contextFactory.systemAuthenticationMechanism=simple
contextFactory.systemUsername=CN=SRV,OU=ServiceUsers,DC=test,DC=net
contextFactory.systemPassword=12WEty%^
contextFactory.environment[java.naming.security.protocol]=ssl
ldapRealm=com.trmsys.cargo.shield.shiro.ldap.JndiLdapRoleRealm
ldapRealm.contextFactory=$contextFactory
ldapRealm.userDnTemplate=CN={0},OU=AppUsers,DC=test,DC=net
ldapRealm.searchBase=OU=Groups,DC=test,DC=net
ldapRealm.searchUserBase=OU=AppUsers,DC=test,DC=net
ldapRealm.groupObjectClass=group
ldapRealm.uniqueMemberAttribute=member
ldapRealm.uniqueMemberAttributeValueTemplate=CN=0},OU=AppUsersDC=test,DC=net
任何人都可以提供进行所需更改的正确方法。
找到了正确的方法。 我们必须在以下行中进行更改
ldapRealm.userDnTemplate=CN={0},OU=AppUsers,DC=test,DC=net
变化如下
ldapRealm.userDnTemplate={0}
现在,sAmAccountName 可以用作 userId。登录时,用户名应使用 "domain/account" 或 "account@domain".
如果我们不想使用"domain/account",更改如下
ldapRealm.userDnTemplate=domain/{0}
现在用户 ID 为 "account"。 [帐户 == sAmAccountName 的值]