Wednesday, January 16, 2008

OpenID delegate

Спецификация OpenID описывает возможность делегировать проверку полномочий стороннему серверу. Это значит, что можно использовать как идентификационный URL некоторую страницу на собственном сервере, которая в реальности будет подставлять конкретный OpenID сервер. Как это выглядит:

1. предположим, что существует (а он существует :-) OpenID URL http://abava.livejournal.com. Он описывает пользователя на сервере livejournal.com

2. на собственном сервере можно создать следующий файл abava.htm:

<html>
<head>
<link rel="openid.server" href="http://www.livejournal.com/openid/server.bml" />
<link rel="openid.delegate" href="http://abava.livejournal.com/" />
</head>
<body>
OpenId delegate
</body>
</html>

Здесь указаны два заголовка, которые делегирую проверку серверу livajournal.com. Тогда, при авторизации на сайтах, поддерживающих OpenID, можно в качестве имени указывать http://мой_сервер/abava.htm После проверки пользователя (на сайте livejournal.com!), пользователь на сайте будет описываться как http://мой_сервер/abava.htm
Можно, например, добавить делегирующие заголовки к корневому файлу проекта (index.jsp, index.php etc.) и вcегда авторизовываться на сторонних сайтах под именем своего проекта (сайта, блога): http://мой_сервер

Некоторые популярные OpenID сервера:

LiveJournal http://www.livejournal.com/openid/server.bml
Vox http://www.vox.com/services/openid/server
VeriSign https://pip.verisignlabs.com/server
MyOpenID http://www.myopenid.com/server

No comments: