Serwer OpenID dla Google Apps for Your Domain
29 marca 2009, 17:39:47Od jakiegoś czasu chodziło mi po głowie, żeby dodać sobie do Google Apps własny serwer OpenID - korzystając oczywiście z dobrodziejstw Google AppEngine. Podstawowa zaleta w stosunku do serwera zewnętrznego - jedno hasło do pamiętania mniej, uwierzytelniamy się bowiem za pomocą naszego konta w Google Apps.
Okazało się, że sprawa jest prostsza niż na początku się wydawało - w przykładowym kodzie źródłowym do appengine są źródła providera openid, które praktycznie bez zmian można uruchomić na appengine (pamiętając tylko o ustawieniu uwierzytelniania tylko dla swojej domeny). Niestety - kod ten jest od prawie roku nie rozwijany i użyta tam biblioteka openid jest delikatnie mówiąc archaiczna (obsługa tylko openid 1.0).
Wziąłem się więc do roboty i po dwóch dniach poznawania python-openid, kodowania i debugowania udało się uruchomić provider'a na ostatniej wersji python-openid (2.1.1)
Funkcjonalność na razie jest tylko podstawowa - można się logować :) W podstawowy sposób obsługiwane jest także rozszerzenie Simple Registration - pola nickname i email
Źródła do pobrania na stronie projektu.
Tutaj natomiast gotowa do testowania aplikacja id-provider, z uwierzytelnianiem ustawionym dla wszystkich kont google.
Zapraszam do testowania i zgłaszania uwag / błędów i patchy.
W planach dorobienie funkcjonalności typowej dla dostawców openid - edycja profilu użytkownika (danych przesyłanych podczas Simple Registration), pamiętanie po stonie serwera decyzji w sprawie automatycznego logowania (na razie używane są ciasteczka), itd.
Tagi: appengineappsgoogleopenidpython
29 marca 2009 o 18:02:27
A nie wystarczy dodać tagów:
<link rel="openid.server" href="http://ADRES_SERWERA" />
<link rel="openid.delegate" href="http://ADRES_NASZEGO_KONTA/" />
?
29 marca 2009 o 18:24:16
Nie - ponieważ nie ma na co delegować :)
Google nie udostępnia serwera OpenID dla Google Apps For Your Domain. Dla zwykłych kont gmail od niedawna Google jest providerem OpenID, ale zrobili to w dziwny sposób - używają mianowicie directed identity i też nie da się ustawić delegacji z własnej domeny. Jedyną możliwością użycia delegacji dla normalnych kont google (nie Google Apps) jest ichni blogger - można założyć sobie bloga na bloggerze i do niego delegować uwierzytelnianie z własnej domeny, lub uruchomić własny serwer openid na appengine.
29 marca 2009 o 18:27:16
@trójkąt: Z tego co widzę sam używasz openid.pl - nie masz problemów z logowaniem się do niektórych serwisów? AFAIK na openid.pl cały czas używane jest OpenID 1.0
29 marca 2009 o 18:28:25
>Nie - ponieważ nie ma na co delegować :)
Ja deleguję na openid.pl i działa dobrze.