Есть ли какой-либо бесплатный механизм синглов для Android, который изящно работает с не-webapps? Скажем, что-то вроде...
-
Вы запускаете мое приложение и используете его до тех пор, пока он не сделает запрос с сервера приложений, требующего проверки подлинности. Он отвечает на этот запрос со случайным токеном, который сервер будет связываться с вами в течение короткого времени.
-
Приложение представляет вам поле имени пользователя, поле пароля и кнопку отправки.
-
Вы вводите свое имя пользователя и пароль. Затем приложение переадресует ваше имя пользователя и хешированный пароль вместе с токеном, сгенерированным сервером приложений, в службу входа в систему.
-
Служба входа в систему определяет, действительно ли ваше имя пользователя и пароль. Если они есть, это цифровая метка времени и подписывает токен и возвращает подписанный токен в приложение.
-
Приложение переносит подписанный токен на сервер.
-
Сервер проверяет подпись, удовлетворяет себе, что она действительна и подписана доверенным органом, и поступает так, как если бы пользователь представил IT с действительным локальным именем пользователя и паролем.
Я подозреваю, что просто теряюсь в номенклатуре, но впечатление, которое я получил до сих пор, заключается в том, что все обычные поставщики SSO - Twitter, Facebook и т.д. - позволяют пользователям регистрироваться в обычном браузере, и что вам либо не разрешено делать то, что я описал, либо они делают что-то, что делает его невозможным практически без обычного браузера (например, динамическое создание формы входа через Javascript в попытке помешать разработчикам использовать свои собственные приложения в качестве фасада входа).
В качестве альтернативы существует ли какой-либо рабочий процесс, например THIS...
-
Вы запускаете мое приложение и используете его, пока веб-служба не потребует от вас входа. Сервер приложений генерирует токен и возвращает его в приложение.
-
Приложение запускает новый браузер с помощью намерения, которое отправляет вас на веб-сайт провайдера входа, передавая токен через намерение браузеру (и в конечном итоге провайдеру) в качестве POSTed formvar.
-
Вы заходите в окно браузера, а окно браузера закрывается - возвращает вас в мое приложение.
-
Поставщик входа в систему подписывает токен, а затем отправляет его непосредственно на сервер приложений через HTTP POST, поэтому я могу отметить его представление, проверить сертификат и обработать его так, как если бы это было действительное имя пользователя и пароль, представленные напрямую пользователем к самому серверу приложений.