doc:appunti:net:openid
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
doc:appunti:net:openid [2009/12/20 19:29] – niccolo | doc:appunti:net:openid [2011/05/04 16:57] (current) – [php-openid] niccolo | ||
---|---|---|---|
Line 2: | Line 2: | ||
===== Cos'è e come funziona ===== | ===== Cos'è e come funziona ===== | ||
+ | |||
+ | Si tratta di un **sistema di autenticazione per siti web**. La propria identità viene registrata presso un server OpenID e protetta da una password, altri siti web possono essere configurati come client OpenID e quindi richiedere l' | ||
+ | |||
+ | In questo modo è possibile gestire le proprie credenziali sul server OpenID ed utilizzare sempre la stessa password per accedere a tutti i siti client. | ||
+ | |||
+ | La password viene registrata presso il server generalmente in formato hash md5 e non necessita di transitare mai in chiaro sulla rete. | ||
+ | |||
+ | È possibile utilizzare uno dei numerosi server OpenID per registrare la propria identità, oppure allestire in proprio un server OpenID completo o un semplice server personale per gestire una sola identità. | ||
===== Registrare uno OpenID ===== | ===== Registrare uno OpenID ===== | ||
Line 15: | Line 23: | ||
L' | L' | ||
- | - Il sito richiede l' | + | - Il sito web richiede l' |
- | - Si viene rediretti sulla pagina web del fornitore di OpenID, nel nostro esempio sul sito di myopenid.com. In questa pagina si digita la password. | + | - Si viene rediretti sulla pagina web del server |
- Se l' | - Se l' | ||
Il sito che ha chiesto l' | Il sito che ha chiesto l' | ||
+ | |||
+ | È possibile **eliminare un account** da myOpenID, il provider assicura che lo stesso username non verrà assegnato nuovamente per evitare che qualcuno possa rubare l' | ||
===== Allestire un provider OpenID personale ===== | ===== Allestire un provider OpenID personale ===== | ||
+ | |||
+ | ==== phpMyID ==== | ||
+ | |||
+ | FIXME | ||
+ | |||
+ | **NOTA:** Dal sito di phpMyID: **phpMyID is no longer developed or maintained**. Inoltre phpMyID non è compatibie con ambienti PHP rinforzati, come Apache Suhosin installato da Debian Squeeze. Ecco il messaggio di errore: | ||
+ | |||
+ | < | ||
+ | phpMyID is not compatible with ' | ||
+ | </ | ||
+ | |||
+ | Per forzare il funzionamento anche in presenza di Suhosin dovrebbe bastare disabilitare tale funzione nel VirtualHost (si consiglia di farlo solo se il VirtualHost è dedicato esclusivamente a phpMyID): | ||
+ | |||
+ | < | ||
+ | php_flag suhosin.simulation On | ||
+ | </ | ||
+ | |||
+ | quindi in **'' | ||
+ | |||
+ | FIXME | ||
Scarichiamo il software **[[http:// | Scarichiamo il software **[[http:// | ||
Line 29: | Line 59: | ||
</ | </ | ||
- | Infine si crea un '' | + | Infine si crea un '' |
<code html> | <code html> | ||
Line 41: | Line 71: | ||
</ | </ | ||
- | L' | + | L' |
- | Nel file di configurazione si possono impostare altre informazioni personali, tipo nome e cognome, indirizzo email, ecc. | + | La password viene richiesta dal server come autenticazione HTTP Digest, quindi transita crittografata con hash md5, sebbene la connessione sia HTTP. |
+ | |||
+ | Nel file di configurazione si possono impostare altre informazioni personali, tipo nome e cognome, indirizzo email, una foto, ecc. | ||
+ | |||
+ | ==== php-openid ==== | ||
+ | |||
+ | FIXME | ||
+ | |||
+ | **NOTA:** Questa configurazione non è funzionante: | ||
+ | |||
+ | * Come definire nomi utente e password nell' | ||
+ | * Pare che il server risponda a richieste del tipo '' | ||
+ | * Dalla documentazione: | ||
+ | |||
+ | La libreria **php-openid** contiene sia il codice per un client che il codice per un server. Il server è in ''/ | ||
+ | |||
+ | La configurazione si esegue scompattando il file **'' | ||
+ | |||
+ | Come workaround si può definire la funzione all' | ||
+ | |||
+ | <code php> | ||
+ | function dl($str) { | ||
+ | return false; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Viene generato a video il file di configurazione che deve essere salvato come **'' | ||
+ | |||
+ | |||
+ | <code php> | ||
+ | <?php | ||
+ | /** | ||
+ | * The URL for the server. | ||
+ | * | ||
+ | * This is the location of server.php. For example: | ||
+ | * | ||
+ | * $server_url = ' | ||
+ | * | ||
+ | * This must be a full URL. | ||
+ | */ | ||
+ | $server_url = " | ||
+ | |||
+ | /** | ||
+ | * Initialize an OpenID store | ||
+ | * | ||
+ | * @return object $store an instance of OpenID store (see the | ||
+ | * documentation for how to create one) | ||
+ | */ | ||
+ | function getOpenIDStore() | ||
+ | { | ||
+ | require_once " | ||
+ | return new Auth_OpenID_FileStore("/ | ||
+ | } | ||
+ | |||
+ | ?> | ||
+ | </ | ||
doc/appunti/net/openid.1261333777.txt.gz · Last modified: 2009/12/20 19:29 by niccolo