Teil 4: Identitätsmanagement und Authentifizierung; OpenID
- Identitätsmanagement und Authentifizierung; OpenID
- Teil 2: Identitätsmanagement und Authentifizierung; OpenID
- Teil 3: Identitätsmanagement und Authentifizierung; OpenID
- Teil 4: Identitätsmanagement und Authentifizierung; OpenID
- Teil 5: Identitätsmanagement und Authentifizierung; OpenID
- Teil 6: Identitätsmanagement und Authentifizierung; OpenID
- Teil 7: Identitätsmanagement und Authentifizierung; OpenID
Nach dem Eröffnen einer neuen PHP-Sitzung kann der Status der Authentifizierung des Benutzers beispielsweise wie folgt überprüft werden:...
Nach dem Eröffnen einer neuen PHP-Sitzung kann der Status der Authentifizierung des Benutzers beispielsweise wie folgt überprüft werden:
<?php
session_start();
if (!isset($_SESSION
['OPENID_AUTH']) || $_SESSION['OPENID_AUTH'] !== true) {
die ('Der Zugriff auf diese Seite ist
Ihnen nicht gestattet! Bitte melden Sie sich (erneut) an.');
}
?><head><title>Geschützte Webseite</title></head><body><h2>Geschützte Seite</h2><p>Der Zugriff auf diese Seite ist
Ihnen nur gelungen, weil Sie sich erfolgreich angemeldet haben!</p></body></html>
Erst nach einer erfolgreichen Anmeldung erhält die Variable $_SESSION['OPENID_AUTH'] den Wert true. In jedem anderen Fall wird der Zugriff auf die betreffende Webseite verweigert.
OpenID-Profildaten
Damit der OpenID-Consumer (die Webseite, die die Anmeldung anfordert) den Benutzer namentlich begrüßen kann, muss sie die zugehörige Information von dem Open ID-Anbieter beziehen. Persönliche Daten wie der Name oder die E-Mail-Adresse gehören zum OpenID-Profil des Benutzers und können bei Bedarf an den Consumer-Dienst übergeben werden.
Diesen Vorgang bezeichnet man mit dem Begriff Simple Registration. Zum Beispiel:
<head><title>OpenID-Profil: Datenübergabe</title></head><body><form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Melden Sie sich mit Ihrer OpenID an:<br/><input type="text" name="id" size=
"30" /><br /><input type="submit" name="Anmelden"
value="Anmelden" /></form></body></html><?php
}
else {
if (trim($_POST['id'] == '')) {
die("FEHLER: Bitte geben Sie ein
korrekte OpenID ein.");
}
require_once "Auth/OpenID/Consumer.
php";
require_once "Auth/OpenID/FileStore.
php";
Die Umsetzung von Simple Registration setzt eine zusätzliche Include-Datei vor:
require_once "Auth/OpenID/SReg.php";
Nach diesem Aufruf wird erwartungsgemäß die Sitzung eröffnet, ein Ablageort für die OpenID-Daten festgelegt und ein OpenID-Consumer erzeugt:
session_start();
$store = new Auth_OpenID_FileStore
('./oid_store');
$consumer = new Auth_OpenID_Consumer
($store);
Danach kann endlich die Anmeldung stattfinden:
$auth = $consumer->begin($_POST
['id']);
if (!$auth) {
die("FEHLER: Bitte tragen Sie eine
korrekte OpenID ein.");
}
Jetzt können die Registrierungsdaten vom OpenID-Dienstleister angefordert werden:
$sreg = Auth_OpenID_SRegRequest:
:build(array('email', 'fullname', 'dob', 'language'),array('nickname'));
if (!$sreg) {
die("FEHLER: Der Aufbau einer
Registrierungsanfrage ist fehlgeschlagen");
}
$auth->addExtension($sreg);