2017-01-11 17 views
1

Я реализовал Identity Server4, и он отлично выглядит. Теперь у меня есть требование подключить к нему собственное мобильное приложение (xamarin). Большинство блогов и обсуждений предлагают использовать либо «код авторизации», либо «гибридный» поток, а пример xamarin в github использует «неявный» поток ,Identity Server: Тип гранта для родных мобильных приложений

Я прошел через эту документацию по потоку авторизации, и он ничего не говорит о имени пользователя или пароле. https://identityserver4.readthedocs.io/en/release/endpoints/authorize.html

Мне нужно, чтобы пользователь мог указать свое имя пользователя и пароль на сервер аутентификации, а сервер должен в конечном итоге вернуть код доступа.

  1. Какой будет наиболее подходящий поток аутентификации для этого.
+0

Hi, Что вы в конечном итоге сделали? У меня такая же настройка. Настройка Xamarin с webapi и идентификационным сервером. У меня есть необходимость для имени пользователя и пароля и входа в facebook. Я хочу, чтобы логин thefacebook обрабатывался как native, поэтому я получаю токен для facebook, а оттуда я хочу передать его IdentityServer .. –

ответ

3

Есть два "умонастроения" -

а) Логин UI является родным в приложении

б) Войти пользовательский интерфейс оказанной с OpenID Connect в браузере

Вообще б) рекомендуется - проверьте спецификации:

https://tools.ietf.org/wg/oauth/draft-ietf-oauth-native-apps/

Я ALS о сделал разговор об этом в прошлом году:

https://vimeo.com/171942749

Если вы совершенно не хотите подход перенаправлять/сервер на основе, а затем исследовать «Грант владелец пароля ресурса» - например здесь:

https://identityserver4.readthedocs.io/en/release/quickstarts/2_resource_owner_passwords.html

Но я бы не рекомендовал его.

+0

Тогда в этом случае такие компоненты, как Xamarin.Auth, не рекомендуются? Что делать, если я использую аутентификацию с 3'rd сторонами? Доступ к моему webapi осуществляется с помощью Google/MSFT, означает ли это, что мы должны внедрить аутентификацию с внешними поставщиками из Identity api, а затем предоставить веб-страницу, к которой будет обращаться Xamarin/Whatever WebView? ... – ExtremeSwat