LINUX.ORG.RU
ФорумAdmin

Лучший способ авторизации LDAP в NGINX

 , ,


0

3

Хочу ограничить доступ к внутреннему ресурсу, но чтоб не писать свою систему авторизации и переиспользовать пароль/логин от виндового домена хочу использовать доменные учетные записи

Какой самый лучший способ это сделать? Также важно что бы передавался текущий юзер что бы логировать.

Через промежуточный сервер apache?

Ответ на: комментарий от glorsh66

Когда я работал в компании, эксплуатирующей windows домен, я на своей линукс станции входил в домен с помощью kinit. После этого firefox и chrome заходили на сайты корпоративного интранета прозрачно. Правда у chrome для этого приходилось в /etc/opt/chrome/policies/managed/policy.json добавить

{
    "AuthServerWhitelist": "corp.com,*.corp.com",
    "AuthNegotiateDelegateWhitelist": "corp.com,*.corp.com"
}
iliyap ★★★★★
()
Ответ на: комментарий от einhander

«Обычный» ldap не даёт прозрачного входа. Логин пороль приходится вводить каждый раз для каждого сайта.

Для андроида в магазине есть hypergate authenticator, для iOS поддержка kerberos single sign-on встроенная.

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

Обычный» ldap не даёт прозрачного входа

Да, но если повесить все на один сайт, то вводить нужно будет один раз. Sso без дополнительных телодвижений работает только в винде, в других случаях нужно что-то допиливать на стороне клиента.

einhander ★★★★★
()
Ответ на: комментарий от Psilocybe

Вопрос в том что apache не передате имя пользователя в режиме прокси. Как заставить его передавать ?

<VirtualHost *:80>
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]



        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

ProxyPreserveHost On
ProxyRequests On
ProxyVia On

<Proxy *>
AuthType Kerberos
KrbAuthRealms DOMAIN.RU
KrbServiceName HTTP
Krb5Keytab /etc/apache2/sqserver.keytab
KrbMethodNegotiate on
KrbMethodK5Passwd on
require valid-user
SetEnv proxy-chain-auth 

</Proxy>

ProxyPass / http://192.168.56.124:80/
ProxyPassReverse / http://192.168.56.124:80/
glorsh66
() автор топика
18 января 2023 г.
Ответ на: комментарий от glorsh66

Да небось часть заголовков портится при пробросе.

Нужны директивы наподобие таких:

ProxyPassReverse <backend_url>
ProxyPreserveHost On

См. статью ниже или аналогичные

https://medium.com/@uri.tau/apache-and-ldap-cc7bff1f629d

https://gist.github.com/alivesay/b81cd86457a1590e0cfd49725494056c

NDfan
()
Последнее исправление: NDfan (всего исправлений: 1)