cortesi Sat Jul 7 13:14:14 2001 EDT
Modified files:
/phpdoc/it/features http-auth.xml
Log:
initial translation in sync with en tree as of now
Index: phpdoc/it/features/http-auth.xml
diff -u /dev/null phpdoc/it/features/http-auth.xml:1.4
--- /dev/null Sat Jul 7 13:14:14 2001
+++ phpdoc/it/features/http-auth.xml Sat Jul 7 13:14:14 2001
@@ -0,0 +1,152 @@
+ <chapter id="features.http-auth">
+ <title>Autenticazione HTTP usando PHP</title>
+
+ <simpara>
+ I meccanismi di Autenticazione HTTP sono disponibili in PHP solo quando questo
+ viene usato come un modulo di Apache ed esso non è quindi disponibile nella
+versione CGI.
+ In uno script PHP modulo di Apache, è: possibile usare la
+ funzione <function>header</function> per inviare un messaggio di "Authentication
+Required"
+ al browser dell'utente, provocando quindi l'apertura di una finestra contenente
+una richiesta di
+ Nome utente/Password. Una volta che l'utente ha compilato i campi nome utente e
+password,
+ l'URL contenente lo script PHP verrà richiamato nuovamente usando le
+variabili,
+ $PHP_AUTH_USER, $PHP_AUTH_PW e $PHP_AUTH_TYPE impostate con, rispettivamente:
+ nome, password e tipo di autenticazione. Solamente il tipo di autenticazione
+"Basic"
+ è al momento supportato. Fare riferimento alla funzione
+<function>header</function>
+ per ulteriori informazioni.</simpara>
+
+ <para>
+ Un frammento di script di esempio che richiede l'autenticazione da parte del
+browser
+ su una pagina, potrebbe essere il seguente:
+
+ <example>
+ <title>Esempio di Autenticazione HTTP</title>
+ <programlisting role="php">
+<?php
+ if(!isset($PHP_AUTH_USER)) {
+ Header("WWW-Authenticate: Basic realm=\"Il mio Regno\"");
+ Header("HTTP/1.0 401 Unauthorized");
+ echo "Messaggio da inviare se si preme il tasto Cancel\n";
+ exit;
+ } else {
+ echo "Ciao $PHP_AUTH_USER.<P>";
+ echo "Hai inserito $PHP_AUTH_PW come tua password.<P>";
+ }
+?>
+ </programlisting>
+ </example></para>
+
+ <note>
+ <title>Note</title>
+ <para>
+ Fare molta attenzione quando si scrive codice per le intestazioni HTTP. Per
+ottenere la massima
+ compatibilità con tutti i client, la paorla-chiave "Basic" deve essere
+scritta con una
+ "B" maiuscola, la stringa realm deve essere racchiusa in virgolette doppie (non
+singole),
+ ed esattamente uno spazio deve precedere il codice "401" nella linea di
+intestazione "HTTP/1.0 401".
+ </para>
+ </note>
+
+ <para>
+ Invece di stampare semplicemente $PHP_AUTH_USER e
+ $PHP_AUTH_PW, probabilmente si vorrà controllare la validità dello
+username e
+ della password. Probabilemnte inviando una chiamata al database,
+ o cercando un utente in un file dbm.</para>
+
+ <para>
+ Si faccia attenzione ad alcune versioni di Internet Explorer. Sembra
+ che siano molto schizzinosi riguardo all'ordine delle intestazioni. Inviare
+l'intestazione
+ <emphasis>WWW-Authenticate</emphasis> prima dell'intestazione
+ <errorcode>HTTP/1.0 401</errorcode> sembra sistemare le cose per
+ il momento.</para>
+
+ <simpara>
+ Al fine di prevenire che qualcuno scriva uno script che rivela
+ la password di una pagina che era stata autenticata tramite un tradizionale
+ meccanismo esterno, le variabili PHP_AUTH non verranno
+ impostate se è abilitata l'autenticazione esterna per quella determinata
+ pagina. In questo caso, la variabile $REMOTE_USER può essere usata per
+ identificare un utente autenticato esternamente.</simpara>
+
+ <note>
+ <title>Nota sulla Configurazione</title>
+ <para>
+ PHP usa la presenza di una direttiva <literal>AuthType</literal>
+ per determinare se viene utilizzata l'autenticazione esterna.
+ Evitare questa direttiva nel contesto dove si intende
+ usare l'autenticazione con PHP (altrimenti ogni tentativo di autenticazione
+ fallirà).
+ </para>
+ </note>
+
+ <simpara>
+ Si fa notare, però, che quanto scritto sopra non impedisce a qualcuno che
+ controlla un URL non autenticato di sottrarre password da
+ URL autenticati presenti sullo stesso server.</simpara>
+ <simpara>
+ Sia Netscape Navigator che Internet Explorer cancellano la cache locale
+ della finestra del browser, per quanto riguarda il realm, al ricevimento
+ di una risposta 401 da parte del server. Questo è effettivamente un
+meccanismo di "log out" per l'utente,
+ che lo forza a reinserire lo username e la password. Alcune persone
+ usano questo per fare il "time out" dei login, o per rendere disponibili bottoni
+di "log-out".
+ </simpara>
+ <example>
+ <title>Esempio di Autenticazione HTTP che impone l'inserimento di nuovo
+username/password</title>
+ <programlisting role="php">
+<?php
+ function authenticate() {
+ Header( "WWW-Authenticate: Basic realm=\"Prova del Sistema di
+Autenticazione\"");
+ Header( "HTTP/1.0 401 Unauthorized");
+ echo "Per poter accedere a questa risorsa occorre inserire una coppia login
+e password valide\n";
+ exit;
+ }
+
+ if(!isset($PHP_AUTH_USER) || ($SeenBefore == 1 && !strcmp($OldAuth,
+$PHP_AUTH_USER)) ) {
+ authenticate();
+ }
+ else {
+ echo "Benvenuto: $PHP_AUTH_USER<BR>";
+ echo "Vecchio: $OldAuth";
+ echo "<FORM ACTION=\"$PHP_SELF\" METHOD=POST>\n";
+ echo "<INPUT TYPE=HIDDEN NAME=\"SeenBefore\"
+VALUE=\"1\">\n";
+ echo "<INPUT TYPE=HIDDEN NAME=\"OldAuth\"
+VALUE=\"$PHP_AUTH_USER\">\n";
+ echo "<INPUT TYPE=Submit VALUE=\"Re Authenticate\">\n";
+ echo "</FORM>\n";
+ }
+?>
+ </programlisting>
+ </example>
+ <simpara>
+ Questo comportamento non è richiesto dallo standard di autenticazione HTTP
+ Basic, quindi non si dovrebbe mai fare affidamento su di esso. Test effettuati con
+Lynx
+ mostrano che Lynx non cancella le credenziali di autenticazione
+ al ricevimento del codice di risposta 401 da parte del server, quindi, premendo
+indietro e avanti
+ nuovamente, darà nuovamente accesso alla risorsa, ammesso che le rispettive
+richieste di credenziali
+ non siano cambiate. L'utente può però premere il
+ tasto '_' al fine di cancellare le sue informazioni di autenticazione.
+ </simpara>
+ <simpara>
+ Si noti anche che questo non funziona con il server IIS di Microsoft e
+ con la versione CGI di PHP a causa di una limitazione di IIS.
+ </simpara>
+
+ </chapter>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
+
+
+
+