Учетные данные пароля владельца ресурса. Предоставление не является правильным типом предоставления для вашего приложения, см. RFC 6749 :
4.3.Предоставление учетных данных пароля владельца ресурса
Тип предоставления учетных данных пароля владельца ресурса подходит в тех случаях, когда владелец ресурса имеет доверительные отношения с клиентом, такие как операционная система устройства или приложение с высокими привилегиями.Сервер авторизации должен проявлять особую осторожность при включении этого типа предоставления и разрешать его, только когда другие потоки нежизнеспособны.
Вы можете использовать неявное предоставление, см. RFC 6749 :
4.2.Неявное предоставление
Тип неявного предоставления используется для получения маркеров доступа (он не поддерживает выдачу маркеров обновления) и оптимизирован для общедоступных клиентов, для которых известно, что они работают с определенным URI перенаправления.Эти клиенты обычно реализуются в браузере с использованием языка сценариев, такого как JavaScript.
[...]
Тип неявного предоставления не включает проверку подлинности клиента и зависит от наличиявладелец ресурса и регистрация перенаправления URI.Поскольку токен доступа закодирован в URI перенаправления, он может быть предоставлен владельцу ресурса и другим приложениям, находящимся на одном устройстве.
, но некоторые серверы авторизации не поддерживают его из-за безопасностипроблемы.Spring Security OAuth2 поддерживает его.
Вы также можете использовать код авторизации, хотя он оптимизирован для конфиденциальных клиентов, см. RFC 6749 :
4.1.Предоставление кода авторизации
Тип предоставления кода авторизации используется как для получения токенов доступа, так и для обновления токенов, и оптимизирован для конфиденциальных клиентов.
[...]
Если тип клиента является конфиденциальным или клиенту были выданы учетные данные клиента (или ему были назначены другие требования к аутентификации), клиент ДОЛЖЕН пройти аутентификацию на сервере авторизации, как описано в разделе 3.2.1.
, но некоторая авторизациясерверы не поддерживают его из-за проблем безопасности.Стандартная конфигурация Spring Security OAuth2 требует аутентификации клиента.
Другим способом было бы предоставление кода авторизации с PKCE, см. RFC 7636 :
Ключ подтверждения для обмена кодами публичными клиентами OAuth
Аннотация
Публичные клиенты OAuth 2.0, использующие предоставление кода авторизации, подвержены атаке перехвата кода авторизации.В этой спецификации описывается атака, а также методика противодействия угрозе путем использования Proof Key для обмена кодами (PKCE, произносится как «pixy»).
, но Spring Security не поддерживает егосм. 4943 .