Grant-Typ Client Credentials in OAuth 2.0
Der Client Credentials Grant Type ist speziell für Anwendungen konzipiert, die auf Ressourcen zugreifen müssen, die keinem bestimmten Benutzer zugeordnet sind. In diesem Szenario fungiert der Client als Ressourcenbesitzer. Dieser Grant-Typ eignet sich am besten für Backend-Systeme, in denen die Anwendung ohne Benutzerkontext mit einem Dienst interagiert.
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 Client 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.
- Client ID, Client Secret: die Zugangsdaten Ihres registrierten Clients.
- Scope: die anzufordernden Berechtigungen, falls Ihr Anbieter sie verwendet.
- Audience: nur nötig, wenn der Anbieter sie verlangt (sie ist nicht Teil von RFC 6749).
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.
Funktionsweise
Abschnitt betitelt „Funktionsweise“Token anfordern:
Abschnitt betitelt „Token anfordern:“- Der Client sendet eine Anfrage an den Autorisierungsserver. Diese Anfrage enthält normalerweise die
client_idund dasclient_secretdes Clients zur Authentifizierung.
Token-Antwort:
Abschnitt betitelt „Token-Antwort:“- Nach erfolgreicher Authentifizierung des Clients gibt der Autorisierungsserver ein Access Token aus. Der Client kann dieses Token dann verwenden, um Ressourcen vom Ressourcenserver anzufordern.
Client Credentials Grant konfigurieren
Abschnitt betitelt „Client Credentials Grant konfigurieren“Anwendung registrieren:
Abschnitt betitelt „Anwendung registrieren:“- Beginnen Sie, indem Sie Ihre Anwendung beim OAuth 2.0-Anbieter registrieren. Nach der Registrierung sollten Sie eine
client_idund einclient_secreterhalten.
Token-Anfrage:
Abschnitt betitelt „Token-Anfrage:“- Ihre Anwendung muss eine POST-Anfrage an den Token-Endpunkt des Autorisierungsservers senden. Diese Anfrage sollte den Parameter
grant_typeauf "client_credentials" gesetzt enthalten sowie dieclient_idund dasclient_secret. Es ist entscheidend, diese Anfrage sicher über HTTPS zu senden.
Token-Antwort verarbeiten:
Abschnitt betitelt „Token-Antwort verarbeiten:“- Der Autorisierungsserver antwortet mit einem Access Token, sobald er Ihre Anwendung verifiziert hat. Behandeln Sie dieses Token sicher innerhalb Ihrer Anwendung.
Token verwenden:
Abschnitt betitelt „Token verwenden:“- Mit dem Access Token kann Ihre Anwendung autorisierte Anfragen an den Ressourcenserver senden, um auf die erlaubten Ressourcen zuzugreifen.
Zu beachtende Punkte
Abschnitt betitelt „Zu beachtende Punkte“-
Keine Benutzerinteraktion: Dieser Grant-Typ beinhaltet keine Endbenutzer-Authentifizierung, was ihn für Server-zu-Server-Interaktionen geeignet macht.
-
Sicherheit: Da Anwendungsanmeldedaten (
client_idundclient_secret) für die Token-Erlangung unerlässlich sind, ist es zwingend erforderlich, sie sicher aufzubewahren. Jede Sicherheitslücke könnte zu unbefugtem Zugriff führen. -
Eingeschränkter Scope: Tokens, die über diesen Flow erworben werden, sollten in ihrem Scope eingeschränkt sein und nur die Berechtigungen gewähren, die für die Funktion der Anwendung erforderlich sind.
Der Client Credentials Grant Type bietet eine effiziente Möglichkeit für Anwendungen, ohne Benutzereingriff mit einem Dienst zu kommunizieren. Es ist die übliche Wahl für Situationen, in denen eine Anwendung in eigenem Namen und nicht im Namen eines Benutzers handeln muss. Entwickler müssen jedoch vorsichtig sein und die Sicherheit der Anwendungsanmeldedaten gewährleisten, um potenzielle Sicherheitsrisiken zu vermeiden.
