Co to jest SASL / GSSAPI?

17

Wiele razy spotkałem wyrażenie SASL / GSSAPI. Wielokrotnie przeszukiwałem Google, ale po prostu nie rozumiem, co to jest i jak odnosi się do Kerberos.

Czy ktoś ma proste wyjaśnienie na ten temat?


źródło

Odpowiedzi:

5

SASL i GSSAPI są platformami, do których można podłączyć różnych dostawców uwierzytelniania. Osoby, które chcą korzystać z uwierzytelniania Kerberos w aplikacji obsługującej SASL lub GSSAPI, muszą jedynie dostarczyć odpowiednią wtyczkę Kerberos, zamiast przepisywać aplikację kodem specyficznym dla Kerberos.

dsolimano
źródło
1
Rzeczywiście, jak już powiedziałem, „SASL…, do którego można podłączyć różnych dostawców uwierzytelniania”. Są to dwa różne środowiska, do których można podłączyć różnych dostawców uwierzytelniania, takich jak Kerberos lub NTLM.
dsolimano
SASL jest raczej specyfikacją implementacyjną, zwykle dla protokołów tekstowych (takich jak SMTP, IMAP itp.). GSSAPI to definicja interfejsu aplikacji dla wtyczek, które obsługują różne mechanizmy uwierzytelniania. SASL może używać GSSAPI do rozszerzenia swoich mechanizmów uwierzytelniania.
Chris S
bez konkretnego „przykładu”, który faktyczny dostawca podłącza do rzeczywistego środowiska, większość ludzi nie wie, o czym mówisz.
dotbit
41

SASL oznacza Simple Authentication and Security Layer; jest to platforma, która pozwala programistom wdrożyć różne mechanizmy uwierzytelniania oraz umożliwia klientom i serwerom negocjowanie wzajemnie akceptowalnego mechanizmu dla każdego połączenia (zamiast kodowania lub wstępnej konfiguracji).

GSSAPI to skrót od Generic Security Services Application Program Interface; jest zwykle udostępniany jako jeden z mechanizmów, których może używać SASL. Sama stanowi kolejną platformę do opracowywania i wdrażania różnych mechanizmów uwierzytelniania. Mechanizmy te obejmują Kerberos, NTLM i SPNEGO (prosty i chroniony mechanizm negocjacji GSSAPI): pseudo-mechanizm GSSAPI, który pozwala klientom kompatybilnym z GSSAPI negocjować, którego mechanizmu GSSAPI chcą używać.

Oto przykład, który może to uczynić nieco jaśniejszym (brutalnie uproszczonym dla jasności):

  1. Klient łączy się z serwerem i mówi: „Obsługuję SASL! Jak mam się uwierzytelnić?”
  2. Serwer odbiera połączenie i odpowiada: „Wspieram także SASL i mogę używać tych mechanizmów w malejącej kolejności preferencji: GSSAPI, CRAM-MD5, PLAIN”.
  3. Klient odpowiada: „Spośród opcji chciałbym użyć GSSAPI”.
  4. Serwer odpowiada „GSSAPI? Capital. Obsługuję Kerberos i NTLM”.
  5. Klient odpowiada: „Użyjmy Kerberos. Oto mój zaszyfrowany bilet itp. Itp.”
Złota rączka 5
źródło
1
Dzięki bardzo jasne wyjaśnienie
mSatyam