Restful API授权机制

时间:2014-10-16 08:47:05

标签: api rest authentication authorization

我正在构建一个RESTful API,下面是它的一些规范:

  1. 框架:Codeigniter,基于SaaS的应用程序。
  2. API使用API​​-KEY定义客户端[骨干应用程序(web),android应用程序,ios应用程序]
  3. 使用Access-token定义通过客户端发出请求的用户的API,每个访问令牌都与专用用户相关。
  4. API通过API-KEY
  5. 对请求进行身份验证
  6. API通过访问令牌授权请求,方法是定义每个访问令牌有权执行的操作范围。
  7. API定义“角色组”,其中每个组都应该授予组中的每个用户许多不同的权限。
  8. 目前我正处于我必须授权请求的阶段,因此我可以接受或拒绝并返回“403 Unauthorized access”,所以这是一个问题:

    用于授权请求和实现以下目的的正确机制是什么:

    1. 检查之前在“角色组”中为发出请求的用户定义的权限,以便我可以授权请求或拒绝该请求。
    2. 某些用户可能可以更改其密码设置,但密码除外,如何授权此类请求。
    3. 锻炼: 我选择在每个访问令牌中定义范围,因此每当我收到请求时,我都会关注与此访问令牌相关的范围,然后与控制器"hard coded in the controller, like below"中所请求函数的范围进行比较以检查是否他是否授权,但有些事总是出错,&我永远不会以结果结束......认为我想念的东西或整个想法都是错的。

      protected $methods = array(
          'authentication_post' => array('level' => 1, 'limit' => 1, 'avoid_token' => true, 'scope' => 'system:login'),
          'test_get' => array('level' => 1, 'limit' => 1, 'avoid_token' => true, 'scope' => 'user:enabled'),
          'authentication_get' => array('level' => 1, 'limit' => 1, 'avoid_token' => false, 'scope' => 'user:enabled something something something'),
      );
      

      P.S 我想明白,如此友善而不是说oauth中的解决方案,告诉我它应该如何工作:) :)

0 个答案:

没有答案