Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance OAuth如何处理授权?_Performance_Rest_Architecture_Oauth 2.0 - Fatal编程技术网

Performance OAuth如何处理授权?

Performance OAuth如何处理授权?,performance,rest,architecture,oauth-2.0,Performance,Rest,Architecture,Oauth 2.0,我们已经使用RestEasy实现了一个RESTful API。现在我们计划构建自己的OAuth实现,并将其与RESTAPI集成 我不完全理解OAuth如何处理对API的每个请求的授权。我的理解如下: 在进行任何REST API调用之前,用户由OAuth服务器进行身份验证 每个RESTAPI调用都将包含一个令牌。RESTAPI服务器使用OAuth服务器验证该令牌。如果令牌有效,则服务器将返回响应 这将对性能产生影响,因为我们正在使用第二台服务器验证每个API请求的令牌。这种理解正确吗?这将取决于您

我们已经使用RestEasy实现了一个RESTful API。现在我们计划构建自己的OAuth实现,并将其与RESTAPI集成

我不完全理解OAuth如何处理对API的每个请求的授权。我的理解如下:

  • 在进行任何REST API调用之前,用户由OAuth服务器进行身份验证
  • 每个RESTAPI调用都将包含一个令牌。RESTAPI服务器使用OAuth服务器验证该令牌。如果令牌有效,则服务器将返回响应

  • 这将对性能产生影响,因为我们正在使用第二台服务器验证每个API请求的令牌。这种理解正确吗?

    这将取决于您将如何定义REST API。基本上,OAUTH调用有以下组件

    用户:提出请求的用户

    提供者:保存用户信息并提供访问这些信息的API的提供者

    消费者:要求用户授权消费者向API发出请求的人

    基本工作流程如下:

  • 用户试图从使用者访问受限资源

  • 消费者要求用户共享有关他的一些信息。(范围)

  • 用户选择他的身份提供者

  • 提供商应了解消费者。(通常消费者在提供商门户中注册为应用程序/网站)

  • 使用者使用其使用者密钥和作用域重定向到提供程序

  • 用户授权应用程序并授予对其部分资源的访问权限

  • 提供者创建令牌并重定向回使用者

  • 消费者交换此令牌及其标识以获取用户的访问令牌

  • 使用者使用access_令牌向提供者发出授权请求,并且很少询问有关用户的信息

  • 提供者将这些信息发送给消费者

  • 消费者验证信息,并且用户已登录到系统

  • 现在,每个令牌都是根据作用域生成的,并且将在几天内有效。令牌验证将是提供商响应的一部分


    在您的系统中,您可以根据令牌存储用户数据,这样我们就不需要请求提供者发送这些信息。但是如果您不想存储用户信息,肯定会有额外的呼叫。

    不要。真正地如果你不理解OAuth,在安全空间里生活和呼吸,你会把它搞砸的。做正确的授权很难。找到一个你可以接受的供应商实现。如果我根据令牌存储用户数据,我需要处理会话超时和令牌撤销。我们是否可以将类似memcache的数据源附加到Oauth服务器,以便改进会话验证性能。