Как запросить токен refre sh с помощью OIDC - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь реализовать refre sh токены с OID C и OAuth2, и у меня возникают проблемы с пониманием рабочего процесса. Насколько я понимаю, используя поток кода авторизации, токен refre sh в ответе от конечной точки /token получает наличие области действия offline_access в запросе /authorize.

Мой вопрос заключается в том, как запрос к конечной точке токена узнает, что он должен вернуть токен refre sh для этого пользователя, вошедшего в систему, если область offline_access отправляется только конечной точке /authorize или эта область также должна присутствовать в запросе токена? Или это тот случай, когда токен refre sh должен быть сгенерирован и сохранен во время рабочего процесса /authorize до того, как код будет возвращен, а затем просто найден в рабочем процессе /token, который будет возвращен туда?

В частности, следуя этому рабочему процессу:

enter image description here

1 Ответ

1 голос
/ 19 февраля 2020

Области отправляются во время запроса на авторизацию, и с точки зрения сервера авторизации выполняются следующие действия:

  • код возвращается вызывающей стороне
  • код кэшируется с коротким временем жить (например, 1 минута)
  • области кэшируются
  • в некоторых потоках также кэшируются другие детали, такие как верификатор PKCE

Далее клиент делает Авторизацию Запрос на предоставление кода для обмена кода на токены, и Сервер авторизации выполняет следующие действия:

  • Поиск кода
  • Применение проверок проверки PKCE
  • Проверка URI перенаправления совпадает с исходным запросом
  • Поиск кэшированных областей
  • Поиск сведений о конфигурации клиента OAuth, таких как refre sh Время жизни токена
  • Создание токенов на основе вышеуказанные данные
  • Удаляет запись в кеше, поэтому тот же код не может быть обработан снова
  • Возвращает токены вызывающей стороне * 103 0 *

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...