CAS с LDAP: атрибут получен с хранилищем атрибутов, отличным от обработчика аутентификации - PullRequest
0 голосов
/ 23 апреля 2020

Вот моя конфигурация CAS:

# LDAP Authentication
#cas.authn.ldap[0].type=AD
cas.authn.ldap[0].type=AUTHENTICATED
cas.authn.ldap[0].useSsl=false
cas.authn.ldap[0].useStartTls=false
cas.authn.ldap[0].ldapUrl=${ldap.url}
cas.authn.ldap[0].connectTimeout=5000
cas.authn.ldap[0].bindDn=${ldap.bindDn}
cas.authn.ldap[0].bindCredential=${ldap.bindCredential}
cas.authn.ldap[0].minPoolSize=2
cas.authn.ldap[0].maxPoolSize=5
cas.authn.ldap[0].subtreeSearch=true
cas.authn.ldap[0].baseDn=${ldap.baseDn}
cas.authn.ldap[0].searchFilter=${ldap.searchFilter}
cas.authn.ldap[0].dnFormat=${ldap.dnFormat}
cas.authn.ldap[0].principalAttributeId=sAMAccountName
cas.authn.ldap[0].principalAttributeList=objectGUID:objectGUIDFromAuthHandler


# LDAP Attribute Repository
cas.authn.attributeRepository.ldap[0].attributes.uid=uid
cas.authn.attributeRepository.ldap[0].attributes.objectGUID=objectGUIDFromAttrRepo
cas.authn.attributeRepository.ldap[0].attributes.mail=email
cas.authn.attributeRepository.ldap[0].attributes.givenName=prenom
cas.authn.attributeRepository.ldap[0].attributes.sn=nom
cas.authn.attributeRepository.ldap[0].attributes.displayName=displayName
cas.authn.attributeRepository.ldap[0].attributes.sAMAccountName=username
cas.authn.attributeRepository.ldap[0].ldapUrl=${ldap.url}
cas.authn.attributeRepository.ldap[0].useSsl=false
cas.authn.attributeRepository.ldap[0].useStartTls=false
cas.authn.attributeRepository.ldap[0].baseDn=${ldap.baseDn}
cas.authn.attributeRepository.ldap[0].searchFilter=${ldap.searchFilter}
cas.authn.attributeRepository.ldap[0].bindDn=${ldap.bindDn}
cas.authn.attributeRepository.ldap[0].bindCredential=${ldap.bindCredential}

В качестве теста я получаю атрибут «objectGUID» из моего ActiveDirectory дважды, один раз непосредственно из обработчика аутентификации, один раз из репозитория атрибутов LDAP. Моя цель - получить его только из AttributeRepository (поскольку у меня также активирована аутентификация SPNE GO).

Проблема в том, что я не получаю один и тот же objectGUID в обоих случаях! Из AuthenticatoinHandler я получаю GUID в кодировке base64. Из AttributeRepository я получаю двоичный объект, соответствующий ДРУГОЙ GUID. Странно, но с другим атрибутом все в порядке: если я получаю displayName или данное имя от AuthenticationHandler и AttributeRepository, они совпадают.

Это известная проблема? Есть ли проблема с моей конфигурацией? Могу ли я что-нибудь сделать, чтобы решить эту проблему или предоставить какую-либо другую информацию, чтобы кто-то помог мне с этим вопросом?

Спасибо!

...