Однажды в Южной Америке были прекрасные теплые виртуальные джунгли, и там жил сервер Squid. Вот образ восприятия сети:
<the Internet>
|
|
A | B
Users <---------> [squid-Server] <---> [LDAP-Server]
Когда Users
запросят доступ в интернет, squid
спросят их имя и паспорт, подтвердят их подлинность LDAP
и, если ldap утвердит их, то он их предоставит.
Все были счастливы, пока некоторые снифферы не украли паспорт на пути между пользователями и squid [путь A]. Эта катастрофа произошла потому, что Squid использовал Basic-Authentication
метод.
Люди джунглей собрались, чтобы решить проблему. Некоторые кролики предложили использовать NTLM
метод. Змеи предпочитают в Digest-Authentication
то время как Kerberos
рекомендуется деревьями.
Ведь многие решения, предложенные людьми из джунглей, и все было перепутано! Лев решил покончить с ситуацией. Он кричал правила для решений:
- Решение должно быть безопасным!
- Должно ли решение работать для большинства браузеров и программного обеспечения (например, для загрузки программного обеспечения)
- Решение должно быть простым и не требовать другой огромной подсистемы (например, сервера Samba)
- Не должен ли метод зависеть от специальной области. (например, Active Directory)
Затем очень разумное, всеобъемлющее и умное решение, предложенное обезьяной, делающее его новым королем джунглей!
Можете ли вы угадать, каково было решение?
Совет:
путь между squid
и LDAP
защищен львом, поэтому решение не нужно защищать его.
Примечание: извините, если история скучная и грязная, но большая ее часть реальна! знак равно
/~\/~\/~\ /\~/~\/~\/~\/~\ ((/~\/~\/~\/~\/~\)) (/~\/~\/~\/~\/~\/~\/~\) (//// ~ ~ \\\\) (\\\\( (0) (0) )////) (\\\\( __\-/__ )////) (\\\( /-\ )///) (\\\( (""""") )///) (\\\( \^^^/ )///) (\\\( )///) (\/~\/~\/~\/) ** (\/~\/~\/) *####* | | **** /| | | |\ \\ _/ | | | | \_ _________// Thanks! (,,)(,,)_(,,)(,,)--------'
Обновить:
Массимо объяснил, что метод аутентификации между Users
- squid
и squid
- LDAP
не должен быть одинаковым. мы можем использовать произвольный метод для получения аутентификационной информации от пользователей и произвольный метод для аутентификации собранных данных.
Но есть проблема: ввод / вывод всех типов аутентификаторов не одинаков. Например:
Basic
аутентификатор следует читать «имя пользователя пароль» пару в линии и отвечатьOK
если пользователь проход правильно илиERR
Digest
аутентификатор должен прочитатьusername:realm
и ответить шестнадцатеричную кодировку вHA(A1)
илиERR
.
Хотя нет прямой связи между методом client-squid и squid-ldap, собранные данные от клиента должны быть совместимы с методом, используемым в части squid-ldap. Поэтому, если мы изменим метод аутентификации на стороне пользователя, возможно, нам следует также изменить наш аутентификатор.
Таким образом, проблема упрощается до:
На первом уровне я (обезьяна!) Ищу хороший метод аутентификации на стороне пользователя. Какой метод вы рекомендуете, который является безопасным и поддерживается большинством браузеров ? Я в замешательстве между
NTLM
,Kerberos
иDigest
.Где я могу найти аутентификатор, который поддерживает учетные данные выбранного метода и аутентифицируется через LDAP.