Какова цель неявного режима в Spring open id connect?

В настоящее время я использую Authorisation Code Flow openid connect весной, который является режимом по умолчанию. В этом режиме используется тип ответа code, и я получаю access_token и id_token. Так что здесь все в порядке.

Но когда я пытаюсь использовать Implicit Flow, устанавливая authorizationGrantType=implicit, используется тип ответа token, и я получаю только access_token. Это отражает Запрос авторизации - часть спецификации OAuth 2.0. Более того, значение token для типа ответа, похоже, не используется Спецификация OpenId Connect: Какова цель неявного режима в Spring open id connect?

Итак, какова цель неявного режима в Spring open id connect?

Какую версию Spring вы используете? Кроме того, не могли бы вы дать фрагмент кода?

Kavindu Dodanduwa 24.05.2018 06:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
220
1

Ответы 1

NOTE: While OAuth 2.0 also defines the token Response Type value for the Implicit Flow, OpenID Connect does not use this Response Type, since no ID Token would be returned.

Как указано в спецификации OpenID Connect, response_type = токен не является допустимым типом ответа для OpenID Connect. Итак, вы наблюдаете возврат к OAuth 2.0 и, следовательно, получение токена доступа.

Я не исхожу из фона Spring, но вы должны иметь возможность определять / настраивать соответствующие значения response_type из своего кода. Если это не так, вам просто повезло с наблюдением за потоком кода авторизации. В зависимости от конфигурации / предпочтений сервера авторизации он может отправлять токен идентификатора. Например, Azure AD отправляет токен идентификатора для Предоставление кода OAuth 2.0

В Spring безопасности невозможно определить или настроить response_type. Тип ответа определяется параметром authorizationGrantType, который может принимать только два значения: authorization_code или implicit. В первом случае - response_type=code, а во втором - response_type=token. Мне кажется невероятным (забавным?), Что Azure AD возвращает id_token в гранте кода OAut 2.0. Действительно, id_token никогда не появляется в Спецификация OAut 2.0. Не могу представить, что бесперебойная работа этого потока зависит от взлома провайдера.

Fabrice 24.05.2018 18:06

@Fabrice Я наткнулся на это - stackoverflow.com/questions/41208178/… может быть вам поможет. Что ж, независимо от спецификаций, на самом деле в реальном мире реализации OpenID Connect и OAuth 2 различаются от реализации к реализации.

Kavindu Dodanduwa 25.05.2018 10:21

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