如何解决客户主张受众声明与领域发行人不符
我可以通过postMan中来自login.windows.net的HTTP POST请求成功为我的应用程序获取令牌,并将资源参数设置为“ a0e1e353-1a3e-42cf-a8ea-3a9746eec58c”。这会将JWT令牌中的“ aud”字段设置为相同的值。我正在认证的marketplaceapi端点会拒绝所有具有不同aud值的令牌。
当我在C#中使用ConfidentialClientApplicationBuilder来通过我的证书检索令牌时,我使用.WithClientAssertion()将aud设置为与示例here相同的值。但是每当我尝试设置aud值并调用.AcquireTokenForClient()时,都会出现此错误
Microsoft.Identity.Client.MsalServiceException:'配置问题 正在阻止身份验证-检查来自服务器的错误消息 有关详细信息。您可以在应用程序中修改配置 注册门户。有关详情,请参见https://aka.ms/msal-net-invalid-client 详细信息。
原始异常:AADSTS700023:客户端断言受众 声明与Realm发行者不符。在以下位置查看文档 https://docs.microsoft.com/azure/active-directory/develop/active-directory-certificate-credentials 。跟踪ID:4cb57c15-6a25-4baa-b88c-2e92caf71100相关ID: 17f9f513-3bec-4ecc-9b2f-7e01a9897e93时间戳:2020-09-16 05:19:31Z'
我尝试将范围设置为该值,但是随后出现无效的范围错误。我该怎么做才能在我的JWT令牌中获取正确的aud值?
解决方法
我遇到了类似的问题,通过添加 .WithSendX5C(true) 来获取令牌解决了。
机密客户端创建为
public function boot()
{
// Other registrations
$this->loadMigrationsFrom(database_path('migrations/triggers'));
}
获取令牌为
ConfidentialClientApplicationBuilder.Create(this.applicationClientId)
.WithAuthority(AzureCloudInstance.AzurePublic,this.tenantId)
.WithCertificate(certificate)
.Build();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。