使用OneDrive for Business进行身份验证时出现问题

时间:2016-10-24 19:35:33

标签: onedrive

我正在测试OneDrive SDK .NET示例应用here。但是我不清楚我需要分别与AdalAuthenticationProvider和OneDriveClient类一起使用的AadReturnUrl和AadTargetUrl常量需要什么值。该项目的GitHub自述文件引用了此page,但该页面也不清楚。

另外:对于本机客户端应用程序,在Azure AD中配置应用程序时,您对重定向URI使用了什么值?此值是否与上述所需的URL相关?

编辑:我尝试了第一条评论中的建议,并从FormBrowser.SignIn中的此代码中收到以下错误(其中AadReturnURL = http://myactualdomain.onmicrosoft.com;这是一个原生应用,并且我认为如果我没有办法显示网页,这可能是一个“虚拟”URL:

var adalAuthProvider = new AdalAuthenticationProvider(FormBrowser.AadClientId, FormBrowser.AadReturnUrl);
this.oneDriveClient = new OneDriveClient(FormBrowser.AadTargetUrl + "/_api/v2.0", adalAuthProvider);
authTask = adalAuthProvider.AuthenticateUserAsync(FormBrowser.AadTargetUrl);

抛出异常:Microsoft.IdentityModel.Clients.ActiveDirectory.dll中的“Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException” Microsoft.IdentityModel.Clients.ActiveDirectory错误:4:10/24/2016 22:05:41:e9c2c5cd-1750-4d0f-b3a2-f373f7de309a - d__0:Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException:AADSTS50001:名为{的应用程序在名为myactualdomain.onmicrosoft.com的租户中找不到{3}}。如果租户的管理员尚未安装应用程序或租户中的任何用户同意该应用程序,则会发生这种情况。您可能已将您的身份验证请求发送给错误的租户。 迹点ID:16192303-40e9-4944-b376-d25d4ff52b73 相关ID:e9c2c5cd-1750-4d0f-b3a2-f373f7de309a 时间戳:2016-10-24 22:05:40Z    在Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenInteractiveHandler.VerifyAuthorizationResult()    在Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenInteractiveHandler.PreTokenRequest()    在Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenHandlerBase.d__0.MoveNext()     ErrorCode:invalid_resource     StatusCode:0

OneDriveApiBrowser.vshost.exe错误:0:10/24/2016 22:05:41:e9c2c5cd-1750-4d0f-b3a2-f373f7de309a - d__0:Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException:AADSTS50001:名为的应用程序在名为myactualdomain.onmicrosoft.com的租户中找不到https://myactualdomain-my.sharepoint.com/_api/v2.0。如果租户的管理员尚未安装应用程序或租户中的任何用户同意该应用程序,则会发生这种情况。您可能已将您的身份验证请求发送给错误的租户。 迹点ID:16192303-40e9-4944-b376-d25d4ff52b73 相关ID:e9c2c5cd-1750-4d0f-b3a2-f373f7de309a 时间戳:2016-10-24 22:05:40Z    在Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenInteractiveHandler.VerifyAuthorizationResult()    在Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenInteractiveHandler.PreTokenRequest()    在Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenHandlerBase.d__0.MoveNext()     ErrorCode:invalid_resource     StatusCode:0

1 个答案:

答案 0 :(得分:0)

AadTargetUrl应该是您服务的网址。例如,https://contoso-my.sharepoint.com/_api/v2.0/将是Contoso租户上OneDrive for Business的URL。您可以使用not supported获取有关获取目标网址的更多信息。

AadReturnUrl是您在Azure管理门户中配置的重定向URL(正如您所推测的那样)。对于本地应用程序来说,它通常类似http://localhost:8080,但对于Web应用程序可能会有所不同。您可以在Discovery Service

中获取有关该信息的更多信息