• User Attivo

    unico login per più siti

    Buongiorno,

    volevo un'informazione: vorrei fare un unica pagina di login per più siti che risiedono in server diversi;
    mi sembra si chiami sso questo sistema, qualcuno ha idea di come si possa fare una cosa del genere?

    Di fatto si crea un pannello d'inserimento di amministratori, con user e password,
    se le credenziali sono corrette c'è un cookie per la sessione,
    ma come si fa a fare in modo che entri anche negli altri siti che non risiedono nello stesso server?

    Si potrebbe memorizzare l'IP dell'amministratore una volta che le credenziali sono corrette ma poi?

    Pensavo ma forse non è corretto, fare una pagina in php, che mostra gli IP degli amministratori una volta loggati,
    poi con lo scrapping dagli altri siti fare un cookie che apra la sessione di login solo se hai l'IP corretto.

    è sbagliato vero? Qualcuno ha idee migliori?

    grazie in anticipo
    buon week end


  • User Attivo

    Se facessi in questo modo secondo voi sarebbe un sistema sicuro?

    sito primario:

    [PHP]
    <?php
    /* UTENTE 1 */
    $user_1 = "mario";
    $password_1 = "1234";
    $site1_1 = "localhost/TEST/sito1.com/";
    $site2_1 = "localhost/TEST/sito2.com/";
    $site3_1 = "localhost/TEST/sito3.com/";
    echo sha1($user_1);
    echo "<br />";
    echo sha1($password_1);
    echo "<br />";
    echo sha1($site1_1);
    echo "<br />";
    echo sha1($site2_1);
    echo "<br />";
    echo sha1($site3_1);
    echo "<hr>";

    /* UTENTE 2 */
    $user_2 = "luigi";
    $password_2 = "0000";
    $site1_2 = "localhost/TEST/sito3.com/";
    $site2_2 = "localhost/TEST/sito5.com/";
    echo sha1($user_2);
    echo "<br />";
    echo sha1($password_2);
    echo "<br />";
    echo sha1($site1_2);
    echo "<br />";
    echo sha1($site2_2);
    echo "<hr>";

    /* UTENTE 3 */
    $user_3 = "toad";
    $password_3 = "9999";
    $site1_3 = "localhost/TEST/sito1.com/";
    $site2_3 = "localhost/TEST/sito3.com/";
    $site3_3 = "localhost/TEST/sito2.com/";
    $site4_3 = "localhost/TEST/sito7.com/";
    echo sha1($user_3);
    echo "<br />";
    echo sha1($password_3);
    echo "<br />";
    echo sha1($site1_3);
    echo "<br />";
    echo sha1($site2_3);
    echo "<br />";
    echo sha1($site3_3);
    echo "<br />";
    echo sha1($site4_3);?>
    [/PHP]

    sito secondario:

    [PHP]
    <?php
    $url = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
    $uri = 'localhost/TEST/mysso';
    $get = file_get_contents($uri);
    $users = explode("<hr>", $get);
    foreach ($users as $user) {
    $users_ok = explode("<br />", $user);
    $n_elementi = count($users_ok);
    for ($i=0; $i < $n_elementi; $i++) {
    if($i!=0 AND $i!=1){
    if (sha1($url)==$users_ok*){
    echo $users_ok*."<br>";
    }
    }
    }
    echo "<hr>";
    }
    ?>
    [/PHP]

    di fatto espongo tutti gli utenti con i siti a cui possono accedere nel sito primario,
    usando sha1 così non mostro nulla, uso quel file per inserire nel db degli altri siti le coppie di user e password, magari usando un cron per tenerlo aggiornato.

    Secondo voi è corretto/sicuro?

    ho scritto il codice in fretta ma dovrebbe capirsi in linea di massima,
    poi inserirò form, sessioni e quello che manca.

    fatemi sapere
    ciao


  • User Attivo

    Ciao
    premesso che non ho ancora osservato bene il codice (appena ho un attimo lo guardo) ma in linea di massima l'idea è quella giusta. Devi per forza avere una mappatura di questo tipo nel sito primario e, successivamente, dirottare gli utenti sui vari siti secondari


  • User Attivo

    ok grazie mille PietroR!