Grant-Typ Password Credentials in OAuth 2.0
Der Password Credentials Grant Type, oft einfach als "Resource Owner Password Credentials" (ROPC)-Flow bezeichnet, ist eine Methode, bei der Benutzer ihren Benutzernamen und ihr Passwort direkt angeben, um ein Access Token zu erhalten. Die aktuellen Sicherheitsempfehlungen (RFC 9700) sagen, dass dieser Grant Type NICHT verwendet werden DARF, weil die Client-Anwendung das Passwort des Benutzers sieht. Er existiert noch in älteren Systemen, sodass Sie ihm beim Testen eines solchen Systems begegnen können.
Was Sie in LoadFocus eingeben
Abschnitt betitelt „Was Sie in LoadFocus eingeben“Setzen Sie in einem Lasttest Autorisierungstyp auf OAuth 2.0 und Grant Type auf Password Credentials. Das Formular hat diese Felder:
- Token Name: eine Bezeichnung für Sie. Sie wird nicht an den Server gesendet.
- Access Token URL: der Token-Endpunkt des Anbieters.
- Username, Password: das Konto, für das das Token angefordert wird. Verwenden Sie ein eigenes Testkonto, kein persönliches.
- Client ID, Client Secret, Scope, Audience: wie vom Anbieter ausgestellt oder mit ihm vereinbart (Audience ist anbieterspezifisch).
Vor dem Start des Tests sendet LoadFocus eine POST-Anfrage über HTTPS an die Access Token URL, mit den genannten Feldern als JSON-Body, und liest access_token aus der JSON-Antwort. RFC 6749 beschreibt einen formularcodierten Body. Wenn Ihr Anbieter die Anfrage ablehnt, prüfen Sie daher, ob sein Token-Endpunkt JSON akzeptiert.
Wie funktioniert Password Credentials?
Abschnitt betitelt „Wie funktioniert Password Credentials?“- Benutzereingabe:
- Der Benutzer gibt seinen Benutzernamen und sein Passwort direkt in die Client-Anwendung ein.
- Token anfordern:
- Der Client sendet dann diese Zugangsdaten an den Token-Endpunkt des Autorisierungsservers. Diese Anfrage enthält typischerweise auch die
client_idund dasclient_secretdes Clients, obwohl einige Implementierungen das Client Secret für diesen Flow möglicherweise nicht erfordern.
- Token-Antwort:
- Wenn die Zugangsdaten gültig sind, antwortet der Autorisierungsserver mit einem Access Token (und möglicherweise einem Refresh Token). Der Client kann dieses Token dann verwenden, um Anfragen im Namen des Benutzers an den Ressourcenserver zu stellen.
Wie konfiguriert man Password Credentials?
Abschnitt betitelt „Wie konfiguriert man Password Credentials?“- Anwendung registrieren:
- Wie bei anderen OAuth 2.0-Flows beginnen Sie damit, Ihre Anwendung beim OAuth 2.0-Anbieter zu registrieren. Sie erhalten normalerweise nach der Registrierung eine
client_idund einclient_secret.
- Eingabemechanismus:
- Implementieren Sie einen Mechanismus in Ihrer Client-Anwendung, über den Benutzer ihren Benutzernamen und ihr Passwort eingeben können. Dies könnte ein einfaches Anmeldeformular sein.
- Token-Anfrage:
- Wenn Benutzer ihre Zugangsdaten angeben, sollte Ihre Anwendung eine POST-Anfrage an den Token-Endpunkt des Autorisierungsservers senden. Diese Anfrage sollte den
grant_type(auf "password" gesetzt),username,password,client_idund möglicherweiseclient_secretenthalten. Stellen Sie sicher, dass diese Anfrage sicher über HTTPS gesendet wird.
- Token-Antwort verarbeiten:
- Wenn die Zugangsdaten korrekt sind, antwortet der Autorisierungsserver mit einem Access Token, das Ihre Anwendung sicher speichern sollte. Optional erhalten Sie möglicherweise auch ein Refresh Token, das verwendet werden kann, um neue Access Tokens zu erhalten, wenn das aktuelle abläuft.
- Token verwenden:
- Wie bei anderen Grant Types können Sie, sobald Sie ein Access Token haben, es verwenden, um autorisierte Anfragen an den Ressourcenserver im Namen des Benutzers zu stellen.
- Token-Erneuerung:
- Wenn Sie ein Refresh Token erhalten haben und das Access Token abläuft, verwenden Sie das Refresh Token, um ein neues Access Token zu erhalten, ohne den Benutzer erneut nach seinen Zugangsdaten zu fragen.
Überlegungen:
Abschnitt betitelt „Überlegungen:“-
Sicherheitsbedenken: Dieser Grant Type beinhaltet die Weitergabe des tatsächlichen Passworts an den Client, was ein erhebliches Sicherheitsrisiko darstellt. Es ist wichtig sicherzustellen, dass der Client vollständig vertrauenswürdig ist.
-
Nicht für neue Systeme verwenden: RFC 9700 sagt, dass dieser Grant NICHT verwendet werden DARF. Wenn Sie das System kontrollieren, wechseln Sie zum Authorization Code Grant (mit PKCE) oder für Dienst-zu-Dienst-Aufrufe zu Client Credentials.
Der Password Credentials Grant Type ist einfach, setzt aber das Passwort des Benutzers gegenüber dem Client offen, und die aktuellen Empfehlungen raten von ihm ab. Verwenden Sie ihn in einem Test nur, wenn das getestete System ihn noch verlangt, und beschränken Sie die Zugangsdaten auf ein eigenes Testkonto.
