1

After signing in to the Azure Active Directory I get a 401 back from the POST to https://login.microsoftonline.com/common/oauth2/token.

I registered my application in my AD and gave it the permissions user.read and .... I changed the manifest and set oauth2AllowImplicitFlow to true.

Tenant id, client id and client secret are correctly filled in. I tried to change them to double check and changed it to the correct ones.

The web security config is the following, this is from the Microsoft/azure-spring-boot repository.

@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)
    }
}

If I clone the sample and fill in the required configuration in application.properties everything works fine. If I start a brand new project, add the security, web, azure active directory, spring-security-oauth2-client and spring-security-oauth2-jose I get the 401.

The versions in use are the following

Spring Boot 2.1.0.RELEASE

Azure Spring Boot Version 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

After spitting through the debug logs the only difference I can see between the sample and the fresh project is that the HTTP Basic auth is different. The old version URL encodes the password (it contains non-url-safe characters) and then base64 encodes it as a whole base64(clientId:urlEncode(clientSecret)). The new version does not do this, can this be the actual problem? If so, how can I solve it since it's a change in the library then.

Murf
  • 1,661
  • 11
  • 18
  • 1
    For now the sample you referenced is depends on spring boot 2.0.x, Can you have a try from your fresh project ? And you may add the details of the difference between URL. – Incarnation P. Lee Dec 13 '18 at 02:04
  • This solved my problem for now. The auto configuration didn't seem to work (or works differently) in 2.1.0+... – Gie Spaepen Jan 22 '19 at 09:17

0 Answers0