Что такое SASL / GSSAPI?

17

Много раз я встречал выражение SASL / GSSAPI. Я искал в Google много раз, но я просто не понимаю, что это такое и как оно связано с Kerberos.

У кого-нибудь есть простое объяснение по этому поводу?


источник

Ответы:

5

SASL и GSSAPI - это платформы, к которым могут быть подключены различные провайдеры аутентификации. Люди, желающие использовать аутентификацию Kerberos в приложении, которое поддерживает SASL или GSSAPI, должны только предоставить соответствующий плагин Kerberos, а не переписывать приложение с кодом, специфичным для Kerberos.

dsolimano
источник
1
На самом деле, как я уже сказал, «SASL… к которому могут быть подключены различные провайдеры аутентификации». Это две разные среды, в которые вы можете подключить различные провайдеры аутентификации, такие как Kerberos или NTLM.
Дсолимано
SASL - это скорее спецификация реализации, обычно для текстовых протоколов (таких как SMTP, IMAP и т. Д.). GSSAPI - это определение интерфейса приложения для плагинов, которые поддерживают различные механизмы аутентификации. SASL может использовать GSSAPI для расширения своих механизмов аутентификации.
Крис С
без конкретного «примера» того, какой реальный провайдер подключается к реальной среде, большинство людей не понимают, о чем вы говорите.
dotbit
40

SASL расшифровывается как простая аутентификация и уровень безопасности; это структура, которая позволяет разработчикам реализовывать различные механизмы аутентификации и позволяет клиентам и серверам согласовывать взаимоприемлемый механизм для каждого соединения (а не жестко кодировать или предварительно конфигурировать их).

GSSAPI расшифровывается как прикладной программный интерфейс универсальных служб безопасности; он обычно предоставляется в качестве одного из механизмов, которые может использовать SASL. Это само по себе еще одно средство для разработки и реализации различных механизмов аутентификации. Эти механизмы включают Kerberos, NTLM и SPNEGO (простой и защищенный механизм согласования GSSAPI): псевдомеханизм GSSAPI, который позволяет GSSAPI-совместимым клиентам согласовывать, какой механизм GSSAPI они хотят использовать.

Вот пример, чтобы помочь сделать это немного яснее (жестко упрощено для ясности):

  1. Клиент подключается к серверу и говорит: «Я поддерживаю SASL! Как мне аутентифицировать себя?»
  2. Сервер получает соединение и отвечает: «Я также поддерживаю SASL и могу использовать эти механизмы в порядке убывания предпочтений: GSSAPI, CRAM-MD5, PLAIN».
  3. Клиент отвечает: «Из вариантов я бы хотел использовать GSSAPI».
  4. Сервер отвечает «GSSAPI? Капитал. Я поддерживаю Kerberos и NTLM».
  5. Клиент отвечает: «Давайте использовать Kerberos. Вот мой зашифрованный билет и т. Д. И т. Д.»
Handyman5
источник
1
Большое спасибо очень четкое объяснение
mSatyam