Social Software powered by Instant Communities
Springe direkt: zur Navigationzum Inhaltzur Sidebar

Archiv für 'identity2.0'

OpenId Attribute Exchange mit PHP und Janrain

22.05.2009

Ich habe in letzter Zeit wieder mehr mit OpenID gemacht und dabei “Attribute Exchange” entdeckt.
Diese OpenID Erweiterung ermöglicht es, Userdaten des Accounts an die anfragende Seite zu übertragen. Im Gegensatz zur verbreiteten sreg Erweiterung, unterstützt sie aber eine Reihe zusätzlicher Attribute (z.B. Trennung von Vorname und Nachname, mehrere Profil-Urls…). Neben Google (Doku) unterstützt auch myopenid diese Erweiterung.
Die Implementierung ist eigentlich recht schmerzfrei. Leider habe aber nirgends guten Beispielcode gefunden und die Dokumentation zu dem Thema ist insgesamt ungenügend, so dass ich die einfache Lösung unten erst mit viel Trial and Error gefunden habe:

Entscheidend war folgende Information (danke an Rakuno Futani):
Anders als in der Doku angebeben, muss als Namespace anscheinend http://schema.openid.net für die Attribute genutzt werden. Andere Namespaces, z.B. http://axschema.org/contact/email gunktionieren zumindest mit MyOpenid nicht. Erschwerend kommt während der Entwicklung hinzu, dass Google z.B. die Attribute nur bei der allerersten Anfrage  mitsendet und davon ausgeht, dass der anfragende Server diese Daten erfolgreich speichert. Eine leere Response heißt also nicht unbedingt, dass die Anfrage falsch war.

Hier die Beispielimplementierung mitilfe der Janrain PHP Library (die übrigens dringend mal als PHp5 Verison rauskommen sollte).

Request

Dem Request fügt man die AX-Erweiterung hinzu und gibt an, welche Userdaten geholt werden sollen.

<?php
  $axRequestProfileData = array(

    'email'   => 'http://schema.openid.net/contact/email',

    'username' => 'http://schema.openid.net/namePerson/friendly',

    'firstname'   => 'http://schema.openid.net/namePerson/first',

    'lastname'    => 'http://schema.openid.net/namePerson/last',

    'country' => 'http://schema.openid.net/contact/country/home',

    'birthday' => 'http://schema.openid.net/birthDate',

    'gender' => 'http://schema.openid.net/gender',

    'language'    => 'http://schema.openid.net/pref/language',

    'web'     => 'http://schema.openid.net/contact/web/default',

    'blog'     => 'http://schema.openid.net/contact/web/blog',

    'about' => 'http://schema.openid.net/media/biography',

    'image' => 'http://schema.openid.net/media/image/default',

    'fullname' => 'http://schema.openid.net/namePerson/'

  );
    $ax_request = new Auth_OpenID_AX_FetchRequest();    if ($ax_request) {

    foreach($axRequestProfileData as $alias => $url){

        $ax_request->add(Auth_OpenID_AX_AttrInfo::make($url, 1, true, $alias));

    }

    $request->addExtension($ax_request);

  }
?>

Response

Nach der Autentifizierung erhält man dann die Daten aus der Response so:

<?php

  $ax = Auth_OpenID_AX_FetchResponse::fromSuccessResponse($response);

  var_dump($ax->data);

?>

Mehr zu OpenID

07.03.2007

Auf praegnanz.de nimmt sich Gerrit von Aaken dem Thema OpenID an, über das wir in letzter Zeit ja auch geschrieben haben. Wie gewohnt präsentiert Gerrit eine knackige Zusammenfassung des Themas mit einigen lesenwerten weiteren Links.

Vor zwei Wochen habe ich außerdem auf diesem Blog ein WordPress Plugin installiert, was openID für die Kommentarfunktion unterstützt. Leider hat das Plugin bei mir nicht so fuktioniert, wie es sollte und stattdessen meine Kommentarsection gesprengt, wenn man nicht eingeloogt war. Sobald ich eine Lösung hierfür finde, werde ich das Plugin wieder aktivieren und die Lösung hier posten. Wer das Plugin ausprobieren möchte, kann sich es sich bei VerselLogic herunterladen

Mit idproxy OpenId auch für Yahoo Accounts

20.02.2007

Kleiner Nachtrag zum Artikel über AOL und OpenId.
Andy Budd schreibt in Yahoo, OpenID and the Identity Problem über den gleichen Themenkomplex . Dabei verweist er auf ein Projekt von Simon Willson: Mit idproxy kommt auch jeder Yahoo-Account Besitzer in den Genuss von OpenId.

AOL unterstützt OpenID

16.02.2007

Volkmar Breindl hat kürzlich über die Interoperabilität von Nutzerdaten geschrieben. Wie ich eben gelesen habe, hat AOL heute einen großen Schritt nach vorn in dieser Richtung gemacht und untersützt nun OpenID für alle AOL und AIM Nutzer (http://openid.aol.com/screenname.).
Theoretisch bietet OpenID zumindest eine einfache Verwaltung/ individuelle Freigabe von persönlichen Informationen – ein wichtiger Baustein auf dem Weg zu mehr Interoperabilität zwischen Services.
Ein Beispiel: Niemand möchte wohl seine Kreditkartendaten jedermann zugänglich machen. Ich fände es aber praktisch, wenn ich diese Daten beim Online-Shoppen nicht bei jedem Shop neu eingeben müsste – wenn es eine sichere Möglichkeit gäbe,sie dem Shop einfach mitzuteilen. Genau so nervtötend ist es, bei jeder Neuregistrierung bei einem Dienst immer wieder die gleichen Personendaten eingeben zu müssen. Eine Lösung versprechen Identity Services wie OpenID.
Kontake aus sozialen Netzwerken werden damit leider aber nicht portierbar.

So funktioniert OpenId
(übersetzt von http://www.openidenabled.com/)

  1. Alice gibt ihre OpenID URL im Registrierungsformular von example.com ein.
  2. example.com leitet Alice auf Ihren Identity Provider (myopenid.com)
  3. Alice erteilt über myopenid.com die Erlaubnis, example.com ihre Daten mitzuteilen
  4. Alice wird zurück auf example.com geleitet und ist automatisch eingeloggt.

Im Rahmen von Identity 2.0 werden diese Services zunehmend wichtiger, damit, wie Gerrit van Aaken verspricht, 2007 wirklich ein tolles Social Software Jahr wird.

Für alle, die das Konzept von Identity Providern das Thema Identity gerne noch anschaulicher und amüsanter erklärt haben möchten, habe ich hier eine meiner Lieblingspräsentationen eingebunden: Dick Hardt über Identity 2.0.

Medium: www.youtube.com
Link: www.youtube.com

You are currently browsing the archives for the identity2.0 category.

Creative Commons License
This work is licensed under a
Creative Commons Attribution-Share Alike 2.5 License.
t8d blogged mit WordPress