Развлекаюсь - научился авторизироваться в ЖЖ по отпечатку пальца. :-)
Как это работает?
0. Есть свой домен в DNS, захостенный на Google Apps.
1. Иду по адресу mail.domain.name, попадаю на Гугл.
2. Гугл видит, что для домена включён Single Sign-On, и перекидывает браузер на мой ADFS-сервер.
3. ADFS-сервер требует предъявить клиентский сертификат.
4. Секретный ключ от сертификата хранится на моём лэптопчике и защищён TPM - нечто вроде чипа смарт-карты, только на материнке.
5. TPM требует, прежде чем расшифровать ключ, предъявить пароль или отпечаток пальца.
6. Провожу палец, браузер предъявляет сертификат.
7. ADFS-сервер передаёт сертификат в Active Directory, AD подтверждает, что он мой.
8. ADFS перекидывает обратно на Гугл с SAML-токеном "не волновайтесь, свои".
9. Получаю полноценный гугл-аккаунт, со всеми наворотами.
10. Иду в LiveJournal и выбираю залогиниться через Гугл с помощью oAuth. Бинго.
Если отмахнуться от вопроса доверия к Гуглю, то схема по моему вкусу близка к идеальной:
* никаких shared secrets между мной и сайтами,
* никаких паролей и кодов, которых надо помнить,
* тот input, что мне нужно вводить (отпечаток пальца) используется только на моём компе и не пересылается никуда,
* правила, регулирующие, как часто мне нужно доказывать, что я - это я, тоже местные, и устанавливаются мною, а не Гуглем и не ЖЖ.
* секретный ключ практически неизвлекаем,
* ADFS-сервер не может имперсонировать меня в AD и исполнять под моим именем код,
И вообще, используются одним махом все современные навороты в области - claim-based authentication, сертификаты + TPM, биометрия, а это прикольно.
Что б ещё наворотить? :-)