Answer the question
In order to leave comments, you need to log in
How to authorize a user by certificate in NGINX with CN verification?
Все добрый день.
Появилась задачка настроить доступ пользователей к ресурсам компании по сертификатам на базе NGINX.
Хочу дополнительно к проверке сертификата добавить проверку CN="test_user01" в сертификате, для возможности разграничения доступа к ресурсам на основании групп в AD.
В nginx есть переменная $ssl_client_s_dn, которая возвращает что-то такое "/DC=org/DC=testdomain/OU=Spec/OU=Admin/CN=test_user01".
Можно выгружать список пользователей из AD по cron, но как потом сравнить данные из этого списка с CN из сертификата? Куда допать?)
Answer the question
In order to leave comments, you need to log in
CN из $ssl_client_s_dn можно достать с помощью map, например в nginx.conf пишем:
map $ssl_client_s_dn $ssl_client_s_dn_cn {
default "";
~/CN=(?<CN>[^/]+) $CN;
}
Можно использовать сервер аутентификации, который будет при доступе к ресурсу проверять сертификат пользователя на валидность и на принадлежность к группам в LDAP, а при необходимости и другие параметры учесть, например, разрешенных IP-адресов или дату/время доступа. Достаточно стандартная задача.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question