尝试使用GraphServiceClient连接到OneDrive Personal时出现SPO许可证错误

时间:2018-11-25 11:21:18

标签: c# azure asp.net-web-api microsoft-graph

我正在构建一个ASP.NET Core Web API,我想从OneDrive个人驱动器(属于Office 365 Home帐户的一部分)返回数据。我的Microsoft帐户与OneDrive和Azure订阅相关联,如您从我的Microsoft帐户的服务页面上看到的那样:

enter image description here

我正在尝试了解将API作为服务进行身份验证以使其能够浏览OneDrive所需执行的步骤。

我首先使用Microsoft Application Registration Portal注册了我的应用,然后将应用的客户端ID分配给下面的ocrmypdf常量。然后,我添加了一个密码,并将值分配给了下面的ClientId。最后,我将Azure订阅的目录ID设置为下面的ClientPassword

TenantId

运行此代码可以成功验证并填充我的private const string TenantId = "[tenant-id]"; private const string ClientId = "[client-id]"; private const string ClientPassword = "[client-password]"; private const string ResourceURL = "https://graph.microsoft.com"; var AzureADAuthority = $"https://login.microsoftonline.com/{TenantId}"; var authenticationContext = new AuthenticationContext(AzureADAuthority, false); var credential = new ClientCredential(ClientId, ClientPassword); var authenticationResult = await authenticationContext.AcquireTokenAsync(ResourceURL, credential); var accessToken = authenticationResult.AccessToken; var graphserviceClient = new GraphServiceClient(new DelegateAuthenticationProvider((requestMessage) => { requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", accessToken); return Task.FromResult(0); })); var drives = await graphserviceClient.Drives.Request().GetAsync(); ,但是最后一行将引发以下accessToken

  

代码:BadRequest \ r \ n消息:租户没有SPO   许可证。\ r \ n \ r \ n内部错误\ r \ n

我在这里做什么错了?

0 个答案:

没有答案