User Tools

Site Tools


doc:appunti:net:openid

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:net:openid [2011/05/03 12:18] – [Allestire un provider OpenID personale] niccolodoc:appunti:net:openid [2011/05/04 16:57] (current) – [php-openid] niccolo
Line 33: Line 33:
 ===== Allestire un provider OpenID personale ===== ===== Allestire un provider OpenID personale =====
  
-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.+==== 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: 
 + 
 +<code> 
 +phpMyID is not compatible with 'suhosin' 
 +</code> 
 + 
 +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): 
 + 
 +<file> 
 +php_flag suhosin.simulation On 
 +</file> 
 + 
 +quindi in **''MyID.config.php''** impostare nell'array **''%%$GLOBALS['profile']%%''** l'elemento **''%%'allow_suhosin' => true%%''**. 
 + 
 +FIXME
  
 Scarichiamo il software **[[http://siege.org/projects/phpMyID/|phpMyID]]** e scompattiamo i file **''MyID.config.php''** e **''MyID.php''** in una directory accessibile via web. Nel primo si impostano **''auth_username''** e **''auth_password''**. Per calcolare l'hash di ''auth_password'': Scarichiamo il software **[[http://siege.org/projects/phpMyID/|phpMyID]]** e scompattiamo i file **''MyID.config.php''** e **''MyID.php''** in una directory accessibile via web. Nel primo si impostano **''auth_username''** e **''auth_password''**. Per calcolare l'hash di ''auth_password'':
Line 58: Line 76:
  
 Nel file di configurazione si possono impostare altre informazioni personali, tipo nome e cognome, indirizzo email, una foto, ecc. 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'Auth_OpenID_FileStore?
 +  * Pare che il server risponda a richieste del tipo ''%%http://hostname/server.php/idpage?user=USERNAME%%'', come usare invece l'URL radice (''%%http://hostname/%%'') visto che si tratta di un vanity URL con un solo utente?
 +  * Dalla documentazione: //It does not require passwords//. Che razza di server è allora?
 +
 +La libreria **php-openid** contiene sia il codice per un client che il codice per un server. Il server è in ''/usr/share/doc/php-openid/examples/server/'', bisogna copiarlo in una directory accessibile via web.
 +
 +La configurazione si esegue scompattando il file **''setup.php.gz''** e puntandoci il browser. C'è un problema con il PHP 5.3.3 e l'istruzione **''dl()''** che genera un errore fatale (tale funzione dovrebbe solo essere deprecata), purtroppo l'errore //Call to undefined function dl()// non viene segnalato nel log di PHP.
 +
 +Come workaround si può definire la funzione all'inizio del file **''setup.php''**:
 +
 +<code php>
 +function dl($str) {
 +    return false;
 +}
 +</code>
 +
 +Viene generato a video il file di configurazione che deve essere salvato come **''config.php''**:
 +
 +
 +<code php>
 +<?php
 +/**
 + * The URL for the server.
 + *
 + * This is the location of server.php. For example:
 + *
 + * $server_url = 'http://example.com/~user/server.php';
 + *
 + * This must be a full URL.
 + */
 +$server_url = "http://niccolo.rigacci.org/";
 +
 +/**
 + * Initialize an OpenID store
 + *
 + * @return object $store an instance of OpenID store (see the
 + * documentation for how to create one)
 + */
 +function getOpenIDStore()
 +{
 +    require_once "Auth/OpenID/FileStore.php";
 +    return new Auth_OpenID_FileStore("/tmp/openid");
 +}
 +
 +?>
 +</code>
  
doc/appunti/net/openid.1304417896.txt.gz · Last modified: 2011/05/03 12:18 by niccolo