Если поток авторизации использует как секрет, так и PKCE для веб-приложения - PullRequest
1 голос
/ 27 июня 2019

В настоящее время я смотрю на различные потоки OIDC и обнаружил поток AuthorizationCode и AuthorizationCode с помощью PKCE.

Практически во всех местах, которые я обнаружил, говорилось, что PKCE является заменой секрета Клиента и должен использоваться родными приложениями.

Теперь мне интересно, по какой причине не нужно использовать секрет клиента и PKCE, это будет полезно или это просто не нужно?

Я использую протестированный мной сервер Openiddict, который проверяет как секрет клиента, так и верификатор кода. Но везде, где я читаю, там просто написано PKCE и нет (статического) секрета.

1 Ответ

1 голос
/ 03 июля 2019

Почти во всех местах, которые я обнаружил, говорилось, что PKCE является заменой секрета Клиента и должен использоваться нативными приложениями.

Определенно нет.PKCE и аутентификация клиента - это две дополнительные, но совершенно разные меры:

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

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

В наши дни мы также склонны использовать PKCE в конфиденциальных серверных приложениях для предотвращения утечек кода авторизации, даже если он изначально был разработан для общедоступных приложений, таких как мобильные или настольные приложения.В этом случае вам определенно следует объединить его с аутентификацией клиента (т.е. проверкой секретности клиента).

...