【问题标题】:Azure b2c unauthorized when making api calls in .net5 web api在 .net5 web api 中进行 api 调用时 Azure b2c 未经授权
【发布时间】:2021-03-29 15:02:26
【问题描述】:

我在使用 azure B2C 授权客户端应用程序(用户)时遇到问题。 在后端我有一个 asp.net5 web api。至于前端,我使用的是 Angular 客户端。 我已经在我的 B2c 租户中注册了这两个应用程序。我在这两个应用程序上都添加了 API 权限,还获得了管理员许可。

现在,当我运行用户流(从 azure 门户)并在表单中指定 web api 时,令牌工作正常,我可以进行 api 调用,我得到状态 200。 但是,当在客户端应用程序(角度)上检索令牌时,我收到 401 未经授权的响应。

我的认证中间件配置如下:

 services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;

            }).AddJwtBearer(jwtConfig =>
            {
                jwtConfig.Audience = Configuration["AzureAdB2C:ClientId"];
                jwtConfig.Authority = $"{Configuration["AzureAdB2C:Instance"]}/tfp/{Configuration["AzureAdB2C:Domain"]}/{Configuration["AzureAdB2C:SignUpSignInPolicyId"]}/v2.0";
                jwtConfig.RequireHttpsMetadata = false;
                jwtConfig.SaveToken = true;
                jwtConfig.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,
                    ValidateIssuer = true,
                    ValidateAudience = true,
                    ValidateLifetime = true,
                    ValidAudience = jwtConfig.Audience,
                    ValidIssuer = $"{Configuration["AzureAdB2C:Instance"]}/{Configuration["AzureAdB2C:TenantId"]}/v2.0/"
                };
            });

有谁知道问题出在哪里?

【问题讨论】:

    标签: asp.net-core authentication azure-active-directory jwt azure-ad-b2c


    【解决方案1】:

    解决方案: 我做了一些研究,并稍微修改了代码,以获得更多关于正在发生的事情的信息,所以我发现问题出在作用域上。我在客户端应用程序中指定了错误的范围名称,因此我得到了 401 未授权。

    【讨论】:

      猜你喜欢
      • 2020-04-10
      • 2017-01-04
      • 2017-07-02
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 2017-11-09
      • 2021-07-03
      • 1970-01-01
      相关资源
      最近更新 更多