CAS 6.0 Как аутентифицировать пользователя / пароль с помощью LDAP
Когда я попытался подключить cas-overlay-6.0 к серверу каталогов ldap Oracle 11 с логином / паролем в приложении cas 6.0, у меня возникла эта ошибка:
КТО: myLogin ЧТО: Предоставленные учетные данные:
[UsernamePasswordCredential(username = myLogin, source = null)] ДЕЙСТВИЕ:
AUTHENTICATION_FAILED APPLICATION: CAS
Мои cas.properties:
cas.authn.ldap[0].ldapUrl=ldap://monserveur.fr
# Identifiant pour se connecter au LDAP
cas.authn.ldap[0].bindDn=cn=Directory Manager
cas.authn.ldap[0].bindCredential=myPassword
cas.authn.ldap[0].baseDn=ou=personnels,ou=XX-XXX-XXXX,ou=edu,o=gov,c=uk
cas.authn.ldap[0].searchFilter=uid={user}
cas.authn.ldap[0].subtreeSearch=true
#cas.authn.ldap[0].principalAttributeList=cn,givenName,mail,sn
cas.authn.ldap[0].principalAttributePassword=userPassword
Примечание: пароль имеет кодировку SSHA в ldap.
Как проверить, что не так? Например, когда я ввожу неправильный baseDn или searchFilter, у меня такая же ошибка. Как выполнить простую проверку логина / пароля, чтобы устранить ошибку?
Как cas работает с паролем, то есть ldap, выполняющий пароль, сравнивает или cas?
Если это cas, который выполняет пароль, сравните, как настроить cas для
Заранее благодарим за любую помощь!
1 ответ
Он работает с паролем SSHA без конфигурации или изменения.
Пример для CAS 6.0.5, предоставляемый cas-overlay-6.0 и ldap Oracle Directory Server 11.
cas.properties:
cas.server.name=https://yourServer:8443
cas.server.prefix=${cas.server.name}/cas
# usefull to modifiy log level. Right path for cas-overlay-6.0
logging.config=file:/etc/cas/config/log4j2.xml
# connexion au ldap sur votre serveur ldap en anonyme
###############################################################################
cas.authn.ldap[0].ldapUrl=ldap://myServer.fr:389/
cas.authn.ldap[0].type=ANONYMOUS
cas.authn.ldap[0].useSsl=false
cas.authn.ldap[0].useStartTls=false
# connexion au ldap en mode authentifié
###############################################################################
#cas.authn.ldap[0].ldapUrl=ldap://myServer.fr:389/
#cas.authn.ldap[0].useSsl=false
#cas.authn.ldap[0].useStartTls=false
#cas.authn.ldap[0].type=AUTHENTICATED
## Identifiant pour se connecter au LDAP
#cas.authn.ldap[0].bindDn=cn=Directory Manager
#cas.authn.ldap[0].bindCredential=myPassword
# search for cas user who try to test login connection
################################################################################
cas.authn.ldap[0].baseDn=ou=XXXXXX,ou=educ,o=gouv,c=fr
cas.authn.ldap[0].subtreeSearch=true
cas.authn.ldap[0].searchFilter=(&(objectClass=person)(uid={user}))
#cas.authn.ldap[0].searchFilter=uid={user}
#cas.authn.ldap[0].principalAttributeList=cn,givenName,mail,sn
С cas-overlay-6.0 вам нужно скопировать conf: ./build.sh copy
для тестирования, когда что-то идет не так:
сторона сервера cas:
telnet yourLdapServer.fr 389
должен работать!
ldapsearch -h yourLdapServer.fr -D "cn=Directory Manager" -w yourPassword -b "ou=personnels,ou=XXXXX,ou=educ,o=gouv,c=fr" uid=loginTest
или анонимная связь
ldapsearch -h yourLdapServer.fr -x -b "ou=personnels,ou=XXXXX,ou=educ,o=gouv,c=fr" uid=loginTest
должен предоставить карту
сторона сервера ldap
tcpdump -v -i eth0 -s 0 -A 'tcp dst port 389'
должен предоставить такую строку (при запуске ldapsearch или тестового подключения для входа в систему):
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
18:04:23.846472 IP (tos 0x0, ttl 64, id 19303, offset 0, flags [DF], proto 6, length: 60) yourCasServer.fr.59810 > yourLdapServer.ldap: S [tcp sum ok] ...
если соединение между cas и ldap не удается, исправьте эти строки в cas.properties:
cas.authn.ldap[0].ldapUrl=ldap://myServer.fr:389/
cas.authn.ldap[0].type=ANONYMOUS
cas.authn.ldap[0].useSsl=false
cas.authn.ldap[0].useStartTls=false
когда соединение между cas и ldap в порядке, проверьте журнал cas и журнал ldap для получения дополнительной информации!