Blazor WebAssembly Azure B2C错误:AADB2C90205(权限不足)
我创建了一个示例Blazor WebAssembly应用程序,该应用程序将使用Microsoft docs文章中概述的步骤通过Azure B2C进行保护: 除了身份验证之外,应用程序也可以工作。B2C模式加载以登录,但随后UI显示以下错误消息Blazor WebAssembly Azure B2C错误:AADB2C90205(权限不足),azure,blazor,azure-ad-b2c,blazor-webassembly,Azure,Blazor,Azure Ad B2c,Blazor Webassembly,我创建了一个示例Blazor WebAssembly应用程序,该应用程序将使用Microsoft docs文章中概述的步骤通过Azure B2C进行保护: 除了身份验证之外,应用程序也可以工作。B2C模式加载以登录,但随后UI显示以下错误消息 尝试让您登录时出错:“AADB2C90205:此应用程序没有足够的权限访问此web资源以执行此操作。 以下是我的B2C配置的一些经过编辑的屏幕截图(我确信代码是正确的,因为它是从dotnet newCLI命令生成的默认代码) 关于配置错误有什么想法吗 应用
尝试让您登录时出错:“AADB2C90205:此应用程序没有足够的权限访问此web资源以执行此操作。
以下是我的B2C配置的一些经过编辑的屏幕截图(我确信代码是正确的,因为它是从dotnet new
CLI命令生成的默认代码)
关于配置错误有什么想法吗
应用程序注册
API-概述
API-身份验证
API-公开API
客户-概述
客户端-身份验证
客户端-API权限
注册/进入用户流-概述
注册/进入用户流-用户属性
注册/进入用户流-应用程序声明
我可以重现你的问题。错误的原因是您使用了未经授权的资源。您需要将
范围
更改为您自己的公开api。转到Azure AD B2C>应用程序注册>您的客户端应用程序>API权限
所以问题实际上在代码中 我错过了文档中的一个注释部分,该部分说如果API ID URI是不受信任的发布者域,则我必须手动编辑客户端应用程序代码,与我的情况类似 删除客户端应用程序的
Program.cs
中额外的https://{TENANT DOMAIN}/
,修复了一些问题(请注意注释掉的行和后面的行之间的差异)
你能给我们分享一下B2c的url吗?另外,请用星星(**)遮住客户ID/秘密,因为这是公共频道谢谢@HariKrishna--MSFTIdentity,我已经更新了图片
namespace BlazorClient
{
public class Program
{
public static async Task Main(string[] args)
{
...
builder.Services.AddMsalAuthentication(options =>
{
builder.Configuration.Bind("AzureAdB2C", options.ProviderOptions.Authentication);
//options.ProviderOptions.DefaultAccessTokenScopes.Add("https://***.onmicrosoft.com/https://***.onmicrosoft.com/*******/blazor.client");
options.ProviderOptions.DefaultAccessTokenScopes.Add("https://***.onmicrosoft.com/*******/blazor.client");
});
await builder.Build().RunAsync();
}
}
}