Является ли наличие полного запроса OpenIddict в ReturnUrl для моей страницы входа в систему стандартной и безопасной практикой? .NET 8.0

Как следует из названия, я реализую поток авторизации в своем приложении Angular/.NET API с помощью PKCE. Мое угловое приложение инициирует поток аутентификации, который, в свою очередь, направляет пользователя на мою страницу входа в систему, размещенную в моем API.

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

Я заменил некоторые значения, пытаясь уменьшить размер URL-адреса.

https://localhost:7208/Account/Login?ReturnUrl=%2Fconnect%2Fauthorize%3Fclient_id%3Dtest_client%26redirect_uri%3Dhttp%253A%252F%252Flocalhost%253A4200%252Faccount%252Fauth_callback%26response_type%3Dcode%26scope%3Dopen id%2520profile%2520offline_access %26state%state_value%26code_challenge%full_challenge_code%26code_challenge_method%3DS256%26response_mode%3Dquery

Является ли это стандартной практикой для такого рода аутентификации и безопасно ли это?

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

Стоит ли изучать 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
0
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Короче говоря, да, это стандарт для сервера безопасных токенов (STS). Я не помню, касается ли это OAuth или OIDC, это одно или другое. Чтобы разобрать это:

  1. Ваш ReturnUrl указывает на /connect/authorize. Это аутентифицированная конечная точка. Это похоже на веб-сайты, которые перенаправляют вас на страницу входа в систему для доступа к ней. После входа в систему эта конечная точка обрабатывает состояние аутентификации пользователя, чтобы генерировать токены, которые запрашивает клиентское приложение. (Это более сложно в зависимости от того, какой поток грантов вы используете)
  2. Идентификатор клиента передается как способ для клиента уведомить сервер, какое приложение пытается аутентифицироваться.
  3. URI перенаправления — это URL-адрес обратного вызова клиентского приложения после завершения процесса OIDC-сервером. Это нормально, поскольку клиент должен предоставить свой обратный вызов, И сервер должен зарегистрировать его как действительный обратный URL-адрес, чтобы он мог принять запрос.
  4. Области — это разрешения, которые запрашивает клиент. Иногда они указаны в конфигурации openid на сервере, но их также необходимо зарегистрировать для приложения на стороне сервера.
  5. Остальные параметры настраиваются для того, как должен обрабатываться вызов сервера.

Подводя итог, да, это все нормально. Это настолько безопасно, насколько это возможно.

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