【问题标题】:Request with token from ADAL for Cordova returns 401 response from Web Api来自 ADAL 的用于 Cordova 的带有令牌的请求返回来自 Web Api 的 401 响应
【发布时间】:2016-03-17 12:01:30
【问题描述】:

我希望有人可以帮助解决这个问题:

我有一个使用 Azure AD 承载身份验证保护的 Web api,我有两个 Web 客户端可以使用 AD 中的承载令牌成功地在 Web api 上进行身份验证。 Web API 和两个 Web 应用程序都配置为 AD 中的应用程序。我尝试使用 ADAL for Cordova 访问 iOS/Android 应用程序的 web api,但它返回 401。

ClaimsPrincipal.Current.Identity.IsAuthenticated 返回错误。

我正在使用我在 Azure AD 中设置的本机应用程序的客户端 ID,并且我正在接收令牌,但此令牌无效。在我解析 jwt.io 上的令牌后,一切似乎都正确,但我注意到令牌没有标头。 我添加了访问 Web Api 并以用户身份登录和访问 AD 的权限。 我在 Cordova 中使用的代码如下,我使用的权限与其他正在运行的应用程序相同。其中 resource 是 AD 中 Web Api 的应用 ID,client id 是 Azure Ad 中本机应用的客户端 ID。

// Attempt to authorize user silently AuthenticationContext.acquireTokenSilentAsync(resource, clientId) .then(function (result) { sessionService.logIn(result.idToken); console.log(result); deferred.resolve(); }, function () { // We require user credentials so triggers authentication dialog AuthenticationContext.acquireTokenAsync(resource, clientId, redirectUri) .then(function (result) { console.log(result); sessionService.logIn(result.idToken); deferred.resolve(); }, function (err) { console.log("Failed to authenticate" + err); deferred.reject("failed to authenticate"); }); });

我也尝试过使用 result.accessCode,但它也不起作用。 Web Api 中的 StartUp.Auth.cs:-

app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); app.UseWindowsAzureActiveDirectoryBearerAuthentication( new WindowsAzureActiveDirectoryBearerAuthenticationOptions { Tenant = ConfigurationManager.AppSettings["ida:Tenant"], TokenValidationParameters = new TokenValidationParameters { ValidAudiences = Audiences } }); }

有人可以帮忙吗?

谢谢

【问题讨论】:

    标签: asp.net-web-api azure-active-directory adal


    【解决方案1】:

    您似乎向 API 发送了错误的令牌 - 您应该发送 result.accessToken。示例见https://github.com/Azure-Samples/active-directory-cordova-multitarget/blob/master/DirSearchClient/js/index.js

    【讨论】:

      猜你喜欢
      • 2016-06-26
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多