【问题标题】:What is the relationship between Roles on the Authorize tag and IdentityServer3 client setupAuthorize 标签上的 Roles 和 IdentityServer3 客户端设置有什么关系
【发布时间】:2016-09-29 22:12:46
【问题描述】:

在授权标签中,如果指定角色,访问将被拒绝,我无法弄清楚如何配置 IdentityServer3 以允许角色。我正在使用客户端凭据流。这是标签:

[Authorize(Roles = "Read")]

我用来创建客户端的代码如下:

public IEnumerable<Client> GetClientsToAddUpdate()
{
    return new Client[]
    {
        new Client
        {
            ClientName = "Portal Client Name",
            Enabled = true,
            ClientId = "portalClientName",
            ClientSecrets = new List<Secret>
            {
                new Secret("AVerySecretSecret".Sha256())
            },
            Flow = Flows.ClientCredentials,
            AllowClientCredentialsOnly = true,
            AllowedScopes = new List<string>
            {
                "Read"
            },

            Claims = new List<Claim>
            {
                new Claim("client_type", "headless"),
                new Claim("client_owner", "Portal"),
                new Claim("add_detail", "allow")
            },
            PrefixClientClaims = false
        }
    };
}

我有一个读取范围,并在获取承载令牌时发送该范围,如果我使用未指定角色的授权标签,一切正常。一旦我添加角色授权被拒绝。 如何修改客户端以添加“读取”角色?

一些背景是我想通过 Swashbuckle 使用 Swagger 为客户提供一个沙箱来使用 API,但我无法获得工作授权,所以我想添加角色,因为这似乎得到了更接近工作的 Swagger UI。

【问题讨论】:

    标签: c# identityserver3


    【解决方案1】:

    不幸的是,此映射最终破坏了定义为 namerole 的特定声明名称,因为它们的名称已转换并且不再映射到您所期望的。

    这会导致 [Authorize(Roles = "")]User.IsInRole("") 无法按预期工作。

    Please refer 还有this

    【讨论】:

      猜你喜欢
      • 2014-10-08
      • 1970-01-01
      • 1970-01-01
      • 2016-10-10
      • 1970-01-01
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多