Вход в Active Directory с использованием Apache shiro - PullRequest
0 голосов
/ 02 марта 2019

У нас есть приложение на основе Java, где мы используем CN в качестве логина.Однако мы хотим использовать samAccountName в качестве идентификатора пользователя.Ниже приводится 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

Может ли кто-нибудь предоставить правильный способ внесения желаемых изменений.

1 Ответ

0 голосов
/ 08 марта 2019

Получил правильный способ сделать это.Мы должны внести изменения в следующую строку

ldapRealm.userDnTemplate=CN={0},OU=AppUsers,DC=test,DC=net

Изменения будут выглядеть следующим образом:

ldapRealm.userDnTemplate={0}

Теперь sAmAccountName может использоваться в качестве userId.При входе в систему имя пользователя следует использовать как «домен / учетная запись» или «account @ domain».

Если мы не хотим использовать «домен / учетную запись», измените его следующим образом

ldapRealm.userDnTemplate=domain/{0}

Теперь идентификатор пользователя будет "account".[account == значение sAmAccountName]

...