Authentication Microsoft Graph API V3-标识提供程序

Authentication Microsoft Graph API V3-标识提供程序,authentication,microsoft-graph-api,Authentication,Microsoft Graph Api,有没有一种方法可以将V3 Microsoft Graph Java SDK与授权头一起使用?在V1和V2中,我有以下内容: IAuthenticationProvider authenticationProvider = new IAuthenticationProvider() { @Override public void authenticateRequest(IHttpRequest request) { request.addHeader(AUTHORI

有没有一种方法可以将V3 Microsoft Graph Java SDK与授权头一起使用?在V1和V2中,我有以下内容:

IAuthenticationProvider authenticationProvider = new IAuthenticationProvider() {
    @Override
    public void authenticateRequest(IHttpRequest request) {
        request.addHeader(AUTHORIZATION_HEADER_NAME, OAUTH_BEARER_PREFIX + accessToken);
    }
};
IGraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider(authenticationProvider).buildClient();
但是使用V3 SDK和ICoreAuthenticationProvider,我可以创建的唯一客户端是OKHTTP,而不是IGraphServiceClient,我丢失了所有的“Microsoft API”(我得到一个字符串响应,需要“解组”…)


谢谢,

Microsoft Graph Java SDK现在利用它来改善身份验证体验。要与Microsoft Identity platform集成,请使用Microsoft Java身份验证库()。此库支持并改进了配置体验。要升级应用程序,请执行以下操作:

  • 删除对microsoft graph auth的任何依赖项,并将其替换为MSAL4J中提供的一个提供程序
  • 重新考虑是否需要自定义身份验证提供程序(实施
    iaauthenticationprovider
    ICoreAuthenticationProvider
    ),这些提供程序可能是项目的一部分,并尽可能使用azure identity中提供的提供程序
例如,在您的案例中,如果您使用的是客户机凭据流,您将使用以下内容替换上面的示例:

final ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder()
.clientId(CLIENT_ID)
.clientSecret(CLIENT_SECRET)
.tenantId(TENANT_GUID)
.build();
final TokenCredentialAuthProvider authProvider = new TokenCredentialAuthProvider(SCOPES, clientSecretCredential);
final GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider(authProvider).buildClient();
请参阅此处以获取更多示例

让我知道这是否有帮助,如果你有进一步的问题