【发布时间】:2017-10-27 11:58:37
【问题描述】:
编辑:
我已添加“id_token”,但仍收到“未授权”响应。 这是我的登录代码:
PublicClientApplication myApp = new PublicClientApplication("My-AppID-From-App-Registration-Portal");
string[] scopes = new string[] { "User.Read" };
AuthenticationResult authenticationResult = await myApp.AcquireTokenAsync(scopes).ConfigureAwait(false);
JObject payload = new JObject();
payload["access_token"] = authenticationResult.AccessToken;
payload["id_token"] = authenticationResult.IdToken;
user = await MobileService.LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount, payload);
原帖:
是否可以使用从 Microsoft Graph 检索到的令牌对应用服务后端进行身份验证? 我已经尝试使用此令牌并以 AzureActiveDirectory 作为提供者调用 LoginAsync(),这不起作用。
JObject payload = new JObject();
payload["access_token"] = GraphAuthenticationHelper.TokenForUser;
user = await MobileService.LoginAsync(MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory, payload);
这可能吗?
【问题讨论】:
-
我认为您想使用 WindowsAzureActiveDirectory 作为提供程序参数。此外,在门户中打开应用程序日志记录,您应该能够看到一条警告消息,其中包含未授权响应的原因。你也可以分享这些信息吗?
-
好吧,即使使用 MSA 帐户?无论哪种方式,两者都不起作用。在“LogFiles/DetailedErrors”下,我得到以下信息: HTTP 错误 401.83 - 未经授权 最可能的原因:经过身份验证的用户无权访问处理请求所需的资源。详细错误信息:Module EasyAuthModule_32bit Notification BeginRequest Handler ExtensionlessUrlHandler-Integrated-4.0 Error Code 0x80004005 Requested URL myapp__9131:80/.auth/login/aad Physical Path D:\home\site\wwwroot\.auth\login\aad
-
抱歉,我应该更具体一些。您需要查看 application 日志(诊断日志 --> 应用程序日志记录(文件系统))。我认为您正在查看的是 Web 服务器日志。顺便说一句,这是一个同时支持 AAD 和 MSA 的融合 AAD 端点,对吧?
-
是的,它确实是一个“融合”应用程序,而不是一个“Live SDK”应用程序。我确实启用了应用程序日志记录(文件系统),但是当我 FTP 进入时甚至没有看到“应用程序日志”文件夹。
-
如果您重现启用日志记录的问题,您肯定会看到日志。使用 Kudu 门户时,可以在 D:\home\LogFiles\Application\ 下找到它们。
标签: azure azure-mobile-services microsoft-graph-api adal