Zum Inhalt springen

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.

Client Credentials Grant Type in LoadFocus

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.

  • Der Client sendet eine Anfrage an den Autorisierungsserver. Diese Anfrage enthält normalerweise die client_id und das client_secret des Clients zur Authentifizierung.
  • Nach erfolgreicher Authentifizierung des Clients gibt der Autorisierungsserver ein Access Token aus. Der Client kann dieses Token dann verwenden, um Ressourcen vom Ressourcenserver anzufordern.
  • Beginnen Sie, indem Sie Ihre Anwendung beim OAuth 2.0-Anbieter registrieren. Nach der Registrierung sollten Sie eine client_id und ein client_secret erhalten.
  • Ihre Anwendung muss eine POST-Anfrage an den Token-Endpunkt des Autorisierungsservers senden. Diese Anfrage sollte den Parameter grant_type auf "client_credentials" gesetzt enthalten sowie die client_id und das client_secret. Es ist entscheidend, diese Anfrage sicher über HTTPS zu senden.
  • Der Autorisierungsserver antwortet mit einem Access Token, sobald er Ihre Anwendung verifiziert hat. Behandeln Sie dieses Token sicher innerhalb Ihrer Anwendung.
  • Mit dem Access Token kann Ihre Anwendung autorisierte Anfragen an den Ressourcenserver senden, um auf die erlaubten Ressourcen zuzugreifen.
  • Keine Benutzerinteraktion: Dieser Grant-Typ beinhaltet keine Endbenutzer-Authentifizierung, was ihn für Server-zu-Server-Interaktionen geeignet macht.

  • Sicherheit: Da Anwendungsanmeldedaten (client_id und client_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.