Существует ли какой-либо бесплатный механизм единого входа для Android, который корректно работает с не-веб-приложениями? Скажем, что-то вроде...
Вы запускаете мое приложение и используете его до тех пор, пока оно не сделает запрос от сервера приложений, требующий аутентификации. Оно отвечает на этот запрос случайным токеном, который сервер свяжет с вами на короткое время.
Приложение предоставляет вам поле имени пользователя, поле пароля и кнопку отправки.
Вы вводите свое имя пользователя и пароль. Затем приложение пересылает ваше имя пользователя и хешированный пароль вместе с токеном, сгенерированным сервером приложения, в службу входа в систему.
Служба входа определяет, действительны ли ваше имя пользователя и пароль. Если это так, оно ставит цифровую метку времени, подписывает токен и возвращает подписанный токен приложению.
Приложение передает подписанный токен на сервер.
Сервер проверяет подпись, убеждается, что она действительна и подписана органом, которому он доверяет, и действует так, как если бы пользователь предоставил ИТ-специалисту действительное локальное имя пользователя и пароль. вместо этого.
Я подозреваю, что просто теряюсь в номенклатуре, но до сих пор у меня сложилось впечатление, что все обычные провайдеры SSO - Twitter, Facebook и т. д. - позволяют пользователям входить в систему только с помощью обычного браузера, и что вам либо не разрешено делать то, что я описал, либо они делают что-то, чтобы сделать это фактически невозможным с чем-либо, кроме обычного браузера (например, динамическое создание формы входа через Javascript, чтобы предотвратить разработчикам от попыток использовать свои собственные приложения в качестве фасада входа в систему).
Альтернативно существует ли какой-либо рабочий процесс, подобный ЭТОМУ...
Вы запускаете мое приложение и используете его до тех пор, пока веб-служба не потребует от вас входа в систему. Сервер приложений генерирует токен и возвращает его приложению.
Приложение создает новый браузер через намерение, которое отправляет вас веб-сайт провайдера входа, передавая токен через намерение браузеру (и, в конечном итоге, провайдеру) в виде формварной формы POST.
Вы входите в систему, используя окно браузера, и окно браузера закрывается, возвращая вас в мое приложение.
Провайдер входа подписывает токен, а затем отправляет его непосредственно на мой сервер приложений через HTTP POST, чтобы я мог отметить его отправку, проверить сертификат и обрабатывать его так, как если бы он был вместо этого действительные имя пользователя и пароль, отправленные пользователем непосредственно на сервер приложений.
Существует ли какой-либо бесплатный механизм единого входа для Android, который корректно работает с не-веб-приложениями? Скажем, что-то вроде...
[list] [*]Вы запускаете мое приложение и используете его до тех пор, пока оно не сделает запрос от сервера приложений, требующий аутентификации. Оно отвечает на этот запрос случайным токеном, который сервер свяжет с вами на короткое время. [*]Приложение предоставляет вам поле имени пользователя, поле пароля и кнопку отправки. [*]Вы вводите свое имя пользователя и пароль. Затем приложение пересылает ваше имя пользователя и хешированный пароль вместе с токеном, сгенерированным сервером приложения, в службу входа в систему. [*]Служба входа определяет, действительны ли ваше имя пользователя и пароль. Если это так, оно ставит цифровую метку времени, подписывает токен и возвращает подписанный токен приложению. [*]Приложение передает подписанный токен на сервер. [*]Сервер проверяет подпись, убеждается, что она действительна и подписана органом, которому он доверяет, и действует так, как если бы пользователь предоставил ИТ-специалисту действительное локальное имя пользователя и пароль. вместо этого. [/list]
Я подозреваю, что просто теряюсь в номенклатуре, но до сих пор у меня сложилось впечатление, что все обычные провайдеры SSO - Twitter, Facebook и т. д. - позволяют пользователям входить в систему только с помощью обычного браузера, и что вам либо не разрешено делать то, что я описал, либо они делают что-то, чтобы сделать это фактически невозможным с чем-либо, кроме обычного браузера (например, динамическое создание формы входа через Javascript, чтобы предотвратить разработчикам от попыток использовать свои собственные приложения в качестве фасада входа в систему).
Альтернативно существует ли какой-либо рабочий процесс, подобный ЭТОМУ...
[list] [*]Вы запускаете мое приложение и используете его до тех пор, пока веб-служба не потребует от вас входа в систему. Сервер приложений генерирует токен и возвращает его приложению. [*]Приложение создает новый браузер через намерение, которое отправляет вас веб-сайт провайдера входа, передавая токен через намерение браузеру (и, в конечном итоге, провайдеру) в виде формварной формы POST. [*]Вы входите в систему, используя окно браузера, и окно браузера закрывается, возвращая вас в мое приложение. [*]Провайдер входа подписывает токен, а затем отправляет его непосредственно на мой сервер приложений через HTTP POST, чтобы я мог отметить его отправку, проверить сертификат и обрабатывать его так, как если бы он был вместо этого действительные имя пользователя и пароль, отправленные пользователем непосредственно на сервер приложений. [/list]