OpenID Connect и поток кода авторизации на стороне сервера

У меня есть несколько вопросов.

Поток кода авторизации и одноразовый номер

Нужно ли проверять одноразовый номер на стороне клиента при использовании потока кода авторизации? В общей реализации OAuth-провайдера процесс получения токена доступа из кода авторизации работает только один раз. Исходя из этого, кажется, что поток кода авторизации уже поддерживает повторную атаку без использования nonce?

Поток кода авторизации и идентификационный токен

Каковы преимущества использования кода авторизации в веб-приложениях? Идентификационный токен - это механизм аутентификации, а не авторизации. Я понимаю, что он используется для проверки того, какой поставщик OpenID аутентифицирует какого пользователя для какой ретрансляционной стороны.

Но в потоке кода авторизации,

  • OAuth 2.0 требует использования HTTPS. Исходя из этого, если проверка SSL-сертификата выполнена правильно, это будет действительным доказательством поставщика OpenID.
  • В общей реализации OAuth-провайдера при получении токена доступа из кода авторизации комбинация кода авторизации, идентификатора клиента и секрета проверяется ниже. Исходя из этого, он докажет, что выполняет процесс получения токена доступа от правильного клиента OAuth.
  • Указав параметр состояния для создания запроса авторизации и проверив его при получении токена доступа, он докажет, что получает токен доступа от правильного пользователя.

1 ответ

Решение

Я не авторитет в OpenID Connect, но вот мои два цента...

Поток кода авторизации и одноразовый номер

Нужно ли проверять одноразовый номер на стороне клиента при использовании потока кода авторизации?

В спецификации сказано, что если вы отправляете одноразовый номер в запросе на авторизацию, вы ДОЛЖНЫ проверить его (см. "Nonce" в http://openid.net/specs/openid-connect-core-1_0.html). Однако отправка одноразового номера не требуется для потока кода авторизации, так что вы можете вообще его исключить. В случае потока кода авторизации, я думаю, вы правы в том, что атака повторного воспроизведения смягчается кодом, что делает ненужным одноразовый номер. Однако, поскольку можно использовать неявный / гибридный поток, где требуется одноразовый номер, логика проверки id_token также может быть такой же: "Если значение одноразового номера было отправлено в запросе на аутентификацию, требование одноразового номера ДОЛЖНО присутствовать, и его значение проверено

Поток кода авторизации и идентификационный токен

Каковы преимущества использования кода авторизации в веб-приложениях?

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

Вот полезная ссылка о выборе правильного потока для правильного сценария

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