Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blazor WebAssembly Azure B2C错误:AADB2C90205(权限不足)_Azure_Blazor_Azure Ad B2c_Blazor Webassembly - Fatal编程技术网

Blazor WebAssembly Azure B2C错误:AADB2C90205(权限不足)

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命令生成的默认代码) 关于配置错误有什么想法吗 应用

我创建了一个示例Blazor WebAssembly应用程序,该应用程序将使用Microsoft docs文章中概述的步骤通过Azure B2C进行保护:

除了身份验证之外,应用程序也可以工作。B2C模式加载以登录,但随后UI显示以下错误消息

尝试让您登录时出错:“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();
        }
    }
}