In realtà non devi fare nulla del lavoro se non vuoi. Sono d'accordo con il commento precedente - non costruire una libreria SAML - esistono in molte forme e forme.
Leggi questo per iniziare: link
SSO è pronto all'uso con Shibboleth in modo da non dover nemmeno scimmiottare con il tentativo di reinventare la ruota. Se desideri una panoramica completa, leggi il materiale didattico che ti guiderà attraverso un'intera installazione per l'IdP e un SP Drupal:
link
Dovrai capire come vuoi registrare la fiducia per la tua 'federazione interna di IdP & SP ', ma questo è un piccolo pezzo del puzzle nel grande schema delle cose.
Quindi le tue domande sono:
Ma cosa succede quando reindirizzo l'utente a un altro fornitore di servizi?
Risposta: il software SP intercetterà la richiesta e convaliderà se l'utente ha effettuato l'accesso. In caso contrario, si verificherà il reindirizzamento. In tal caso, la configurazione SP sarà la porta per gli attributi rilasciati (di solito dopo che IdP ha rilasciato gli attributi ad esso).
Come posso accertare l'identità dell'utente lì?
Ans: vedi sopra. Scegli il tuo identificatore con saggezza. Consigliatissimo di NON utilizzare l'e-mail come identificatore. TL; DR è modifiche alle e-mail ed è una scelta sbagliata.
Devo inviare i suoi token di asserzione SAML insieme alla richiesta di reindirizzamento?
Ans: non ti interessa. Lascia che sia il software Idp + SP a occuparsene. Leggi i documenti se hai bisogno di approfondire ciò che accade, ma la gente dell'app non ha bisogno di esserne disturbata.
Oppure il secondo fornitore di servizi deve contattare di nuovo il provider di ID?
Ans: l'IdP viene consultato per recuperare le informazioni sugli attributi quando l'utente ha eseguito l'accesso correttamente.
Il "Ho il compito di sviluppare un sistema SSO" richiede probabilmente alcune considerazioni su pianificazione e scala (ad esempio tecnologia, numero di siti, ecc., pubblico degli utenti più una serie di altre domande di pianificazione). Sarebbe bene inchiodarli giù:)