You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot集成Azure AD OAuth2配置异常排查求助

Spring Boot集成Azure Active Directory OAuth2认证配置问题

尝试配置Spring Boot应用集成Azure Active Directory的OAuth2认证,遇到以下问题:

  1. Spring Boot似乎未读取application.yml文件,或配置存在错误,启动时抛出核心错误:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.security.oauth2.client.registration.ClientRegistrationRepository' available

  1. 若在配置类中手动添加ClientRegistrationRepository Bean,Tomcat服务器可成功启动,但认证端点不符合预期——实际跳转端点为/oauth2/authorization/azure,预期为/login/oauth2/code/。

使用版本信息:

  • Spring 5.3.20
  • Spring Boot 2.7.10
  • Spring Security 5.6.9.Final

application.yml配置内容

azure:
  activedirectory:
    client-id: {CLIENT ID}
    client-secret: {CLIENT SECRET}
    tenant-id: {TENANT ID}
    authorization-clients:
      facility-inventory:
        scopes: openid, profile, user, offline_access
        authorization-grant-type: client_credentials
spring:
  security:
    oauth2:
      client:
        provider:          
          azure-active-directory:
            issuer-uri: https://login.microsoftonline.com/{ORG}/oauth2/v2.0 
        registration:
          azure:
            provider: azure-active-directory
            client-id: {CLIENT ID}
            client-secret: {CLIENT SECRET}
            scope: openid, profile, user, offline_access
            authorization-uri: /login/oauth2/authorize/
            redirect-uri: /login/oauth2/code/
            authorization-grant-type: client_credentials
            pre-established-redirect-uri: {Base URL}/login/oauth2/code/
            registered-redirect-uri: {Base URL}/login/oauth2/code
            use-current-uri: false

自定义ClientRegistrationRepository Bean代码

@Bean
public ClientRegistrationRepository clientRegistrationRepository() {
        return new InMemoryClientRegistrationRepository(
            ClientRegistration
                .withRegistrationId("azure")
                .clientId("{CLIENT ID}")
                .clientSecret("CLIENT SECRET")
                .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC)
                .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
                .redirectUri("/login/oauth2/code/*")
                .scope("openid", "profile", "email", "address", "phone")
                .authorizationUri("https://login.microsoftonline.com/{ORG}/oauth2/v2.0")
                .tokenUri("https://login.microsoftonline.com/{ORG}/oauth2/v2.0/token")
                .userNameAttributeName(IdTokenClaimNames.SUB)
                .clientName("Valuations-Mgmt-Tool_qa_ac_client")
                .build()
            );
    }

内容的提问来源于stack exchange,提问作者sparks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 05:05:20