Каков правильный подход к аутентификации/авторизации собственного приложения Android с использованием Thinktecture IdentityServer3

Я разрабатываю собственное приложение для Android, которое выполняет аутентификацию, авторизацию, получение ресурсов с использованием бэкэнда WebApi.

После долгих дискуссий о том, как лучше и безопаснее реализовать аутентификацию и авторизацию с использованием технологий .NET, мы решили использовать Thinktecture IdentityServer3. .

До того, как я подписался на эта серия для реализации аутентификации на основе токенов с использованием системы идентификации Asp.NET, все было в порядке, но после исследований я решил отделить сервер аутентификации от использования Thinktecture Identity Server.

Итак, теперь у меня есть отдельные веб-приложения, размещенные на Azure, одно для ресурсов, а другое для аутентификации с использованием IdentityServer3 и одно Родной клиент Android.

Мое клиентское приложение для Android имеет аутентификацию с использованием Facebook/Google, и я уже реализовал это раньше на Android с помощью Parse или отдельно на основе Facebook Android SDK и сервисов Google.

Также пользователи, имеющие роли.

Теперь я хочу знать, есть ли правильный подход для этого с точки зрения сервера аутентификации, а также с точки зрения клиентского приложения Android, поскольку существует много дискуссий о конфигурациях identityserver3 с собственными приложениями, а также следует ли мне использовать веб-просмотр в Android для обработки соединения с сервером аутентификации или с использованием собственного кода Java с библиотекой HTTP, такой как модификация для отправки запроса и получения ответа.

Также с Facebook я уже реализовал аутентификацию непосредственно из приложения для Android с помощью Facebook Android SDK, и я могу получить AuthToken, и подход, о котором я думаю, это как показано в этом вопросе:

  1. Аутентифицируйте пользователя в Facebook из приложения Android.
  2. Получите токен авторизации FB в приложении для Android.
  3. Перенаправьте токен аутентификации и UID facebook с Android на веб-сервер.
  4. На веб-сервере выполните вызов API Facebook с отправленным токеном.

Если вызов API Facebook с веб-сервера возвращает действительную аутентификацию, а идентификатор пользователя равен идентификатору, отправленному приложением Android, ваш сервер может доверять идентификатору (и вы можете быть уверены, что аутентификация Android настоящая)

Или я должен полагаться только на внутренний сервер идентификации для обработки аутентификации Facebook?


person Marzouk    schedule 14.03.2016    source источник


Ответы (1)


вы можете использовать гибридный поток (если вам нужны токены доступа и токены обновления), также вы можете использовать неявный поток

просто взгляните на эта тема

и о том, как вы можете это сделать. Либо вы можете сделать это, выполнив комбинацию веб-представлений и гибридного/неявного потока, либо применить стиль перенаправления на страницу входа в IdSvr. Использование пароля владельца ресурса

person Tarek Abdel Maqsoud    schedule 14.03.2016