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

从Azure AD获取用户详情时遇NoClassDefFoundError错误求助

解决Azure AD用户属性读取时的NoClassDefFoundError问题

问题根源

你遇到的java.lang.NoClassDefFoundError: com/microsoft/graph/httpcore/ICoreAuthenticationProvider错误,是因为依赖版本不兼容:microsoft-graph-auth 0.3.0版本仅适配Microsoft Graph SDK v4及以下版本,而你使用的microsoft-graph是v5.34.0,两者核心接口定义已发生变更,导致找不到指定类。

解决方案

方案1:改用Azure Identity认证(官方推荐)

Microsoft Graph SDK v5已弃用microsoft-graph-auth库,建议直接使用Azure Identity库处理认证逻辑。

更新Maven依赖

移除microsoft-graph-auth,添加Azure Identity依赖:

<dependency>
    <groupId>com.microsoft.graph</groupId>
    <artifactId>microsoft-graph</artifactId>
    <version>5.34.0</version>
</dependency>
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.12.0</version>
</dependency>

修改代码实现

使用UsernamePasswordCredential构建认证提供者:

import com.azure.identity.UsernamePasswordCredential;
import com.azure.identity.UsernamePasswordCredentialBuilder;
import com.microsoft.graph.models.User;
import com.microsoft.graph.requests.GraphServiceClient;
import java.util.Collections;

// 构建用户凭证
UsernamePasswordCredential credential = new UsernamePasswordCredentialBuilder()
        .clientId(clientId)
        .username(username)
        .password(password)
        .tenantId(tenantId)
        .build();

// 初始化Graph客户端
GraphServiceClient graphClient = GraphServiceClient
        .builder()
        .authenticationProvider(request -> {
            String accessToken = credential.getToken(Collections.singletonList("https://graph.microsoft.com/.default"))
                    .block()
                    .getToken();
            request.addHeader("Authorization", "Bearer " + accessToken);
            return request;
        })
        .buildClient();

// 读取当前用户属性
User user = graphClient.me().buildRequest().get();
System.out.println(user.companyName);

方案2:降级Graph SDK版本(不推荐)

如果坚持使用microsoft-graph-auth 0.3.0,需将Graph SDK降级到v4.x兼容版本:

<dependency>
    <groupId>com.microsoft.graph</groupId>
    <artifactId>microsoft-graph</artifactId>
    <version>4.14.0</version>
</dependency>
<dependency>
    <groupId>com.microsoft.graph</groupId>
    <artifactId>microsoft-graph-core</artifactId>
    <version>1.0.12</version>
</dependency>
<dependency>
    <groupId>com.microsoft.graph</groupId>
    <artifactId>microsoft-graph-auth</artifactId>
    <version>0.3.0</version>
</dependency>

额外注意事项

  • 用户名密码认证要求用户未启用多因素认证(MFA),否则会认证失败。
  • 应用注册需添加User.Read等必要API权限,并完成管理员授权(租户级权限场景)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 09:27:28