- Home
- Categorie
- Coding e Sistemistica
- PHP
- unico login per più siti
-
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
-
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
-
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
-
ok grazie mille PietroR!