Web-API

Authentifizierung

Windows-Authentifizierung mit NTLM

Die Windows-Authentifizierung mit NTLM ist ein Authentifizierungsprotokoll auf der Grundlage von Challenge-Response, das mehrere Anfragen erfordert, um den Vorgang abzuschließen. Im Folgenden werden die einzelnen Schritte des Prozesses beschrieben:

  1. Der Client leitet den Authentifizierungsprozess ein, indem er eine Anfrage an den API-Endpunkt sendet. Dies kann entweder geschehen durch:
    • Hinzufügen des Abfrageparameters ?login=windows zur URL
    • oder durch Senden der Anfrage mit einem Authorization: NTLM-Kopfzeile
  2. Der Server antwortet mit einer Challenge in Form eines NTLM-Tokens, das der Client verwenden muss, um eine Antwort zu berechnen.
  3. Der Client sendet eine weitere Anfrage an den API-Endpunkt und fügt die berechnete Antwort in die Anfrage-Header ein.
  4. Der Server prüft die Antwort und gewährt, wenn sie korrekt ist, den Zugriff auf die API.

Hinweis: Es ist wichtig, das Sitzungs-Cookie bei jeder nachfolgenden Anfrage mit zu senden.

Hinweis: Die clientseitige Implementierung der NTLM-Authentifizierung muss entweder durch benutzerdefinierten Code oder durch Verwendung von Bibliotheken, die den Authentifizierungsprozess für Sie verwalten können, gehandhabt werden.

Hinweis: Damit die NTLM/Windows-Authentifizierung verwendet werden kann, muss das Plugin aktiviert sein und als Systemauthentifizierungs-Provider verwendet werden.

# First Request
 
# REQUEST
POST /api HTTP/1.1
Authorization: NTLM TlRMTVNTUAABAAAAB7IIogAAAAAAAAAAAAAAAAAAAAAGAbEdAAAADw==
Content-Type: application/json
 
# RESPONSE with actual challenge
HTTP/1.1 401 Unauthorized
WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAAAAACgAAAABggAAU3J2Tm9uY2UAAAAAAAAAAA==
Content-Length: 0
Date: Mon, 14 Feb 2023 06:48:54 GMT
# Secod Request
 
# REQUEST with NTLN response computed by the client based on the challenge
POST /api HTTP/1.1
Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEgAQABQAQAAYAAAABAAEADgAAAA1TSU1BAAAAD05NTUxNTkxM0UyMg==
Content-Type: application/json
 
# RESPONSE
HTTP/1.1 200 OK
Content-Length: ...
Date: Mon, 14 Feb 2023 06:48:55 GMT