Должны ли серверы ресурсов OAuth2 использовать базовую аутентификацию или аутентификацию токена Bearer при взаимодействии с сервером авторизации? - PullRequest
0 голосов
/ 08 мая 2019

Для отдельных серверов авторизации и ресурсов spring-security-oauth2:

Я ожидал, что конечная точка /oauth/check_token сервера авторизации примет токен Bearer от сервера ресурсов в заголовке Authorization, но он принимает только Basic auth. Примечание. Я имею в виду токен аутентификации запроса, а не токен, который необходимо проверить.

Я думаю, что OAuth2AuthenticationProcessingFilter отвечает за извлечение и проверку Authorization: Bearer ..., но, основываясь на javadoc, кажется, что он используется только серверами ресурсов для проверки запросов от пользователей или других клиентов.

Должны ли серверы ресурсов всегда обеспечивать аутентификацию Basic при взаимодействии с сервером авторизации? Какая лучшая практика? Если токены Bearer приемлемы, необходимо ли настроить сервер авторизации в качестве сервера ресурсов через @EnableResourceServer, чтобы получить эту функцию?

1 Ответ

0 голосов
/ 08 мая 2019

Примечание от Javadoc для CheckTokenEndpoint:

Контроллер, который декодирует токены доступа для клиентов, которые не могут этого сделать (или когда используются непрозрачные значения токенов).

Так как клиент аутентифицируется на сервере авторизации с базовой аутентификацией для предоставления доступа, для конечной точки /oauth/check_token имеет смысл также требовать базовой аутентификации.

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

Если ему действительно нужно взаимодействовать с сервером авторизации, возможно, ему нужно получить его открытый ключ, если вы используете JWT. Но не было бы никакой реальной пользы в защите этой конечной точки, так как это открытый ключ по причине. Опять же, это может произойти при запуске сервера ресурсов, и, конечно, не для каждого полученного токена.

...