我在哪里可以找到 BlazorWebAssemblyOidcSample.Server.Policys 的 AccessPolicyAttribute 类中 blazorweba_oidcpkce_sample:access 的值?

问题描述

我找不到 FoxIDs 发出的 blazorweba_oidcpkce_sample:access 的值。我想知道它是否应该将它存储在 appsettings.json 中。谢谢!

解决方法

示例客户端 blazorweba_oidcpkce_sampleFoxIDs 中配置,并且客户端被授予 blazorweba_oidcpkce_sample:access 范围,该范围允许调用后端 API。在此场景中,前端客户端和后端资源 (API) 具有相同的名称 (blazorweba_oidcpkce_sample)。

示例客户端请求 blazorweba_oidcpkce_sample:access,即 configured in appsettings.json

API 验证 access token contain the scope 并在范围存在时授予访问权限。

FoxIDs 测试轨道上密码为 test1@foxids.com 的测试用户 TestAccess! 有两个角色 role1role2。 可以要求例如role1 在政策中是这样的:

public static void AddPolicy(AuthorizationOptions options)
{
    options.AddPolicy(_name,policy =>
    {
        policy.RequireScopeAndRoles(
            new ScopeAndRoles { Scope = "blazorweba_oidcpkce_sample:access",Roles = new [] { "role1" } }
        );
    });
}