Что такое SASL/GSSAPI?
Много раз я встречал выражение SASL/GSSAPI. Я искал в Google много раз, но я просто не понимаю, что это такое и как это связано с Kerberos.
У кого-нибудь есть простое объяснение по этому поводу?
2 ответа
SASL и GSSAPI являются средами, к которым могут быть подключены различные провайдеры аутентификации. Люди, желающие использовать аутентификацию Kerberos в приложении, которое поддерживает SASL или GSSAPI, должны только предоставить соответствующий плагин Kerberos, а не переписывать приложение с кодом, специфичным для Kerberos.
SASL расшифровывается как простая аутентификация и уровень безопасности; это структура, которая позволяет разработчикам реализовывать различные механизмы аутентификации и позволяет клиентам и серверам согласовывать взаимоприемлемый механизм для каждого соединения (а не жестко кодировать или предварительно настраивать их).
GSSAPI расшифровывается как прикладной программный интерфейс универсальных служб безопасности; он обычно предоставляется в качестве одного из механизмов, которые может использовать SASL. Это само по себе еще одно средство для разработки и реализации различных механизмов аутентификации. Эти механизмы включают Kerberos, NTLM и SPNEGO (простой и защищенный механизм согласования GSSAPI): псевдомеханизм GSSAPI, который позволяет GSSAPI-совместимым клиентам согласовывать, какой механизм GSSAPI они хотят использовать.
Вот пример, чтобы помочь сделать это немного яснее (жестко упрощено для ясности):
- Клиент подключается к серверу и говорит: "Я поддерживаю SASL! Как мне аутентифицировать себя?"
- Сервер получает соединение и отвечает: "Я также поддерживаю SASL и могу использовать эти механизмы в порядке убывания предпочтений: GSSAPI, CRAM-MD5, PLAIN".
- Клиент отвечает: "Из вариантов я бы хотел использовать GSSAPI".
- Сервер отвечает "GSSAPI? Капитал. Я поддерживаю Kerberos и NTLM".
- Клиент отвечает: "Давайте использовать Kerberos. Вот мой зашифрованный билет и т. Д. И т. Д."