Кто отвечает за редирект в OAuth - PullRequest
2 голосов
/ 23 января 2020

Как подробно работает перенаправление в OAuth с IdentityServer4? Вызывает идентификационный сервер напрямую по URL-адресу перенаправления (в случае обратной петли, скорее всего, это невозможно) или браузер получает ответ от сервера идентификации с параметром перенаправления в качестве параметра, а браузер выполняет перенаправление?

Есть ли известная проблема что ответ сервера идентификации может быть изменен для перенаправления на другой сайт? Так что можете украсть код аутентификации.

Ответы [ 2 ]

1 голос
/ 23 января 2020

Вместо того, чтобы перенаправлять на другую вредоносную конечную точку (которая предоставит код авторизации), более вероятна атака Подделка межсайтовых запросов (CSRF) . Для этого OAuth 2.0 spe c предоставляет вам параметр state ( подробнее об этом ).

Относительно возможности перенаправления на вредоносную конечную точку, чтобы это было готово,

  1. Ваш исходный запрос должен содержать URL-адрес перенаправления вредоносной конечной точки
  2. Сервер идентификации должен проверить этот URL-адрес и затем принять решение выполнить перенаправление

Второй пункт сложно использовать (но возможно). Потому что из определения OAuth 2.0 вы регистрируете URL перенаправления, когда регистрируете своего клиента

Сервер авторизации перенаправляет пользовательский агент на конечную точку перенаправления клиента, ранее установленную сервером авторизации во время процесс регистрации клиента или при выполнении запроса на авторизацию.

Таким образом, это означает, что ваш сервер идентификации был взломан ИЛИ ваша регистрация была использована. И вам придется беспокоиться о том, что пользователь будет перенаправлен на вредоносный веб-сайт, который может извлечь другие важные сведения, а не раскрывать код авторизации.

Это подчеркивается в спецификации в Манипуляция URI перенаправления кода авторизации

Злоумышленник может создать учетную запись на легитимном клиенте и инициировать процесс авторизации. Когда пользовательский агент злоумышленника отправляется на сервер авторизации для предоставления доступа, злоумышленник захватывает URI авторизации, предоставленный законным клиентом, и заменяет URI перенаправления клиента на URI, находящийся под контролем злоумышленника. Затем злоумышленник обманом заставляет жертву перейти по манипулируемой ссылке для авторизации доступа к законному клиенту.

1 голос
/ 23 января 2020

IdentityServer4 перенаправляет в браузер. Да, существует известная проблема, заключающаяся в том, что ответ сервера идентификации можно изменить для перенаправления на другой сайт. Есть также способы смягчения этих рисков. Вы можете использовать PKCE и nonce.

https://auth0.com/docs/flows/concepts/auth-code-pkce https://developer.okta.com/blog/2019/08/22/okta-authjs-pkce

...