Проверка подлинности OpenID из установленного приложения - PullRequest
3 голосов
/ 08 мая 2009

Я сейчас планирую новый веб-проект. Клиенты будут подключаться с помощью обычного веб-браузера и, в случае обычных мобильных телефонов с поддержкой Java, клиента j2me. Я действительно хотел бы использовать аутентификацию OpenID. В случае обычного веб-браузера все довольно просто. Однако я действительно не уверен насчет установленных приложений (таких как клиент j2me, установленный на мобильном устройстве) - обычная проверка подлинности OpenID выполняется путем ввода имени пользователя / пароля на веб-странице определенного поставщика OpenID - что является довольно ограничением:)

Кто-нибудь справился с такой ситуацией? Можно ли создать механизм аутентификации для сайта, который использует OpenID из мобильного клиента j2me?

В настоящее время я думаю о решении, согласно которому пользователи, которые хотели бы подключиться со своих мобильных телефонов, загружают необходимое приложение j2me с веб-сайта сервера после своей аутентификации (обычная аутентификация в браузере). Мобильное клиентское приложение может динамически собираться на сервере со встроенным SSL-сертификатом, который связан с конкретным зарегистрированным пользователем OpenID. После этого клиент j2me может проходить аутентификацию на сервере без ввода имени пользователя / пароля. Данные, которые будут храниться на сервере, НЕ ЧУВСТВИТЕЛЬНЫ, учитывая случаи краж мобильных телефонов и т. Д.

Кто-нибудь может предложить лучшее решение?

1 Ответ

3 голосов
/ 08 мая 2009

Лучшее решение IMO для того, что вы делаете, это использовать OAuth в сочетании с OpenID. Вы используете OpenID на RP в порядке. Но для установленных приложений, которым нужен доступ к этому веб-сайту, они должны использовать OAuth для авторизации. Поток будет работать так:

  1. Пользователь устанавливает приложение на свое устройство
  2. Во время установки или при первом запуске приложение имеет кнопку «Авторизовать меня».
  3. Пользователь нажимает кнопку, и веб-браузер открывает веб-сайт, с которого клиентскому приложению необходим доступ к данным.
  4. Пользователь заходит на этот сайт, используя свой OpenID
  5. Сайт теперь спрашивает: «Вы хотите авторизовать клиентское приложение X?»
  6. Пользователь говорит да и закрывает браузер.
  7. Клиентское приложение появляется снова и говорит «спасибо». теперь у него есть токен OAuth, необходимый для доступа к данным пользователя без повторного входа пользователя в систему.
...