OpenID Connect: неявный поток или поток кода аутентификации для SPA?

В OIDC есть несколько потоков аутентификации; Неявный поток кода и поток кода аутентификации являются двумя основными, доступными для SPA. Последние электронные письма в список рассылки ietf, указывающие, что поток кода Auth должен быть предпочтительнее неявного потока из-за проблем безопасности, связанных с отображением токенов доступа в истории браузера и / или файлах журналов (если выполняется какое-либо завершение / проверка SSL / и т. д.).

Существуют ли какие-либо официальные документы или RFC, которые поддерживают один поток над другим? Есть ли сегодня принятый в отрасли подход?

Это было опубликовано в Программное обеспечениеИнжиниринг, поскольку это довольно спорная тема. Я не ищу мнений; а скорее для официальной справки / технического документа / справочных материалов, которые подтверждают утверждение о лучшей безопасности / реализации. Мне не удалось их найти и, следовательно, я не уверен, какой метод использовать.

Неявный поток разработан для SPA. Авт. поток кода требует обратного вызова на сервер авторизации. SPA не может работать так, как работает в браузере. Но если SPA может использовать бэкэнд (сервер) для внутренней связи, тогда можно использовать auth. поток кода для SPA также. Я не знаю ни одного whitepapaer, упоминающего об этом в RFC.

Kavindu Dodanduwa 21.09.2018 05:34

@KavinduDodanduwa Я не вижу причин, по которым JavaScript Lib не может выполнить вызов ajax для возмещения токенов доступа / обновления с потоком кода аутентификации. Esp в случае СПА. При этом, безопасно ли иметь токен обновления в SPA? Я не могу найти никакой документации по этому поводу.

Eric B. 21.09.2018 15:33

Действительно могут. Но разве этот JS не работает в браузере? Разве конечный пользователь не сможет увидеть данные запроса и ответа? Этого следует избегать. Что ж, OAuth не предоставляет токены обновления для неявного потока.! Это предусмотрено спецификацией

Kavindu Dodanduwa 21.09.2018 20:04

Я понимаю ваше беспокойство. Этот тип шаблона также должен поддерживаться поставщиком OIDC. Я не думаю, что вся реализация позволяет отправлять сообщения в конечную точку Token без учетных данных клиента (с использованием только кода и перенаправления uri). Однако есть хорошая запись об этом oauth.com/oauth2-servers/single-page-apps

Karthik 07.10.2018 23:02

Используйте поток кода с PKCE, см. мой ответ о программной инженерии

Justin 17.01.2020 00:13
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
4
5
1 359
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Спасибо за понимание / обновление. На самом деле это дает дополнительную пищу для размышлений и немного лучше соответствует моим ожиданиям.

Eric B. 21.01.2020 16:03

Другие вопросы по теме