Как именно мобильные приложения достигают потока кода авторизации с PKCE? - PullRequest
0 голосов
/ 11 декабря 2019

Давайте представим следующее:

  1. Я разработал мобильное приложение с использованием Xamarin (совместимо с iOS / Android)
  2. Я хочу, чтобы оно поддерживало поток кода авторизации OAuth2 + OpenID Connectс PKCE, так что учетные данные пользователя никогда не хранятся на устройстве, а токен доступа. Токен предоставляет доступ к API, который используется для работы всего мобильного приложения. Это означает, что мобильное приложение представляет собой просто интерфейс / интерфейс пользователя.
  3. Считается ли мое мобильное приложение "клиентским приложением" или "Владелец ресурса "?

Третий шаг затрудняет мне это понять. Если оно считается клиентским приложением, то как оно будет следовать всему потоку кода, защитит нас от чего-либо, поскольку большинство вещей будет видно (мобильные приложения являются общедоступными клиентами, обратного канала нет)

Если эторассматривается как владелец ресурса, значит ли это, что мне придется извлекать весь выделенный сервер, отдельно от моего API, отдельно от моего сервера авторизации и только для мобильного приложения (это будет «клиентское приложение»)?

Если кто-то может пролить свет на это, пожалуйста, дайте мне знать. Название не очень правильное, если его можно отредактировать, чтобы лучше соответствовать этому вопросу, я был бы очень благодарен.

1 Ответ

0 голосов
/ 11 декабря 2019

Ваше мобильное приложение является клиентским приложением - на сервере авторизации настроена запись доверия. PKCE работает с помощью мобильного приложения, генерируя секрет времени выполнения, используемый в 2 сообщениях:

  • Перенаправление входа в систему
  • Сообщение о предоставлении кода авторизации

См. Шаги 4, 7 и 8 из my write для понимания сообщений PKCE

Mobile OAuth включает в себя интеграцию библиотек AppAuth, что непросто, хотя вы получите лучшую безопасность и удобство использования после завершения.

У меня есть пример приложения для Android, и вы можете написать, что вы легко можете запустить здесь

Поведение на iOS аналогично - надеюсь, это поможет вам прояснить ваши требования.

...