OIDC, URL перенаправления и подстановочный знак - PullRequest
0 голосов
/ 10 октября 2018

Я считаю, 3.1.2.1.Запрос аутентификации раздел спецификации говорит, что мы не можем, но я нахожу это настолько невероятным, что я подумал, что дважды проверю, задав здесь вопрос.

Есть ли способ перенаправить моих пользователей на любой URL моего доменного имени после того, как они успешно вошли в систему через провайдера OIDC?

Мой вариант использования:

  1. Пользователь получает доступ к моему приложению и бродит вокруг
  2. Она находит интересные вещи и хочет взаимодействовать, например,чтобы прокомментировать сообщение, которое она нашла интересным
  3. Приложение приглашает ее войти в систему, и она перенаправляется к провайдеру OIDC

Поскольку я не знаю заранее, URL-адрес моего пользователя будетзайдя на шаг 3, я бы хотел, чтобы ее перенаправили туда, каким бы ни был этот URL.

Это выполнимо?Я правильно понимаю, что спецификация говорит, что это не так?Если в спецификации указано no , знаете ли вы какой-нибудь обходной путь, который бы позволил этому пользователю работать?

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете использовать параметр state для достижения этого без каких-либо отклонений от спецификации.

Параметр state связан со страницей / действием, выполняемым на стороне клиента.

  1. Пользователь получает доступ к моему приложению и бродит вокруг
  2. Она находит интересные вещи и хочет взаимодействовать, например, комментировать сообщение, которое она считает интересным
  3. Приложение генерируетзначение состояния и связать это значение с взаимодействием для выполнения
  4. Приложение приглашает ее войти в систему, и она перенаправляется поставщику OIDC с параметром состояния в строке запроса
  5. После согласия пользовательперенаправляется на обратный вызов приложения
  6. Получить состояние, которое является частью запроса / фрагмента (зависит от режима / типа ответа).
  7. На основе значения состояния перенаправить пользователя наожидаемая страница / действие.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...