Каковы предполагаемые / фактические преимущества Kerberos? Есть ли жизнеспособные альтернативы технологии? - PullRequest
1 голос
/ 21 мая 2009

Мы планируем использовать Kerberos в нашей архитектуре. Я хотел бы знать, какие предполагаемые или реальные преимущества у этой технологии, и есть ли какие-либо альтернативы.

Обратите внимание, что у нас есть сторона клиента .net и сторона сервера java. связь будет через шину обмена сообщениями и SOA

1 Ответ

4 голосов
/ 21 мая 2009

Если вы работаете в основном в среде Windows (например, Windows Server 2k3, контроллер домена, Active Directory и т. Д.), В частности, вы можете использовать олицетворение через .NET с разделенным веб-сервером и сервером базы данных. Используя более старый метод NTLM, вы не можете выполнить двойной скачок.


Давайте рассмотрим пример:

  • У вас есть веб-сервер (WEB1)
  • У вас есть сервер базы данных на отдельном компьютере (DB1)
  • У вас есть доступ к вашему сайту (USER1)

USER1 попадает на страницу, на которой отображается список заказов. Ваш сервер WEB1 должен запросить DB1 для отображения этой информации на странице. Вы хотите ограничить, какие заказы видны на основе учетных данных пользователя и прав доступа. Таким образом, вы устанавливаете активные группы каталогов и соответственно назначаете пользователей. В вашей базе данных вы предоставляете различным группам разную защиту (например, GROUP1 может иметь только select, а GROUP2 может получать, например, select, insert и update).

NTLM не поддерживает двойной скачок, необходимый для этого. WEB1 должен отправить учетные данные пользователя USER1 в DB1 (в противном случае WEB1 должен войти в DB1 с известным выделенным идентификатором пользователя и паролем, например, жестко закодированным в web.config, который обычно должен иметь полный доступ для поддержки всех возможных ролей пользователя). Вы можете вообразить, что это может представлять угрозу безопасности, если WEB1 будет скомпрометирован, поэтому вы не сможете этого сделать, иначе любой, кто получит контроль над WEB1 (возможно, с помощью внедрения sql), может сделать все, что может сделать выделенная учетная запись пользователя, или выдать себя за того, кого захочет. Kerberos, посредством делегирования на Windows Server, поддерживает выполнение этого второго прыжка, сохраняя зашифрованный ключ учетных данных от вашего сервера домена в целости и сохранности, а также проверяет, разрешено ли это (с обеих сторон см. Ниже для настройки этого на ваших серверах). потому что это ДОЛЖНО БЫТЬ разрешено ТОЛЬКО).

Это очень полезно делать при разработке веб-приложений для интрасети, в которых есть база данных (в 99% случаев, верно?), И вы хотите управлять авторизацией и аутентификацией через встроенную безопасность Windows. Kerberos - действительно ваш единственный выбор, если только ваш веб-сервер и сервер баз данных не находятся на одном компьютере, что означает, что нет необходимости передавать учетные данные и не требуется олицетворение.

Смотри также:

...