Folgendes Szenario:
Ein Kernanwendung soll zunächst per Web-Client benutzt werden. Der User muss sich im Web authentifizieren. Das Passort soll natürlich verschlüsselt werden. Später kann auch ein GUI oder WebService Client dazu kommen:
Was ist jetzt der "bessere" Weg:
a) Spring Security ist Teil der Webanwendung und erledigt das Ver/Entschlüsseln von Passwörtern als Teil der Webschicht.
b) Spring Security ist Teil bzw. eine dünne Schicht der Kernanwendung, so dass die Webanwendung vom Verschlüsselungsprozess nichts weiß.
Bei A) sehe ich das Problem, dass die Klients unter Umständen alle eine eigene Verschlüsselung realisieren, die nicht zwangsläufig kompatibel unter einander sein müssen. D.h. pro Client muss die Authentifizierung neu geschrieben unte konfiguriert werden (verletzt DRY)
Bei B) sehe den Nachteil, dass das Passwort nicht sofort in der Webschicht verschlüsselt, sondern als Plaintext an die Kernanwendung geschickt wird. Falls das aber über http geschieht, hat man aber immer noch https als Sicherheit.
Also wie sollte man Spring Security verwenden? Sollte es Teil des Clients, bzw. der Webschicht sein oder doch Teil der Kernanwendung?
Ein Kernanwendung soll zunächst per Web-Client benutzt werden. Der User muss sich im Web authentifizieren. Das Passort soll natürlich verschlüsselt werden. Später kann auch ein GUI oder WebService Client dazu kommen:
Was ist jetzt der "bessere" Weg:
a) Spring Security ist Teil der Webanwendung und erledigt das Ver/Entschlüsseln von Passwörtern als Teil der Webschicht.
b) Spring Security ist Teil bzw. eine dünne Schicht der Kernanwendung, so dass die Webanwendung vom Verschlüsselungsprozess nichts weiß.
Bei A) sehe ich das Problem, dass die Klients unter Umständen alle eine eigene Verschlüsselung realisieren, die nicht zwangsläufig kompatibel unter einander sein müssen. D.h. pro Client muss die Authentifizierung neu geschrieben unte konfiguriert werden (verletzt DRY)
Bei B) sehe den Nachteil, dass das Passwort nicht sofort in der Webschicht verschlüsselt, sondern als Plaintext an die Kernanwendung geschickt wird. Falls das aber über http geschieht, hat man aber immer noch https als Sicherheit.
Also wie sollte man Spring Security verwenden? Sollte es Teil des Clients, bzw. der Webschicht sein oder doch Teil der Kernanwendung?