Buchempfehlung Spring Security

NicoDeluxe

NicoDeluxe

Top Contributor
Hallo zusammen,

kann mir jemand ein Buch empfehlen zum Thema Spring Security? Speziell interessiert mich Login mit angehangener Datenbank, User Roles (im Zusammenhang mit Vaadin).
In den Vaadin Tutorials ist immer nur die Rede von inMemory. Zwar gibt es noch ein einige Tutorials die das Thema mit der DB angehen, aber irgendwie fehlt mir da ein wenig der Hintergrund
 
sascha-sphw

sascha-sphw

Bekanntes Mitglied
Ein Buch kann ich Dir leider nicht empfehlen, aber ich würde Dir empfehlen das User Management gar nicht selbst zu machen. Dann ist Spring Security auch gar nicht mehr so viel.

Ich bin inzwischen ein großer Fan von Keycloak https://www.keycloak.org/. Vielleicht ist dass ja auch was für Dich.
 
NicoDeluxe

NicoDeluxe

Top Contributor
Das liest sich ja interessant, da ist das usermanagement ausgelagert?
Angenommen mein Programm hat 20 Nutzer und jeder Nutzer kann wiederum 10 User haben die verschiedene Programmteile aufrufen können. Dann nützt das Programm nix oder?
 
sascha-sphw

sascha-sphw

Bekanntes Mitglied
Das liest sich ja interessant, da ist das usermanagement ausgelagert?
Richtig!

Angenommen mein Programm hat 20 Nutzer und jeder Nutzer kann wiederum 10 User haben die verschiedene Programmteile aufrufen können. Dann nützt das Programm nix oder?
Ich würde das schon als umsetzbar sehen. Keycloak ist sehr anpassbar. Das könnte man z.B. mit Rollen ggf. auch Gruppen abbilden. Man könnte auch für jeden User beliebige Attribute zuweisen und das damit steuern. Ich kenne selbst auch noch nicht alles, aber ich bin bisher sehr zufrieden. Du kannst Dir Keycloak mit Docker in >1 Min. installieren und ausprobieren, vorausgesetzt Du hast Docker bereits installiert.
 
NicoDeluxe

NicoDeluxe

Top Contributor
Das versteh ich nicht so richtig.
Ich stell mir das so vor:

ich habe einen zentralen keycloak Server. Meine Software wird von verschiedenen Kunden benutzt, läuft also auf mehreren Servern irgendwo.

jeder Kunde kann sich wiederum verschiedene Mitarbeiter anlegen, welche Zugriff auf verschiedene Programmbereiche haben.

Geht das damit?
 
T

thecain

Top Contributor
Für die Authentifizierung ist Keycloack sicher super, aber die Authorisierung muss ja meines Wissens trotzdem in der Software auch gemacht werden.
 
sascha-sphw

sascha-sphw

Bekanntes Mitglied
Das versteh ich nicht so richtig.
Ich stell mir das so vor:

ich habe einen zentralen keycloak Server. Meine Software wird von verschiedenen Kunden benutzt, läuft also auf mehreren Servern irgendwo.

jeder Kunde kann sich wiederum verschiedene Mitarbeiter anlegen, welche Zugriff auf verschiedene Programmbereiche haben.

Geht das damit?
Kurze Antwort, ja. Viele Wege führen aber nach Rom. Damit meine ich, man müsste sich halt noch Gedanken machen wie man das für Deinen Usecase am günstigsten umsetzt. Keycloak bietet eine API für alles, auch die Admin Sachen.

Für die Authentifizierung ist Keycloack sicher super, aber die Authorisierung muss ja meines Wissens trotzdem in der Software auch gemacht werden.
Ja klar. Genau so wie mit Spring Security ohne Keycloak.
Java:
@PostAuthorize("hasRole('ADMIN')")
oder
Java:
Authentication authenticationToken = SecurityContextHolder.getContext().getAuthentication();

Untestützung für Spring gibt es auch.

Java:
Authentication authenticationToken = SecurityContextHolder.getContext().getAuthentication();

if (authenticationToken instanceof KeycloakAuthenticationToken) {
    KeycloakPrincipal principal = (KeycloakPrincipal) authenticationToken.getPrincipal();
    ...
}
 
kneitzel

kneitzel

Top Contributor
Also wenn die Software auf verschiedenen Servern läuft (also sozusagen für jeden Kunden ein Server), dann würde ich da ggf. auch die Administration trennen.

Ich hatte das Anliegen erst Richtung Mandantenfähigkeit verstanden, d.h. du hast einen Server aber diverse Mandanten mit jeweils mehreren User. Da muss man dann überlegen, was man wie benötigt. Das kann man sehr weit treiben. Ein Beispiel wäre z.B. Microsoft mit der Anmeldung. Da geht es so weit, dass nach Eingabe des Users erst einmal bestimmt wird, welche Anmeldung benutzt wird. Das kann bedeuten, dass die Mandanten also einen eigenen Identity Server hinterlegen können.

Generell bevorzuge ich eine klare Trennung bei Mandanten. Das geht aber oft nur bei kleiner Anzahl an Mandanten, aber gibt die größte Sicherheit. Es soll ja kein Mandant versehentlich falsche Daten zu sehen bekommen....
 
NicoDeluxe

NicoDeluxe

Top Contributor
Denke auch, dass es sinnvoller ist zu trennen, sonst holt man sich wieder Abhängigkeiten rein.

also back to the question. Wo bekomm ich am besten Infos zu Spring Security? Sagen wir mal von Anfang an, authentifizieren, autorisieren; das volle Programm 😅
 
kneitzel

kneitzel

Top Contributor
Denke auch, dass es sinnvoller ist zu trennen, sonst holt man sich wieder Abhängigkeiten rein.

also back to the question. Wo bekomm ich am besten Infos zu Spring Security? Sagen wir mal von Anfang an, authentifizieren, autorisieren; das volle Programm 😅

Das dürfte mit der beste Ort sein. Also einfach mal die original Doku durchgehen. Die Spring Dokumentation ist aus meiner Sicht sehr gut.
 
sascha-sphw

sascha-sphw

Bekanntes Mitglied
Die Administration kann man auch mit Keycloak trennen. Man könnte pro Mandant ein Realm oder sogar einen eigenen Keycloak Server vorsehen. Du wirst damit nicht eingeschränkt, wie Du das umsetzt ist vollkommen Dir überlassen. Du musst es einfach nur nicht selber machen und kannst Dich mehr oder weniger fast sofort auf die Business Logik stürzen.

Ich will Dir jetzt aber auch nichts aufschwatzen... :-D

Spring Security sollte man sich aber ohnehin ansehen.
 
kneitzel

kneitzel

Top Contributor
Die Administration kann man auch mit Keycloak trennen. Man könnte pro Mandant ein Realm oder sogar einen eigenen Keycloak Server vorsehen. Du wirst damit nicht eingeschränkt, wie Du das umsetzt ist vollkommen Dir überlassen. Du musst es einfach nur nicht selber machen und kannst Dich mehr oder weniger fast sofort auf die Business Logik stürzen.

Ich will Dir jetzt aber auch nichts aufschwatzen... :-D

Spring Security sollte man sich aber ohnehin ansehen.
Die User-Administration sollte man aber ggf. eh immer getrennt halten und dabei auf offene Standards setzen. Dann ist es auch egal, woher dies später kommt. Man selbst kann auf Keycloak oder so setzen, aber wenn ein Kunde das einsetzen will, dann läuft es oft auf andere Identity Provider hinaus.

Daher Stimme ich hier @sascha-sphw voll und ganz zu. Zumal man dann diesen wichtigen Security Aspekt sauber abgetrennt hat - das ist halt extrem wichtig und das will zumindest ich als Entwickler nicht am Bein haben... (Security Audits können ganz schön nerven. Vor allem wenn diese von Kundenseite kommen. Kunde A fordert X aber Kunde B fordert das genaue Gegenteil ... Also da ist es immer gut, wenn man so einen Ball abgeben kann. Und bei offenen Standards ist es einem als Entwickler dann egal, was der Kunde wie einsetzt... Und man selbst ist bei Audits außen vor!

(Das mag aber alles uninteressant sein. Gerade wenn man für sich selbst Software baut, ist das egal.)
 
NicoDeluxe

NicoDeluxe

Top Contributor
Moin, man könnte ja auch jedem Kunden das keycloak auf seinen Server packen. Wäre auch ne Variante, wenn das so viel einfacher ist mit der Absicherung.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Puppetmaster Benötige Buchempfehlung zum Spring-Framework Frameworks - Spring, Play, Blade, Vaadin & Co 1
B Buchempfehlung für Groovy, Spring, Hibernate, SOAP, J2EE gesucht Frameworks - Spring, Play, Blade, Vaadin & Co 1
NicoDeluxe Spring Boot Mapping null bei GET Aufruf Frameworks - Spring, Play, Blade, Vaadin & Co 8
LesterBurnham Spring, Config Server, mehrere Gitlab Repos für Konfiguration - best practices Frameworks - Spring, Play, Blade, Vaadin & Co 1
NicoDeluxe Spring Boot Test mit Junit Frameworks - Spring, Play, Blade, Vaadin & Co 8
L Spring Thymeleaf Datatables Daten editieren? Frameworks - Spring, Play, Blade, Vaadin & Co 0
J Spring Boot - Reactor Frameworks - Spring, Play, Blade, Vaadin & Co 1
L Spring Boot, H2 und Restschnittstelle synchonisation mit Client Frameworks - Spring, Play, Blade, Vaadin & Co 10
TonioTec Spring Boot Datenbankabfrage Frameworks - Spring, Play, Blade, Vaadin & Co 7
L Spring Data: Wie kann ich das Datenmodell richtig definieren? Frameworks - Spring, Play, Blade, Vaadin & Co 6
NicoDeluxe Spring Boot encoding Slash in URL Parameter Frameworks - Spring, Play, Blade, Vaadin & Co 7
S Spring Boot startet nicht Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring: Testen von unterschiedlichen application.properties Werten Frameworks - Spring, Play, Blade, Vaadin & Co 6
S Spring Boot -> War File | 404 in Tomcat Frameworks - Spring, Play, Blade, Vaadin & Co 20
A Eventhandling mit Spring REST API Frameworks - Spring, Play, Blade, Vaadin & Co 13
L Spring Boot Anwendung "automatisch" neustarten Frameworks - Spring, Play, Blade, Vaadin & Co 3
A Spring boot Frameworks - Spring, Play, Blade, Vaadin & Co 18
bueseb84 Unit Test mit Spring Boot - Service Autowired Frameworks - Spring, Play, Blade, Vaadin & Co 0
iman Spring Security Frameworks - Spring, Play, Blade, Vaadin & Co 13
S Spring Security deaktivieren Frameworks - Spring, Play, Blade, Vaadin & Co 10
NicoDeluxe DTO <> Entity Hibernate Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 28
W Projekt Bootstrap/Kotlin/Spring Framework Frameworks - Spring, Play, Blade, Vaadin & Co 0
W Kotlin / Spring Framework Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring MongoDB: Attribut in der Superklasse und @Indexed erst in der Subklasse Frameworks - Spring, Play, Blade, Vaadin & Co 5
NicoDeluxe Verständnisfrage DTO Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 19
NicoDeluxe Spring Boot Load Balancing Frameworks - Spring, Play, Blade, Vaadin & Co 5
S Spring: MongoDB Assoziation Frameworks - Spring, Play, Blade, Vaadin & Co 1
S Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 1
NicoDeluxe Spring Boot Threads Frameworks - Spring, Play, Blade, Vaadin & Co 6
F Server-Java-Spring Websockets Frameworks - Spring, Play, Blade, Vaadin & Co 6
S Spring Boot: Wert aus Config Datei ermitteln Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring Boot: Ein geschütztes Verzeichnis Frameworks - Spring, Play, Blade, Vaadin & Co 1
bueseb84 Probleme mit Spring Boot Docker und Bootstrap Frameworks - Spring, Play, Blade, Vaadin & Co 9
NicoDeluxe Spring Boot Eureka/Zuul Frameworks - Spring, Play, Blade, Vaadin & Co 0
F Redirect in einer Spring Boot WebApplication Frameworks - Spring, Play, Blade, Vaadin & Co 7
F spring apllication startet nicht, ports werden verwednet Frameworks - Spring, Play, Blade, Vaadin & Co 12
B Erstes Spring Boot Projekt: Gameserver-Manager Frameworks - Spring, Play, Blade, Vaadin & Co 5
B Spring Kurse von Baeldung Frameworks - Spring, Play, Blade, Vaadin & Co 6
Thallius Gibt es einen "Standard" Folder für Spring deployment auf Linux Servern? Frameworks - Spring, Play, Blade, Vaadin & Co 13
L Spring Data Einträge von User zahlen und auflisten Frameworks - Spring, Play, Blade, Vaadin & Co 7
V Spring Boot, thymeleaf, Eingaben cashen oder per session speichern? Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Spring Boot Security Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring Boot i18n Frameworks - Spring, Play, Blade, Vaadin & Co 28
bueseb84 Spring Boot : Update H2 Repository Frameworks - Spring, Play, Blade, Vaadin & Co 14
A Spring Boot/ OneToMany Relation Frameworks - Spring, Play, Blade, Vaadin & Co 29
S Spring: Eine Klasse am Anfang instanzieren Frameworks - Spring, Play, Blade, Vaadin & Co 5
S Spring Boot testen mit Service Klassen Frameworks - Spring, Play, Blade, Vaadin & Co 4
iman Controller in Spring 4,0 Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Spring JPA / Hibernate: save Methode arbeitet nicht Frameworks - Spring, Play, Blade, Vaadin & Co 2
Thallius Spring Backend Funktion mit Langzeit Requester Frameworks - Spring, Play, Blade, Vaadin & Co 2
F spring post null werte Frameworks - Spring, Play, Blade, Vaadin & Co 1
F Spring Webanwendung Datenbank Frameworks - Spring, Play, Blade, Vaadin & Co 47
L Controller Spring Boot mit Java Frameworks - Spring, Play, Blade, Vaadin & Co 20
J Spring Boot H2 Datbase Frameworks - Spring, Play, Blade, Vaadin & Co 2
A Spring Namenconvention Frameworks - Spring, Play, Blade, Vaadin & Co 4
J Spring Boot Thymleaf mit Java.Optional Frameworks - Spring, Play, Blade, Vaadin & Co 0
L JavaFX Anwendung mit Spring Boot und mehrere FXML Forms Frameworks - Spring, Play, Blade, Vaadin & Co 5
P Mit Maven (und Spring-boot) ein FatJAR und ein EAR bauen Frameworks - Spring, Play, Blade, Vaadin & Co 3
NicoDeluxe Spring Boot Basic Authentication langsam Frameworks - Spring, Play, Blade, Vaadin & Co 2
NicoDeluxe Start Stop Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 4
H spring web Frameworks - Spring, Play, Blade, Vaadin & Co 26
H Spring Boot - Dependency Injection Frameworks - Spring, Play, Blade, Vaadin & Co 26
B Java Spring Boot - POM-Problem Frameworks - Spring, Play, Blade, Vaadin & Co 8
S Spring: Werte speichern über Requests hinwege ohne DB Frameworks - Spring, Play, Blade, Vaadin & Co 24
NicoDeluxe Spring Boot parallele Requests Frameworks - Spring, Play, Blade, Vaadin & Co 1
NicoDeluxe Spring Boot Resttemplate exchange XML Frameworks - Spring, Play, Blade, Vaadin & Co 6
S Spring Data Repository delete bulk Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Root-Pfad zu meiner Spring Boot Application Frameworks - Spring, Play, Blade, Vaadin & Co 3
N MongoDB-Spring "Cannot use a complex object as a key value" Frameworks - Spring, Play, Blade, Vaadin & Co 0
NicoDeluxe Spring Boot Error Logging Frameworks - Spring, Play, Blade, Vaadin & Co 5
NicoDeluxe Spring Boot Transactions Frameworks - Spring, Play, Blade, Vaadin & Co 10
R Spring Data: Hibernate liest nicht alle Ebenen Frameworks - Spring, Play, Blade, Vaadin & Co 5
D Spring Boot auf virtuellen Server oder Cloud? Frameworks - Spring, Play, Blade, Vaadin & Co 4
L Spring Data: Detached Entity passed to persist Fehler Frameworks - Spring, Play, Blade, Vaadin & Co 6
R Nebenjob im Bereich JEE, Spring, Servlets, REST Frameworks - Spring, Play, Blade, Vaadin & Co 3
D AWS Server Spring Boot und Datenbank Frameworks - Spring, Play, Blade, Vaadin & Co 0
S Spring Boot: Eigene Config aufbauen Frameworks - Spring, Play, Blade, Vaadin & Co 6
S Spring MVC redirect Nachricht ohne erweiterung der URL Frameworks - Spring, Play, Blade, Vaadin & Co 5
B Spring Boot/Html-Content/Web-Server Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Spring Boot - MVC - Error flushen Frameworks - Spring, Play, Blade, Vaadin & Co 0
K Spring Boot und RestFull Frameworks - Spring, Play, Blade, Vaadin & Co 3
L Spring Data: Multiple representations of the same entity Frameworks - Spring, Play, Blade, Vaadin & Co 14
A Spring ServerQueue Frameworks - Spring, Play, Blade, Vaadin & Co 0
A Spring Server Logging Frameworks - Spring, Play, Blade, Vaadin & Co 5
F Spring Boot Test Frameworks - Spring, Play, Blade, Vaadin & Co 14
D Datenbankanbindung mit Spring Frameworks - Spring, Play, Blade, Vaadin & Co 5
P Spring JPA Query zusammensetzen Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Spring Data data.sql SQL Insert mit single quote Frameworks - Spring, Play, Blade, Vaadin & Co 4
S Spring Data Hibernate mehrfache Suchkriterien Frameworks - Spring, Play, Blade, Vaadin & Co 5
NicoDeluxe Spring Boot Microservices und Entitäten Frameworks - Spring, Play, Blade, Vaadin & Co 5
T Spring Thymeleaf Argumente Frameworks - Spring, Play, Blade, Vaadin & Co 9
J Spring data JPA Query Frameworks - Spring, Play, Blade, Vaadin & Co 2
N Spring Boot javax.mail Frameworks - Spring, Play, Blade, Vaadin & Co 2
B Spring tools security mit JSP Frameworks - Spring, Play, Blade, Vaadin & Co 6
NicoDeluxe Spring Boot: Logfiles wie organisieren? Frameworks - Spring, Play, Blade, Vaadin & Co 0
NicoDeluxe Spring Boot GET Frameworks - Spring, Play, Blade, Vaadin & Co 4
J Spring Boot + Swagger - XML Example Values fehlerhaft Frameworks - Spring, Play, Blade, Vaadin & Co 4
NicoDeluxe Spring Boot statt JavaEE Frameworks - Spring, Play, Blade, Vaadin & Co 65
L Spring JPA Klasse wie definieren? Frameworks - Spring, Play, Blade, Vaadin & Co 0
O OAuth mit Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 3

Ähnliche Java Themen

Anzeige


Oben