2016-12-11 39 views
1

我读的identityserver4 guildence,这里是示例代码API范围和用户要求之间的不同在identityserver4

 UserClaims = 
     { 
      new UserClaim(JwtClaimTypes.Name), 
      new UserClaim(JwtClaimTypes.Email) 
     }, 

     // this API defines two scopes 
     Scopes = 
     { 
      new Scope() 
      { 
       Name = "api2.full_access", 
       DisplayName = "Full access to API 2", 
      }, 
      new Scope 
      { 
       Name = "api2.read_only", 
       DisplayName = "Read only access to API 2" 
      } 
     } 

我的问题是 似乎范围来控制哪些客户端可以访问的API资源,并且用户声明控制器上apis的用户权限。让我们来看看“api2.read_only”,这是否意味着这个范围的客户端只能访问apis?但是如果用户具有例如:为特定的api写入权限?我对这两件事感到困惑。 提前感谢您的帮助。

回答

1

作用域定义您是否有权访问API。权利要求更加细化。在API中,您可以访问哪些资源?例如,您可以访问名称等身份资源。

2

作用域是定义客户端可以访问哪些资源的特殊声明。 用户声明只是关于用户的声明。你通常会给用户一个“角色”或“权限”声明(或类似的东西)。通过使用用户声明,如果基于范围进行授权不能满足您的要求,您可以进行一些索赔授权。