Я разрабатываю собственное приложение для 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, и подход, о котором я думаю, это как показано в этом вопросе:
- Аутентифицируйте пользователя в Facebook из приложения Android.
- Получите токен авторизации FB в приложении для Android.
- Перенаправьте токен аутентификации и UID facebook с Android на веб-сервер.
- На веб-сервере выполните вызов API Facebook с отправленным токеном.
Если вызов API Facebook с веб-сервера возвращает действительную аутентификацию, а идентификатор пользователя равен идентификатору, отправленному приложением Android, ваш сервер может доверять идентификатору (и вы можете быть уверены, что аутентификация Android настоящая)
Или я должен полагаться только на внутренний сервер идентификации для обработки аутентификации Facebook?