Spring REST API Security Tutorial: OAuth2 + MySQL verwenden

Blog

Spring REST API Security Tutorial: OAuth2 + MySQL verwenden

Sichern wir unsere Spring REST API mit OAuth2 und MySQL . Wir speichern die Benutzeranmeldeinformationen in der MySQL-Datenbank und die Client-Anmeldeinformationen werden in der In-Memory-Datenbank gespeichert. Jeder Kunde hat seine eigene eindeutige Kunden-ID.

Um unsere REST-API zu sichern, müssen wir die folgenden Dinge tun:

  • Konfigurieren Sie Spring Security und die Datenbank.

  • Konfigurieren Sie den Autorisierungsserver und den Ressourcenserver.

  • Rufen Sie ein Zugriffstoken und ein Aktualisierungstoken ab.

  • Rufen Sie eine geschützte Ressource (REST API) mit einem Zugriffstoken ab.

Bevor wir beginnen, werfen wir einen Blick auf einige grundlegende Konzepte im Zusammenhang mit Spring Security OAuth2 .

Sie können auch mögen ... Spring Security Tutorial: Einfache Authentifizierung mit Spring Boot .

OAuth2-Rollen

Ressourcenbesitzer

Ein Ressourcenbesitzer ist eine Person (wie ein Endbenutzer) in einer Anwendung, die den Dienst oder die Sicherheitsrichtlinie besitzt.

Ressourcenserver

Dies ist der Ressourcenserver, der die geschützte Ressource oder den geschützten Dienst hostet.

showtimeanytime.com/activate xbox

Kundenanwendung

Die Clientanwendung ist die Anwendung, die Zugriff auf Ressourcen anfordert, die auf dem Ressourcenserver gespeichert sind. Die Clientanwendung erhält auch die Autorisierung vom Ressourcenbesitzer.

Autorisierungsserver

Der Autorisierungsserver ist der Server, der die Client-App autorisiert, auf die Ressourcen des Ressourcenbesitzers zuzugreifen.

Anwendung

Beginnen wir mit der Sicherung unserer REST-API-Endpunkte.

Zuerst müssen wir Spring Security aktivieren, um die Sicherheitsfunktion in der Anwendung hinzuzufügen. Um Spring Security zu konfigurieren und zu aktivieren, muss |_+_| Anmerkung verwendet wird.

Mit |_+_|,Wir können unsere Methoden einfach mit Java-Konfigurationen absichern. Globale Methodensicherheit aktiviert |_+_|, |_+_| , |_+_| und |_+_| Anmerkungen, wenn wir sie verwenden möchten.

@EnableWebSecurity

Notiz:

  • Hier, |_+_| wird verwendet, um die Sicherheitsimplementierung anzupassen.

  • |_+_| wird verwendet, um ein Token anzufordern (Zugriff oder Aktualisierung).

  • Wir injizieren eine benutzerdefinierte Implementierung von |_+_| um Benutzerdetails aus der Datenbank abzurufen.

  • Wir verwenden das definierte |_+_| Bean für die Passwortkodierung.

Jetzt müssen wir den Autorisierungsserver konfigurieren. Die |_+_| Annotation aktiviert einen Autorisierungsserver. |_+_| implementiert |_+_|, das alle erforderlichen Methoden zum Konfigurieren eines Autorisierungsservers bereitstellt. Es enthält auch Informationen zu registrierten Clients und möglichen Zugriff auf Bereiche und Grant-Typen.

Wo speichern Anf
@EnableGlobalMethodSecurity

Hinweise zur obigen Konfiguration:

  • Registriert einen Client mit der Client-ID ‘|_+_|’ und dem Passwort ‘ |_+_|’ sowie den Rollen und dem Bereich, die ihnen erlaubt sind.

  • Gibt autorisierte Gewährungstypen an (Kennwort, Berechtigungscode, Aktualisierungstoken).

  • Gibt die |_+_| . an Token aufzubewahren.

Als nächstes müssen wir den Ressourcenserver konfigurieren. Die |_+_| Annotation, die auf OAuth2-Ressourcenservern angewendet wird, aktiviert einen Spring Security-Filter, der Anforderungen mithilfe eines eingehenden OAuth2-Tokens authentifiziert.

Die Klasse |_+_| implementiert die |_+_|,Bereitstellung von Methoden zum Anpassen der Zugriffsregeln und Pfade, die durch die OAuth2-Sicherheit geschützt sind.

@PreFilter

Als nächstes müssen wir die |_+_| . aktualisieren um die MySQL-Datenbank zu konfigurieren. Erstellen Sie die |_+_| -Schema in MySQL und fügen Sie die Benutzertabelle hinzu, um Benutzeranmeldeinformationen mit Rollen zu speichern.

durchschnittlicher Speicherort des Virentresors
@PostFilter

Testanwendung

Um auf einen sicheren REST-API-Endpunkt zuzugreifen, müssen wir zunächst das Zugriffstoken abrufen. Um das Zugriffstoken zu erhalten, müssen wir einen Autorisierungsheader mit Client-Anmeldeinformationen hinzufügen und den Anforderungstext mit Benutzeranmeldeinformationen in postman hinzufügen.

Nachdem wir das Zugriffstoken und das Aktualisierungstoken erhalten haben, können wir mit dem Zugriffstoken auf alle gesicherten REST-API-Endpunkte zugreifen. Wenn das Zugriffstoken abgelaufen ist, wird das Aktualisierungstoken verwendet, um ein neues Zugriffstoken abzurufen.

Ich habe einige Postboten-Antworten angehängt

Das ist der Bildtitel

Sie können auf das gesamte Projekt verweisen auf GitHub .

Danke fürs Lesen. Ich hoffe, dieses Tutorial wird Ihnen sicherlich helfen und wenn Ihnen dieses Tutorial gefallen hat, ziehen Sie es in Betracht, es mit anderen zu teilen

Ursprünglich veröffentlicht am dzone.com

In Verbindung stehende Artikel

#spring-boot #mysql #security #api #web-entwicklung