Spring Security + AAD: invalid_token_response - PullRequest
       22

Spring Security + AAD: invalid_token_response

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

После входа в Azure Active Directory я возвращаю 401 из POST в https://login.microsoftonline.com/common/oauth2/token.

Я зарегистрировал свое приложение в AD и дал ему разрешения user.read и ....Я изменил манифест и установил oauth2AllowImplicitFlow на true.

Идентификатор клиента, идентификатор клиента и секрет клиента правильно заполнены. Я попытался изменить их на двойную проверку и изменил на правильные.

Конфигурация веб-безопасности следующая, это из Microsoft / azure-spring-boot репозитория.

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
class AADOAuth2LoginSecurityConfig(private val oidcUserService: OAuth2UserService<OidcUserRequest, OidcUser>) : WebSecurityConfigurerAdapter() {

    override fun configure(http: HttpSecurity) {
        http
                .authorizeRequests()
                .anyRequest().authenticated()
                .and()
                .oauth2Login()

                .userInfoEndpoint()
                .oidcUserService(oidcUserService)
    }
}

Если я клонирую образец и заполняютребуемая конфигурация в application.properties все отлично работает.Если я начну новый проект, добавлю безопасность, Интернет, Azure Active Directory, Spring-Security-Oauth2-клиента и Spring-Security-OAuth2-Jose я получаю 401.

Используются версииследующий

Spring Boot 2.1.0.RELEASE

Версия Azure Spring Boot 2.0.7

application.properties

spring.security.oauth2.client.registration.azure.client-id=xxxxxx
spring.security.oauth2.client.registration.azure.client-secret=xxxxxx
azure.activedirectory.tenant-id=xxxxxx
azure.activedirectory.active-directory-groups=Users

После пролистывания журналов отладки единственное различие, которое я вижу между примером и новым проектом, состоит в том, что аутентификация HTTP Basic отличается.URL старой версии кодирует пароль (он содержит небезопасные символы), а затем base64 кодирует его как целое base64(clientId:urlEncode(clientSecret)).Новая версия не делает это, может ли это быть реальной проблемой?Если так, как я могу решить это, так как это изменение в библиотеке.

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