Oauth2 текстовые учетные данные в запросе POST? - PullRequest
0 голосов
/ 21 октября 2018

Итак, я пробую Spring Security, используя OAuth2 в Spring Boot 2.

Я основал этот сайт в качестве моей ссылки:
https://dzone.com/articles/secure-spring-rest-with-spring-security-and-oauth2

После настройки сервера авторизациивверх, из него можно получить токены, используя конечную точку http://localhost:8080/oauth/token, передав запрос POST.

Что меня раздражает, так это то, что запрос POST должен содержать мое имя пользователя и пароль в виде простого текста

POST /oauth/token HTTP/1.1
Host: localhost:8080
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="grant_type"

password
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="username"

admin
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="password"

password
------WebKitFormBoundary7MA4YWxkTrZu0gW--

Разве это не очень большая угроза безопасности?Разве каждый маршрутизатор на пути от клиента к серверу сможет видеть содержимое тела POST?

Теперь, чтобы решить эту проблему, предположим, что я использую алгоритм симметричного шифрования на стороне клиента в javascript для шифрования пароля.Поскольку все клиенты получат одинаковый алгоритм шифрования, маршрутизаторы на этом пути могут симметрично декодировать мой пароль.Что не достаточно хорошо.

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

1 Ответ

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

Вы должны использовать HTTPS ( TLS ), см. Среда авторизации OAuth 2.0

Конечная точка токена

[...]
Поскольку запросы к конечной точке токена приводят к передаче открытого текста (в HTTP-запросе и ответе), сервер авторизации ДОЛЖЕН требовать использования TLS, как описано в разделе 1.6, когдаотправка запросов к конечной точке токена.

Если реализация сервера авторизации разрешает незащищенный обмен данными, это не соответствует спецификации OAuth2.

...