Attualmente sto scrivendo un provider di identità SAML (Idp) per abilitare SSO e uno dei modi più semplici per farlo è utilizzare Shibboleth Identity Provider, un'applicazione web pronta per essere implementata su di essa.
Abbiamo anche un sistema di autenticazione in-house che autentica gli utenti tramite la schermata di accesso e ha anche un certo servizio OAuth implementato.
Nell'integrare l'Idp di Shibboleth, un'opzione facile è quella di reindirizzare la parte di accesso dell'utente durante SSO al nostro sistema di autenticazione. E una volta che l'utente è autenticato, reindirizza nuovamente a Shibboleth Idp che può quindi inviare una risposta SAML valida.
Idealmente mi piacerebbe mantenere i due sistemi separati (provider di identità e sistema di autenticazione) per i seguenti motivi:
-
Relativamente più facile tenerli separati rispetto al tentativo di unire il nostro sistema di autenticazione in Shibboleth Idp. Il nostro sistema di autenticazione e Idp utilizza diversi framework web (play vs spring)
-
Il provider di identità SAML mi sembra una preoccupazione leggermente diversa rispetto alla registrazione di un utente e nello spirito dei micro servizi, mi piace separarlo.
Ho letto che ci sono comunque modi per integrare Idp nel sistema di Autenticazione ma sembra complesso e brutto.
La mia domanda è questa: Ha senso avere questi due sistemi separati?
L'argomento contro cui tenere separati i due è che abbiamo già Oauth costruito con il sistema di autenticazione. Potrebbe quindi essere sensato integrare il provider di identità SAML con il nostro sistema di autenticazione esistente oltre a deviare dal modello.