Передача значения X509 на сервер LDAP

Я работаю над внедрением весенней безопасности в свой проект. Мне нужно использовать имя пользователя, которое Spring Security извлекает из сертификата CN как uid на сервере LDAP. Я не уверен, как правильно подойти к этой проблеме. Я не уверен, как передать значение CN из x509 в аутентификатор LDAP. Кто-нибудь сделал это раньше или имел какие-то идеи?

Примечание. Мне не нужно передавать весь сертификат на сервер LDAP, поскольку они там не хранятся, а только имя пользователя из CN.

Изменить: Вот некоторые из настроек в моем весеннем файле xml security security:


    
    
     <!-- user-service-ref needed? -->





            

1
nl ja de
Возможно, я должен уточнить: у меня есть регулярное выражение, которое я занимаю часть CN. Эта часть не имеет значения. Соответствующая часть - это то, что я спрашивал, как передать значение, которое я вытаскиваю на сервер LDAP. Я добавил в тег, который у меня есть. благодаря
добавлено автор James, источник
CN не является UID. В описании проблемы есть что-то серьезное.
добавлено автор EJP, источник

1 ответы

Вы должны использовать LDAP-пользователь-сервис . Вот пример конфигурации из набора тестов Spring Security. Spring Security затем автоматически заменяет имя пользователя, которое он извлекает из сертификата CN, вместо маркера {0} в LDAP-поисковом фильтре.

Элемент ldap-authentication-provider предназначен для аутентификации пользователей с именем пользователя и паролем, который не является тем, что вы хотите с X.509, где проверка сертификата контейнером считается выполнением аутентификация.

Для проверки подлинности фильтра X.509 для Spring Security необходим UserDetailsService для загрузки информации для пользователя, поэтому вам нужна одна в вашей конфигурации. Как описано в руководстве вам не нужно использовать атрибут user-service-ref , если есть только один, поэтому достаточно добавить объявление ldap-user-service .

1
добавлено
Это помогло мне развернуть все. У меня возникли проблемы с получением пользователя, прошедшего проверку подлинности. Не отображается журнал, как бы включить это? Кроме того, role-prefix = "none" не работает, все еще бросая ошибку атрибута на пользовательскую роль. Есть предположения?
добавлено автор James, источник
Например, если я ввел role-prefix = "none" в ldap-user-service и использовал пользовательскую роль, например Я получаю сообщение об ошибке: Неподдерживаемые атрибуты конфигурации: [пользователь] . Согласно документации, если роль не установлена, я могу использовать свои собственные роли, но это, похоже, не работает.
добавлено автор James, источник
Отлично, спасибо Люку!
добавлено автор James, источник
Проверьте, как настраивать ведение журнала в любом из примеров приложений. Я не знаю, что вы подразумеваете под «бросанием ошибки атрибута на пользовательскую роль».
добавлено автор Shaun the Sheep, источник
Если вы удалите префикс роли, стандартный RoleVoter не будет использовать атрибуты (см. FAQ). Вы можете переключиться на использование выражений вместо и использовать access = "hasRole ('user')"
добавлено автор Shaun the Sheep, источник
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Кибербезопасность АСУ ТП: RUSCADASEC Community
Кибербезопасность АСУ ТП: RUSCADASEC Community
1 389 участник(ов)

Группа открытого независимого сообщества специалистов по кибербезопасности АСУ ТП / RUSCADASEC для интерактивного обмена информацией по теме Подробнее: www.ruscadasec.ru Наш канал для основных новостей и материалов @RUSCADASECnews

Spring Framework and more
Spring Framework and more
839 участник(ов)

чат о spring framework и связанных с ним технологиях. We're discussing: job, tech questions, beer meet up/networking: tech review ,LinkedIn skills, SOF q/a raise up& etc. languages: russian,java,eng.

secinfosec
secinfosec
697 участник(ов)

Эта группа про информационную безопасность. Целевая аудитория: пентестеры, ресерчеры, ибшники всех мастей. Реклама, криминал, политика и прочая чушь карается родовыми проклятьями. Митапы: https://www.youtube.com/channel/UCagEjp1FmxY9gsVxi6_d4SQ

Linux Security
Linux Security
652 участник(ов)

Данная группа принципиально про безопасность и в частности про безопасность Linux. Прочие темы просим обсуждать в профильных чатах.

Chat Security / ИБач чат
Chat Security / ИБач чат
601 участник(ов)

Чат канала @ibach Обсуждение всего, что касается информационной безопасности Правила: https://t.me/chat_security/65

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async