首页 > 解决方案 > 具有 MSAL JWT 验证的 Azure 移动应用程序 IDX10500 失败

问题描述

我正在尝试使用 Microsoft 身份验证库 (MSAL) 针对我的 Azure 移动应用后端(已设置为使用 Azure AD 身份验证)对 Xamarin.Forms 应用进行身份验证。这是为了让应用程序可以访问表 API 控制器等,但我在完全验证时遇到问题。

在应用程序(客户端)中,我似乎能够成功登录,因为我在 Safari Web 浏览器中获得了 Azure AD 登录屏幕,但在输入我的凭据后,我立即被重定向到应用程序,并出现以下错误来自 MSAL:

您无权查看此目录或页面。

我做了一些挖掘并将调试器附加到我的移动应用程序后端,并揭示了以下内容:

Microsoft.Azure.AppService.Middleware Verbose:0:收到请求:POST https://myapp.azurewebsites.net/.auth/login/aad

引发异常:Microsoft.Azure.AppService.Middleware.Modules.dll 中的“System.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException”

Microsoft.Azure.AppService.Middleware 警告:0:JWT 验证失败:IDX10500:签名验证失败。无法解析 SecurityKeyIdentifier:'SecurityKeyIdentifier (

IsReadOnly = False,
Count = 1,
Clause[0] = System.IdentityModel.Tokens.NamedKeySecurityKeyIdentifierClause
) ', 

原始数据:eyJ0eXAiOiJ......

令牌:'{"typ":"JWT","alg":"RS256","kid":"-sxMJMLCIDWMTPvZyJ6tx-CDxw0"}.{"aud":"d03a8a86-2d38-4017-a8e6-d1813c7a8b99"," iss":" https://login.microsoftonline.com/03afca2b-f47f-4d0b-9a25-d464aff5d399/v2.0 ","iat":1550228705,"nbf":1550228705,"exp":1550232605,"aio" :"ATQAy/8KAAAAJ5N6SdnFdK7rYxWxvwbUKLAjZesFNkwaj2jR7tQg+E10FU5giL0DQM7SWbfwwYNG","name":"GFSSD 测试","oid":"ea10e59f-4466-451c-b7df-e9727ae5b899","preferred_company.com":"gs:" "aPg-fkuZz4lwGIPSGbQ-nOoj7BPwT4_bBsb9UvATAdI","tid":"03afca2b-f47f-4d0b-9a25-d464aff5d399","uti":"tpY2tvyphUib1O2N4wIQAA","ver":"2.0"}

Microsoft.Azure.AppService.Middleware 信息:0:发送响应:401.83 Unauthorized

任何想法为什么它似乎没有正确授权?

编辑:

移动应用验证设置

标签: azurexamarin.formsazure-active-directoryazure-mobile-servicesmsal

解决方案


推荐阅读