Was ist SASL / GSSAPI?

16

Mehrmals habe ich den Ausdruck SASL / GSSAPI getroffen. Ich habe Google oft durchsucht, aber ich verstehe einfach nicht, was es ist und wie es mit Kerberos zusammenhängt.

Hat jemand eine einfache Erklärung dafür?


quelle

Antworten:

5

SASL und GSSAPI sind Frameworks, in die verschiedene Authentifizierungsanbieter eingebunden werden können. Benutzer, die die Kerberos-Authentifizierung in einer App verwenden möchten, die SASL oder GSSAPI unterstützt, müssen nur das entsprechende Kerberos-Plug-in bereitstellen, anstatt die App mit Kerberos-spezifischem Code neu zu schreiben.

dsolimano
quelle
1
In der Tat, wie gesagt, "SASL ..., an das verschiedene Authentifizierungsanbieter angeschlossen werden können". Hierbei handelt es sich um zwei verschiedene Frameworks, in die Sie verschiedene Authentifizierungsanbieter wie Kerberos oder NTLM einbinden können.
dsolimano
SASL ist eher eine Implementierungsspezifikation für textbasierte Protokolle (wie SMTP, IMAP usw.). GSSAPI ist eine Anwendungsschnittstellendefinition für Plugins, die verschiedene Authentifizierungsmechanismen unterstützen. SASL kann GSSAPI verwenden, um die Authentifizierungsmechanismen zu erweitern.
Chris S
39

SASL steht für Simple Authentication and Security Layer. Es ist ein Framework, mit dem Entwickler verschiedene Authentifizierungsmechanismen implementieren können. Außerdem können Clients und Server für jede Verbindung einen für beide Seiten akzeptablen Mechanismus aushandeln (anstatt sie fest zu codieren oder vorzukonfigurieren).

GSSAPI steht für Generic Security Services Application Program Interface. Es wird normalerweise als einer der Mechanismen bereitgestellt, die SASL verwenden kann. Es ist selbst ein weiterer Rahmen für die Entwicklung und Implementierung verschiedener Authentifizierungsmechanismen. Diese Mechanismen umfassen Kerberos, NTLM und SPNEGO (Simple and Protected GSSAPI Negotiation Mechanism): Ein GSSAPI-Pseudomechanismus, mit dem GSSAPI-kompatible Clients aushandeln können, welchen GSSAPI-Mechanismus sie verwenden möchten.

Hier ist ein Beispiel, um dies ein wenig klarer zu machen (der Klarheit halber brutal vereinfacht):

  1. Der Client verbindet sich mit dem Server und sagt: "Ich unterstütze SASL! Wie soll ich mich authentifizieren?"
  2. Der Server empfängt die Verbindung und antwortet: "Ich unterstütze auch SASL und kann diese Mechanismen in absteigender Reihenfolge der Präferenzen verwenden: GSSAPI, CRAM-MD5, PLAIN."
  3. Der Kunde antwortet: "Von den verfügbaren Optionen möchte ich GSSAPI verwenden."
  4. Server antwortet "GSSAPI? Capital. Ich unterstütze Kerberos und NTLM."
  5. Client antwortet "Lassen Sie uns Kerberos verwenden. Hier ist mein verschlüsseltes Ticket usw. usw."
Heimwerker5
quelle
Vielen Dank sehr klare Erklärung
mSatyam