Identity and Access Management

It's a maexotic world ...


Wer kennt das nicht? Tausende von Websites, Blogs, Social Networks und überall soll man sich (verständlicherweise) anmelden und identifizieren. Man kauft sich ein Gadget, findet ein passendes Forum, aber man muß sich anmelden, manchmal schon zum Lesen, spätestens aber, wenn man etwas schreiben will. Einen Kommentar in einem Blog zu einem Artikel hinterlassen? Wenn nicht CAPTCHA verwendet wird (was IMHO immer seltener der Fall ist), dann muß man sich registrieren und anmelden. Das hundertste Social Network zu dem man eine Einladung erhält. Erst mal registrieren und anmelden.

Oftmals klappt es in solchen Situationen ja noch, dass man mit einem halbwegs ausgefallenem Benutzernamen diesen wenigstens verwenden kann, manchmal muß man aber auch hier schon auf einen anderen zurückgreifen. Und dann kommt das Paßwort. Jetzt wird es wirklich ätzend, denn immer das gleiche Paßwort zu verwenden ist keine Option. Der Algorithmus mit dem ein Paßwort und ein Dienst/Service/Website assoziiert werden darf nicht zu einfach sein (sonst könnte man auch gleich das gleiche Paßwort verwenden). Dass es ungeschickt ist fuer xing.com das Paßwort "xing.com" zu verwenden und für google.com das Paßwort "google.com" leuchtet wohl jedem ein. Im Endeffekt hat man also hunderte Logins und unzählige Paßwörter und hoffentlich einen halbwegs komfortablen Paßworttresor um das alles abzulegen.

Dies ist nun der Punkt an dem Identity Management ansetzt. Idealerweise generiert man eine Identität im Netz und verwendet diese überall, wo man eine Identität braucht. Ein solches System, das im Moment ziemlichen Zuspruch erfährt ist OpenID. Es handelt sich dabei im wesentlichen um einen zentralen Identity Server, bei dem man sich authentifiziert, und eine Reihe ausgeklügelter Redirects und ein einfaches Protokoll mit dem sich das Zielsystem mit dem Identity Server unterhält. Eine OpenId ist im Moment eine Webadresse, wobei an entsprechenden Zuordnungen gearbeitet wird, so dass man in Zukunft auch z.B. eine eMail-Adresse angeben können soll, was für viele Benutzer sicher einprägsamer ist. Noch etwas weiter in die Zukunft gedacht soll für OpenID das XDI/XRI Framework integriert werden.

Zum Start für OpenID kann man sich eine Id bei einem der Provider besorgen. Oder man besitzt gar schon eine OpenID und weiß es nur nicht. Jeder, der einen Account z.B. bei technorati, livejournal.com, oder WordPress.com hat, hat damit auch eine OpenId. Selbst AOL.com bietet einen (experimentellen) Service an, der jedem AOL oder AIM Benutzer eine OpenID zur Verfügung stellt. Das OpenId Wiki hat eine ausführlichere Liste. Und wer ohnehin über einen eigenen Webserver verfügt kann auch selber seinen OpenId Dienst aufsetzen. Das habe ich gemacht und mit phpMyId war das eine Sache von 10 Minuten (zugegebenermassen habe ich die anderen nicht mehr angeschaut, nachdem gleich das erste so dermassen problemlos funktioniert hat).

Was OpenId auch sehr smart macht ist, dass man OpenIds delegieren kann. Ich habe meine OpenId unter http://maex.openid.thinkof.de/. Durch das Einfügen der Zeilen:

<link rel="openid.server" href="http://maex.openid.thinkof.de/" />
<link rel="openid.delegate" href="http://maex.openid.thinkof.de/" />

in den Header einer Webseite (z.B. in http://www.maexotic.de/), kann man deren Adresse (URL) als OpenID verwenden. Das hat den großen Vorteil, dass man OpenId Provider wechseln kann und trotzdem - im Falle eines unabhängigen URL - seine OpenID weiter verwenden kann.

Für Serendipity, die Blog Software die hier zum Einsatz kommt, gibt es ein OpenId Plugin. Das ist sehr angenehm. Nach dem Aktivieren muß man nur den Benutzer mit der OpenID assoziieren und schon kann es losgehen, echt angenehm! Auch für MediaWiki gibt es eine OpenId Extension. Schon habe ich mir für meine privaten Projekte ein paar Paßwörter gespart :-)

Zur Integration in noch nicht OpenID fähige Applikationen gibt es unter OpenId Enabled Referenzimplementierungen für Ruby, python und PHP.

Sehr spannend das Ganze, umso mehr, als im Februar mit Google, IBM, Microsoft, VeriSign und Yahoo! einige der ganz Großen auf den Zug mit aufgesprungen sind.




Comments