2010-08-27 2 views
14

Есть ли какой-либо бесплатный механизм с одним подписчиком для Android, который изящно работает с не-webapps? Скажем, что-то вроде строк ...Android SSO (Single Sign-on) для приложения

  1. Запуск приложения и его использование до тех пор, пока он не отправит запрос с сервера приложений, требующего аутентификации. Он отвечает на этот запрос случайным токеном, который сервер свяжет с вами в течение короткого времени.

  2. Приложение предлагает вам поле имени пользователя, поле пароля и кнопку отправки.

  3. Вы вводите свое имя пользователя и пароль. Затем приложение переадресует ваше имя пользователя и хешированный пароль вместе с токеном, сгенерированным сервером приложений, в службу входа в систему.

  4. Служба входа в систему определяет, действительно ли ваше имя пользователя и пароль. Если они есть, он в цифровой форме маркирует и подписывает токен и возвращает подписанный токен в приложение.

  5. Приложение передает подписанный токен на сервер.

  6. Сервер проверяет подпись, удовлетворяет себе, что он действителен и подписан доверенным лицом, и действует так, как если бы пользователь предоставил ИТ-адрес действительным местным именем пользователя и паролю.

Я подозреваю, что я просто заблудиться в номенклатуре, но впечатление я получил до сих пор является то, что все обычные поставщики SSO - Twitter, Facebook и т.д. - только позволяют пользователям войти в систему с помощью обычный браузер, и что вам либо не разрешено делать то, что я описал, либо они делают что-то, что делает невозможным что-либо, кроме обычного браузера (например, динамическое создание формы входа с помощью Javascript в попытке предотвратить попытки разработчиков использовать свои собственные приложения в качестве фасада входа).

Кроме того, существует ли какой-либо технологический процесс, как это ...

  1. Вы запустить мое приложение и использовать его, пока веб-служба не требует, чтобы войти. Сервер приложений создает маркер и возвращает его приложение.

  2. Приложение запускает новый браузер с помощью намерения, которое отправляет вас на веб-сайт провайдера входа, передавая токен через намерение браузеру (и в конечном итоге провайдеру) в качестве POSTed formvar.

  3. Вы регистрируетесь в окне браузера, а окно браузера закрывается - возвращает вас в мое приложение.

  4. Поставщик входа в систему подписывает токен, а затем отправляет его непосредственно на сервер приложений через HTTP POST, поэтому я могу отметить его представление, проверить сертификат и обработать его, как если бы оно было действительным именем пользователя и паролем, пользователь на сам сервер приложений.

+0

Не могли бы вы использовать openids? – ekawas

+0

Er, может быть. В случае OpenID, я думаю, лучший вопрос может быть: «существует ли где-то четкое объяснение того, как фактически использовать OpenID в реальном приложении для Android с не теоретическими пользователями?» До сих пор все, что я сработал, было похоже на «Это то, как теоретически предполагается, что ххх должен работать, но на сегодняшний день никто на самом деле его не отключил ... или они это сделали, но что-то, что произошло несколько месяцев спустя сломал. – Bitbang3r

+0

посмотрите http://code.google.com/p/openid4java/ По-видимому, он был изменен для использования в android (http://groups.google.com/group/openid4java/browse_thread/thread/2d5ae103e03da768/2dffae7fbd05d1d3? LNK = GST & Q = андроид # 2dffae7fbd05d1d3) – ekawas

ответ

0

Вы пытались использовать Firebase? https://firebase.google.com/docs/auth/?hl=es-419

У этого есть некоторые полезные инструменты, вы можете войти в систему с несколькими социальными коннекторами и пользователем/паролем, а также предоставить библиотеку для интеграции всего интерфейса и потока сервера, они даже используют интеллектуальную блокировку Google для вы.

Взгляните на https://github.com/firebase/FirebaseUI-Android Я использовал его в личном проекте и сэкономил много времени.

Смежные вопросы