我在使用Microsoft图形API进行身份验证时遇到问题。我从不使用它。 我尝试编写负责从邮件下载附件的应用程序。
该程序将从平台安排,因此无法获得管理员同意(因此使用客户端凭据进行授权)。 我发现的每个代码示例都需要用户交互才能在Microsoft上签名以获取令牌。
我从公司的管理员那里收到以下物品: clientID,tenantID,应用程序名称,邮箱地址 和权限EWS.AccessAsUser.All(我是否应该请求Mail.Read权限?邮箱可以轻松地迁移到0365。如果我很了解EWS是否可以交换)
我想连接到邮箱并下载附件。 是否可以通过clientID,tenantID接收身份验证?有提供者吗?没有用户交互就可以获得令牌?
答案 0 :(得分:2)
您可以使用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 Permission
类型的Microsoft Graph
。添加该权限后,请不要忘记单击权限列表顶部的Grant admin consent for XXX
按钮(如果没有UI流程,这就是授予权限的方式)。
最后,EWS是与Microsoft Graph分开的API,在这种情况下,您不需要任何许可。