Microsoft Graph Api-在Java中没有用户的情况下获得访问权限

问题描述 投票:0回答:1

我在使用Microsoft图形API进行身份验证时遇到问题。我从不使用它。我尝试编写负责从邮件下载附件的应用程序。

该程序将从平台安排,因此无法获得管理员同意(因此使用客户端凭据进行授权)。我发现的每个代码示例都需要用户交互才能在Microsoft上签名以获取令牌。

我从公司的管理员那收到以下项目:clientID,tenantID,应用程序名称,邮箱地址和权限EWS.AccessAsUser.All(我是否应该请求Mail.Read权限?邮箱可以轻松迁移到0365。如果我很好地了解EWS是否可以交换)

我想连接到邮箱并下载附件。是否可以通过clientID,tenantID接收身份验证?有提供者吗?没有用户交互就可以获得令牌?

java microsoft-graph microsoft-graph-mail
1个回答
0
投票

您可以通过使用Microsoft Graph Java SDK获得仅应用程序的令牌。

ClientCredentialProvider authProvider = new ClientCredentialProvider(
            this.clientId,
            this.scopes,
            this.clientSecret,
            this.tenantId,
            this.endpoint);
IGraphServiceClient graphClient = GraphServiceClient
            .builder()
            .authenticationProvider(authProvider)
            .buildClient();

您可以在java spring webhook sample中找到完整的示例。但是,由于身份验证SDK为described here,因此需要注意一点。

您需要请求的许可权是应用程序注册门户中Mail.Read下类型为Application PermissionMicrosoft Graph。添加该权限后,请不要忘记单击权限列表顶部的Grant admin consent for XXX按钮(如果没有UI流程,这是授予权限的方式。)>

最后,EWS是与Microsoft Graph分离的API,在这种情况下,您不需要任何许可。

© www.soinside.com 2019 - 2024. All rights reserved.