仍然对实施OAuth以保护REST API感到困惑

时间:2014-07-27 23:00:28

标签: java security rest oauth jboss

我一直在努力保护我的REST API。我已经阅读了很多关于OAuth 2.0和相关库的信息,例如OltuKeyCloak,但仍然对如何操作感到困惑。 到目前为止,我将介绍我所理解的内容并指出我的困惑

要让客户端访问受保护资源/resource,客户端必须已注册Authorization Server并获得Access Token。对?

假设我有一个以下的终点

POST /register
{
‘email’: ‘register_me@yourserver.com'
}

并获得以下内容

clientId: <some_client_id>
clientSecret: <some_client_secret>  

我的困惑

  1. 我是否需要在我的服务器数据库中存储clientId和clientSecret以防止此电子邮件?我想是的
  2. 有哪些建议的方法可以生成clientIdclientSecret
  3. 客户获得clientIdclientSecret后,会调用/token个端点获取accessToken

    POST /token
    {
    
    clientId: <some_client_id>
    clientSecret: <some_client_secret>  
    }
    

    并获得以下

    accessToken: <some_valid_access_token>
    

    我的困惑

    1. 客户是否将/token/register个终端重定向调用到/token
    2. 我是否需要将accessToken存储在数据库中?
    3. 一旦客户端有accessToken,它就会调用受保护资源端点/resource来获取一些数据

      Bearer: <some_valid_access_token>  # as part of header
      GET /resource
      

      并从服务器获取一些数据

      我的困惑

      1. 服务器验证令牌以确保调用者可以访问数据
      2. 我是否需要每次都根据DB中的内容验证令牌?它太缺乏了
      3. 有哪些建议的生成方式accessTokens
      4. 由于所有这些混乱,我认为会有一些图书馆为我们完成大部分样板工作,但我没有得到一个简单的例子。
        如果你做过类似的事情,请指导我参考资源吗?

        由于

0 个答案:

没有答案