azure - 具有 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
任何想法为什么它似乎没有正确授权?
编辑:
解决方案
推荐阅读
- android - 提前加载多个广告会导致 AdMob 广告投放限制吗?
- c++ - 如何从cpp中的函数返回字典
- swift - 以编程方式设置 CFBundleShortVersionString
- argo-workflows - 在 Argo Workflows 中定义工作流之间的依赖关系
- java - 断言这两个列表具有相同的长度。创建所有姓名和姓氏的列表
- entity-framework-core - EFCore 和 C# 5.0 的多对多关系:如何从两个表中获取字段
- python - 从班级打开的窗口显示不正确
- plot - AttributeError: 'list' object has no attribute 'shape', 如何解决这个错误
- android - 如何制作一个返回通用对象的函数?
- npm - Npm 在定义对等依赖时包括所有预发布范围