Spring security oauth2 не проходит проверку издателя через 30 секунд - PullRequest
0 голосов
/ 29 октября 2018

В реактивном сервисе Spring Webflux у меня есть конечные точки, настроенные для защиты сервером ресурсов OAuth2. Когда я впервые запускаю сервер, он корректно проверяет токены Bearer, но примерно через 30 секунд те же самые запросы начинают сбой со следующей ошибкой:

error="invalid_token"
error_description="This iss claim is not equal to the configured issuer"
error_uri="https://tools.ietf.org/html/rfc6750#section-3.1"

Я проверил, что токен действителен и что утверждение iss похоже на то, что настроено в spring.security.oauth2.resourceserver.jwt.issuer-uri. Если бы это не было настроено должным образом, я не получил бы действительные запросы.

При ближайшем рассмотрении я обнаружил, что ошибка связана с URL сравнением заявки iss и ожидаемого URL в том, что InetAddress.getAddress() совпадает в течение первых 30 секунд, но затем не совпадает. При этом используется конечная точка поставщика Azure AD https://sts.windows.net/{{tenantId}}/, и я убедился, что URL строки совпадают, а не внутренние адреса. Что может быть причиной, и как я могу проверить токены с действующими эмитентами через первые 30 секунд? Спасибо.

Для справки, вот мой SecurityWebFilterChain:

@Bean
public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
    return http
            .csrf().disable()
            .authorizeExchange().anyExchange().authenticated()
            .and().oauth2ResourceServer().jwt().and()
            .and().build();
}

Включенные реализации Gradle:

org.springframework.boot:spring-boot-starter-security:2.1.0.RC1
org.springframework.boot:spring-boot-starter-webflux:2.1.0.RC1
org.springframework.security:spring-security-oauth2-resource-server:5.1.1.RELEASE
org.springframework.security:spring-security-oauth2-jose:5.1.1.RELEASE

1 Ответ

0 голосов
/ 14 ноября 2018

Похоже, что это было введено как проблема #6073 в весенней безопасности и было решено в c70b65c. В настоящее время планируется разрешить в 5.1.2.RELEASE или 5.2.0.M1.

Полученное решение изменило URL-адрес на строку, что позволило сделать проверку на равенство более надежной в дополнение к удалению блокирующего вызова поиска DNS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...