Я провел довольно много исследований по этой теме, и меня немного смущает, как это сделать.Насколько я понимаю, это:
Чтобы использовать Identity Server 4 с приложением для Android, лучший способ состоит в том, чтобы приложение Android открывало встроенный экземпляр браузера, который будет отображать страницу входа на сервер идентификации для пользователя, где пользователь можетвойдите в систему. По завершении браузер закроется, и в приложении будет вызван метод для передачи токенов, необходимых для доступа к API и утверждениям, а что нет.Теперь меня смущает, какой тип клиента мы используем для этого и как будет выглядеть конфигурация для этого клиента?
Вот схема того, что я описал выше, если это неправильно, пожалуйста,не стесняйтесь меня поправлять.
![App Identity Flow](https://i.stack.imgur.com/pXZ7J.png)
Статья, из которой я ее получил: https://tools.ietf.org/html/draft-ietf-oauth-native-apps-09#section-4.1
Я использую nativescript для сборки своего приложенияи я делаю это там, потому что я не уверен, насколько это будет иметь значение, поэтому, если вы считаете, что это имеет значение, укажите, почему.
Неявный клиент используется для приложений SPA, и это один изклиенты у меня уже есть настройка и работа с моим угловым приложением.Сейчас я пытаюсь заставить его работать с приложением родного скрипта, но варианты из того, что я читаю, либо GrantTypes.Hybrid
, либо GrantTypes.Code
. Некоторые из найденных ответов говорят, что мы должны использовать Hybrid, а другие говорят, что мы должныиспользовать код, и я не уверен, что является правильным и почему?
Другая вещь, которая беспокоит меня, это то, как это безопасно в приложении для Android.С помощью SPA и неявного потока мы определяем URL для входа в систему и выхода из системы, поэтому эти домены заносятся в белый список и не будут работать ни с какими другими, что делает его безопасным.Тем не менее, с помощью приложения для Android, как именно это становится безопасным?Я не могу сохранить секрет на телефоне, потому что кто-нибудь может его выкопать, так что же именно с потоком (гибридным или кодовым, в зависимости от того, который я предполагаю использовать) сохраняет его?