Visualizzazione risultati 1 fino 6 di 6

Discussione: Realizzare SSO con SAML

  1. #1
    tuttainformatica non è connesso Utente giovane
    Data registrazione
    05-03-2020
    Messaggi
    55

    Predefinito Realizzare SSO con SAML

    Buonasera,
    Vorrei provare a realizzare un piccolo SSO basato su SAML facendo sia da idp che che da sp.
    Non sarà sicuro come uno già fatto, sarò pazzo e tutte cose ma è giusto per fare qualcosa di diverso.
    Se (forse) ho idea di come gestire i redirect ecc.. non ho la minima idea di come si integra SAML.
    C'è qualcuno che sarebbe disposto ad aiutarmi?

    Grazie in anticipo a chi risponderà

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,253

    Predefinito

    Interessante! Intendi che vuoi costruire tutto da zero, senza librerie?

    Chiedo, perché fra i vari sistemi di autenticazione, SAML è uno di quelli tignosi — ed è basato su XML. A seconda di cosa vuoi imparare, OAuth potrebbe essere più semplice e più interessante, visto che è meno "enterprise" e puoi usarlo con siti su cui probabilmente hai già un account.

  3. #3
    tuttainformatica non è connesso Utente giovane
    Data registrazione
    05-03-2020
    Messaggi
    55

    Predefinito

    Interessante! Intendi che vuoi costruire tutto da zero, senza librerie?
    Si, nel senso che vorrei proprio realizzare il passaggio dei dati, ho visto che ci sono molte librerie che però fanno da idp ed essenzialmente non fai i passaggi ma devi solo integrare il login nei siti.

    Chiedo, perché fra i vari sistemi di autenticazione, SAML è uno di quelli tignosi — ed è basato su XML. A seconda di cosa vuoi imparare, OAuth potrebbe essere più semplice e più interessante, visto che è meno "enterprise" e puoi usarlo con siti su cui probabilmente hai già un account.
    Onestamente ho pensato a SAML perché ho letto la guida dello SPID su developers Italia; le guide che ci sono in giro riguardo l’SSO non sono state (almeno per me) molto chiare a differenza di quella di SPID che spiega tutto proprio bene.
    Però dal capire la guida a realizzare il sistema c’è un po’ di differenza.


    Da quanto ho capito la parte idp si potrebbe identificare come “la pagina di login” quindi avrà il suo database e il form per il login; a questo bisognerebbe aggiungere tutta la parte SAML per la comunicazione con i vari service provider.

    Per quanto riguarda il service provider (sempre semplificando) c’è un pulsante di login che reindirizza verso la pagina di login della sezione idp passando dei dati; se il login è giusto si viene reindirizzati sul sp (uno dei dati passato prima è proprio la destinazione) e poi con vari cookie o sessioni si mantiene il login.

    Se questo processo mi è abbastanza chiaro, quello che non mi è chiaro è come effettuare questi passaggi di dati.

    Grazie

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,253

    Predefinito

    Sia in SAML che OpenId, i dati si muovono come parametri di redirect HTTP, che in PHP si implementano con la funzione header(). Qualcosa tipo:

    Codice PHP:
    <?php
    $destinazione
    = 'https://il-mio-idp.com/SAML2/...';
    $richiesta = codifica_richiesta_saml("<samlp:...");

    header("Location: {$destinazione}?SAMLRequest={$richiesta}");
    Ultima modifica di dreadnaut : 16-03-2023 alle ore 23.55.23

  5. #5
    tuttainformatica non è connesso Utente giovane
    Data registrazione
    05-03-2020
    Messaggi
    55

    Predefinito

    Quindi ad ogni passaggio devo inviare la richiesta saml con metodo GET?

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,253

    Predefinito

    Non so se tutte le richieste siano GET, mi aspetterei anche POST. Per i redirect 303 in particolare, il browser (non tu, via PHP) invia una richiesta GET. Per altri dipende, vedi documentazione.

    Nota che SimpleSamlPhp è una libreria con più di 20000 linee di codice. Per implementare almeno una cosa simile ti conviene leggere la specifica di SAML.
    Ultima modifica di dreadnaut : 22-03-2023 alle ore 19.36.21

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •