Mozilla закончила разработку BrowserID — единой децентрализованной системы аутентификации, которая использует HTML5, криптографию с открытым ключом и цифровые подписи. Она основана на упрощённой интерпретации Verified Email Protocol.
Даже сейчас, на первом этапе внедрения, система довольно проста для пользователя: ему нужно один раз подтвердить email, после чего он получает возможность безопасной авторизации на любом сайте в два клика мышкой, без ввода пароля. В будущем авторизация ещё более упростится, когда поддержку BrowserID внедрят в браузеры, а почтовые провайдеры станут центрами идентификации первого уровня.
Так будет работать система, если Gmail станет поддерживать BrowserID. В этом случае отпадёт необходимость подтверждать свой email на сайте Browserid.org, который сейчас является пока единственным центром идентификации первого уровня.
Кроме отсутствия паролей, ключевым преимуществом BrowserID является защита приватности — в отличие от OpenID и всех подобных систем, провайдер identity в BrowserID не получает данных о том, на каком сайте залогинился пользователь.
Для поддержки BrowserID достаточно включить библиотеку include.js, добавив следующую строчку в заголовок страницы:
Вместо кастомной кнопки можно поставить одну из стандартных, которые предлагаются для BrowserID.
По нажатию на кнопку осуществляется вызов функции верификации адреса электронной почты.
После успешной проверки адреса электронной почты API возвращает вам подписанную строку
На втором этапе вам нужно верифицировать
Проверку
Демо BrowserID (с конференции Mozilla All Hands в сентябре 2011 г.)
Даже сейчас, на первом этапе внедрения, система довольно проста для пользователя: ему нужно один раз подтвердить email, после чего он получает возможность безопасной авторизации на любом сайте в два клика мышкой, без ввода пароля. В будущем авторизация ещё более упростится, когда поддержку BrowserID внедрят в браузеры, а почтовые провайдеры станут центрами идентификации первого уровня.
Так будет работать система, если Gmail станет поддерживать BrowserID. В этом случае отпадёт необходимость подтверждать свой email на сайте Browserid.org, который сейчас является пока единственным центром идентификации первого уровня.
Кроме отсутствия паролей, ключевым преимуществом BrowserID является защита приватности — в отличие от OpenID и всех подобных систем, провайдер identity в BrowserID не получает данных о том, на каком сайте залогинился пользователь.
Для поддержки BrowserID достаточно включить библиотеку include.js, добавив следующую строчку в заголовок страницы:
<script src="https://browserid.org/include.js" type="text/javascript"></script>
Вместо кастомной кнопки можно поставить одну из стандартных, которые предлагаются для BrowserID.
По нажатию на кнопку осуществляется вызов функции верификации адреса электронной почты.
navigator.id.getVerifiedEmail(function(assertion) {
if (assertion) {
// This code will be invoked once the user has successfully
// selected an email address they control to sign in with.
} else {
// something went wrong! the user isn't logged in.
}
});
После успешной проверки адреса электронной почты API возвращает вам подписанную строку
assertion
, которая подтверждает email пользователя.На втором этапе вам нужно верифицировать
assertion
и получить email пользователя. Это делается запросом к https://browserid.org/verify с двумя параметрами POST
(assertion
и audience
) — запрос подписан уже вашей подписью. Верификатор проверяет валидность assertion
.$ curl -d "assertion=<ASSERTION>&audience=https://mysite.com" "https://browserid.org/verify"
{
"status": "okay",
"email": "lloyd@example.com",
"audience": "https://mysite.com",
"expires": 1308859352261,
"issuer": "browserid.org"
}
Проверку
assertion
можно осуществлять и на собственном сервере, см. спецификации и исходники верификатора. В этом случае обеспечивается абсолютная защита информации — провайдер identity не получает данных о том, на каком сайте залогинился пользователь.Демо BrowserID (с конференции Mozilla All Hands в сентябре 2011 г.)