Ich versuche, Microservice von einer bestehenden Anwendung mit einem ganz normalen Benutzerverwaltung zu entwerfen: hat Authentifizierung und Autorisierung und speichert Benutzerdaten.Autorisierung und Benutzer Microservices Design
Ich developping einen Autorisierungsserver Benutzer Authentifizierung und Genehmigung mit OAuth2
als Berechtigung zu verwalten. Auf der anderen Seite muss ich Informationen/Profil des Benutzers speichern.
Frage: Sollte Authorization Server verwalten:
- sowohl Autorisierungs- und Benutzer API? So können andere Microservices Autorisierungsserver auf
/me
kontaktieren, um aktuellen Benutzer aber auch/users
zu erhalten, um vollständige Liste der Benutzer zu erhalten. - Oder nur Autorisierung und ich muss erstellen Benutzer Microservices? Also Autorisierungsserver nur exponiert
/me
API bezogen auf Benutzer und Benutzer Microservices wird/users
ausgesetzt werden?
Die erste Lösung ist ein bisschen einfacher, aber die Autorisierungsserver werden weniger Generika (weniger wiederverwendbar), weil Datenmodell Benutzeranwendung wird ein Teil davon (Datenbank-Datenmodell von User
Tabelle) sein.
Die andere Voraussetzung ist Autorisierungsserver überprüfen sollten, wenn ein Benutzer, bevor es Ermächtigung vorhanden ist.
Es gibt keine Benutzer ist die automatische Erstellung, müssen Benutzer von Administrator eingeladen werden, um Zugang zu erhalten. Mit dieser Anforderung ist die erste Lösung einfach, weil Autorisierungsserver Zugriff auf Benutzerdatenbank hat aber die zweite Lösung Autorisierungsserver bedeutet:
- Teilen Datenbank mit User-Dienst (hum mag das nicht)
- Anruf User-Dienst vor REST API Berechtigung mit (zum Beispiel)
- Autorisierungsserver sollte mainta in minimal
User
Tabelle und Administrator erstellen wird nicht vom Benutzer auf User-Dienst aber nur Benutzerkonto auf Authorization
Ich denke, 1. Lösung ist, aber keine Ratschläge über Server (kann Account
umbenannt) 2. und 3.?
3.e in erster Linie scheint die beste, aber wenn ich zum Beispiel an einem anderen Autorisierungsserver, wechseln will ein öffentliches (OAuth2) Google, Github, Facebook, etc ... kann Sicherheit sein Kompromisse eingehen, da wir die Erstellung von Benutzerkonten nicht steuern können.
Irgendeine Rückmeldung?
Wie verwalten Sie die Authentifizierung? –
Externer Dienst (basierend auf CAS) ist verantwortlich für die Authentifizierung. Aber ich bin nicht Besitzer dieses Dienstes. Sie können dies jedoch einfach mithilfe der grundlegenden Formularauthentifizierung basierend auf Datenbankbenutzerinformationen durchführen – Kakawait