Назад | Перейти на главную страницу

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

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

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

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

GSSAPI расшифровывается как Generic Security Services Application Program Interface; обычно он доступен как один из механизмов, которые может использовать SASL. Это еще одна платформа для разработки и реализации различных механизмов аутентификации. Эти механизмы включают Kerberos, NTLM и СПНЕГО (Простой и защищенный механизм согласования GSSAPI): псевдомеханизм GSSAPI, который позволяет GSSAPI-совместимым клиентам согласовывать, какой механизм GSSAPI они хотят использовать.

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

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

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