2015-06-26 2 views
5

РедактироватьКак создать провайдер идентификации Shibboleth 3?

Итак, я думаю, что я почти там. Единственное, что все еще отсутствует, это то, что Shibboleth IdP возвращает зашифрованный переходный NameId, и мне нужно, чтобы оно возвращало имя пользователя, незашифрованное. Если кто-нибудь сможет мне пройти мимо последнего блокатора, я отмечу этот ответ.

(конец редактирования)

Я пытался создать Шибболет 3 IdP (наше приложение поддерживает SAML, и мы нуждаемся в тестовой среде).

Моя цель - простая среда, которая запрашивает наш каталог LDAP для обеспечения аутентификации.

Я установил Shibboleth IdP 3 и, похоже, правильно запросил AD, но мне очень тяжело получить его, чтобы вернуть атрибуты (uid, Name, Last Name, email), которые я запрашиваю.

Я уверен, что моя проблема связана с моими файлами attribute-resolver.xml и attribute-filter.xml, но мне не удалась заставить ее работать.

В основном происходит то, что я успешно вхожу в систему (насколько это касается Shibboleth), но когда он передает утверждение в мое приложение, ни один из атрибутов не существует.

Я попытался добавить их в Attribute-resolver.xml и attribute-filter.xml, но затем я получаю ошибки в idp-warn.log (ниже). Это ошибка учетных данных. Я уверен, что пароль пользователя прав, потому что shibboleth способен аутентифицировать меня (это не сработает, если это не так, не так ли?), Поэтому в моей настройке должно быть что-то еще не так.

Я также попробовал вернуть имя пользователя в Идентификаторе имени подтверждения, но все, что мне кажется, возвращается, это строка с кодировкой base-64 (декодирование дает байты, которые не декодируются обратно в строку, поэтому я не уверен, что там там).

На данный момент, что я мог бы действительно использовать ссылку на хорошее руководство для создания Shibboleth IdP 3 с LDAP. Я просматриваю их документы в Интернете, и в то время как там много сырых данных, очень сложно получить список всего, что нужно сделать, чтобы его запустить и запустить. Какие-либо предложения?

ответ

0

не полный ответ, и я не работал с shibboleth, но мы столкнулись с той же проблемой с NameID при настройке SAML.

Я считаю, что эта страница показывает горячую настроить название которого идентификатор шибболет будет отправить: https://wiki.shibboleth.net/confluence/display/SHIB2/ResolverSAML2NameIDAttributeDefinition

и этот ответ описывает то, что различные схемы имен означают https://stackoverflow.com/a/21682789/143585

То, что мы сделали, хотя, в SAML конфигурации для SAMLAuthenticationProvider мы добавили UserDetails и был красивый кусок кода, который я очень горжусь:

@Override 
public Object loadUserBySAML(SAMLCredential credential) throws UsernameNotFoundException { 
    try { 
     String login = credential.getAttributeByName("login").getAttributeValues().get(0).getDOM().getFirstChild().getNodeValue(); 
     return loadUserByUsername(login); 
    } catch (Exception e) { 
     LOG.error("could not get login name from saml credential", e); 
     throw new UsernameNotFoundException("Could not load user", e); 
    } 
} 

IDP материал был обработан 3-й партии, так что я предполагаю, что это именно они ADDE d этот настраиваемый атрибут для ответа saml. Я думаю, вы можете настроить shibboleth, чтобы сделать то же самое.

+0

Привет, Денис: Спасибо за ваш ответ. Вики-страница Shibboleth, с которой вы связались, была для v2. К сожалению, они обновили конфигурационную систему в версии 3.Сейчас это очень сложно, и способ v2 в Attribute-Resolver считается устаревшим. В конце концов мне удалось запутаться и заставить его работать, с помощью некоторых людей на форумах пользователей Shibboleth. – JMarsch

+1

@JMarsch, да, внедрение saml логин в нашем приложении было мучительным. Я понятия не имею, почему все должно быть так сложно. –

+0

Расскажите мне об этом - это было ужасно. – JMarsch

Смежные вопросы