В OIDC есть несколько потоков аутентификации; Неявный поток кода и поток кода аутентификации являются двумя основными, доступными для SPA. Последние электронные письма в список рассылки ietf, указывающие, что поток кода Auth должен быть предпочтительнее неявного потока из-за проблем безопасности, связанных с отображением токенов доступа в истории браузера и / или файлах журналов (если выполняется какое-либо завершение / проверка SSL / и т. д.).
Существуют ли какие-либо официальные документы или RFC, которые поддерживают один поток над другим? Есть ли сегодня принятый в отрасли подход?
Это было опубликовано в Программное обеспечениеИнжиниринг, поскольку это довольно спорная тема. Я не ищу мнений; а скорее для официальной справки / технического документа / справочных материалов, которые подтверждают утверждение о лучшей безопасности / реализации. Мне не удалось их найти и, следовательно, я не уверен, какой метод использовать.
@KavinduDodanduwa Я не вижу причин, по которым JavaScript Lib не может выполнить вызов ajax для возмещения токенов доступа / обновления с потоком кода аутентификации. Esp в случае СПА. При этом, безопасно ли иметь токен обновления в SPA? Я не могу найти никакой документации по этому поводу.
Действительно могут. Но разве этот JS не работает в браузере? Разве конечный пользователь не сможет увидеть данные запроса и ответа? Этого следует избегать. Что ж, OAuth не предоставляет токены обновления для неявного потока.! Это предусмотрено спецификацией
Я понимаю ваше беспокойство. Этот тип шаблона также должен поддерживаться поставщиком OIDC. Я не думаю, что вся реализация позволяет отправлять сообщения в конечную точку Token без учетных данных клиента (с использованием только кода и перенаправления uri). Однако есть хорошая запись об этом oauth.com/oauth2-servers/single-page-apps
Используйте поток кода с PKCE, см. мой ответ о программной инженерии





This has been cross-posted to SoftwareEngineering as it is somewhat of a debatable topic. I am not looking for opinions; but rather for official help/whitepaper/reference material that would support the claim of better security/implementation. I have been unable to find them, and consequently am not sure which method to use.
В конце 2018 года произошли некоторые подвижки в отношении общедоступных клиентов (SPA). Сейчас есть два проекта передовых практик, оба из которых предлагают использовать поток кода аутентификации вместо неявного.
https://tools.ietf.org/html/draft-ietf-oauth-security-topics-11
https://tools.ietf.org/html/draft-ietf-oauth-browser-based-apps-00
Спасибо за понимание / обновление. На самом деле это дает дополнительную пищу для размышлений и немного лучше соответствует моим ожиданиям.
Неявный поток разработан для SPA. Авт. поток кода требует обратного вызова на сервер авторизации. SPA не может работать так, как работает в браузере. Но если SPA может использовать бэкэнд (сервер) для внутренней связи, тогда можно использовать auth. поток кода для SPA также. Я не знаю ни одного whitepapaer, упоминающего об этом в RFC.