So gewinnen Sie neue User

Teil 3: Identitätsmanagement und Authentifizierung; OpenID

Um den Single-Sign-On-Prozess zu beginnen ruft das Auth_OpenID_Consumer-Objekt die begin()-Methode auf und übergibt dabei die OpenID des Benutzers. Der Rückgabewert dieser Methode ist ein Auth_OpenID_AuthRequest-Objekt (die Authentifizierungsanfrage).

Die redirectURL()-Methode wird mit zwei Argumenten aufgerufen:

Das erste Argument ist die URL, die verwendet wurde, um Ihre Website gegenüber dem OpenID-Provider zu identifizieren. Das zweite Argument ist die URL, anhand deren der OpenID-Provider nach der erfolgreichen Authentifizierung die Kontrolle zurückgeben soll. Der Rückgabewert von redirectURL() ist eine URL-Textzeichenkette, die benutzt wird, um den User zu der OpenID-Provider-Website zu führen.

Identitätsmanagement und Authentifizierung

© Archiv

OpenID-gestützte Anmeldung bei Wikitravel.org: Das gewohnte Anmeldeformular muss übergangen werden.

Also übergibt der Open ID-Consumer die Kontrolle an den OpenID-Provider. Der Provider trägt nun die Verantwortung dafür, dass der Benutzer identifiziert wird. Sobald dieser Prozess abgeschlossen ist, verweist der OpenID-Provider den Browser des Users wieder zurück an jene Adresse, die als zweites Argument an die redirectURL()-Methode übergeben wurde - in unserem Beispiel oid_return.php. Der OpenID-Provider kann auch andere Daten des Benutzers an den OpenID-Consumer übergeben, Letzteres geschieht mit der Zustimmung des Benutzers.

Die Auswertung der Antwort vom OpenID-Dienstleister erfüllt das PHP-Skript oid_return.php:

<?php
require_once "Auth/OpenID/Consumer.
php";
require_once "Auth/OpenID/FileStore.
php";

Nach Einbinden der nötigen PHP-Dateien wird eine neue PHP-Sitzung geöffnet:

session_start();

Jetzt muss die Ablage zum Speichern von OpenID-Daten und ein Auth_OpenID_Consumer-Objekt erzeugt werden:

$store = new Auth_OpenID_FileStore
('./oid_store');
$consumer = new Auth_OpenID_Consumer
($store);

Um jetzt die Antwort des OpenID-Dienstleisters zu verwerten, wird die complete()-Methode des Objektes aufgerufen:

$response = $consumer->complete(
'http://consumer.blog.de/oid_return.php');

In Abhängigkeit von der Antwort des Open ID-Dienstleisters erhält die Sitzungsvariable den Boolschen Wert true oder false:

if ($response->status == Auth_
OpenID_SUCCESS) {
$_SESSION['OPENID_AUTH'] = true;
}
else {
$_SESSION['OPENID_AUTH'] = false; }

Schließlich erfolgt die Umleitung auf eine Webseite mit beschränktem Zugriff:

header('Location:
restricted.php');?>

Zugriffskontrolle auf Webcontent

Das Objekt Auth_OpenID_ConsumerResponse repräsentiert hierbei die Antwort des OpenID-Providers auf die Aufforderung zur Authentifizierung des Benutzers. Es kommen hierbei vier Codes infrage:

Auth_OpenID_SUCCESS entspricht einer Erfolgsbestätigung; • Auth_OpenID_FAILURE bedeutet, dass die Authentifizierung fehlschlug; • Auth_OpenID_CANCEL wird dann ausgegeben, wenn die Authentifizierung beim OpenID-Provider durch den Benutzer abgebrochen wurde; • Auth_OpenID_SETUP_NEEDED lässt darauf schließen, dass der OpenID-Server eine nicht-interaktive Authentifizierung durchführen sollte, diese jedoch nicht abschließen konnte.

Anhand der Sitzungsvariable $_SESSION['OPENID_AUTH'] kann der Server mit einem kleinen Skript beim Zugriff auf jede einzelne Webseite erkennen, ob der Benutzer angemeldet wurde oder nicht, und ihm entsprechend den Zugriff gewähren oder verweigern.

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden Ergebnissen…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste einspannen.…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…