REST API身份验证(保证身份验证状态)

时间:2013-02-12 11:28:03

标签: api rest oauth openid oauth-2.0

我正在开发REST API。目前我正在努力使其最低限度安全。我问这个问题,因为我发现的关于这个主题的大部分帖子都很老了。

对于身份验证,我发现了这个方案:

  • 基本身份验证
  • AWS身份验证协议
  • 的OpenID
  • OpenID Connect
  • OAuth伪身份验证

基本身份验证和AWS身份验证可在经过身份验证后维护经过身份验证的请求,因为他们不断发送已签名的请求。

我不明白OpenID和OAuth身份验证如何维护(第二个)认证的请求?我是否需要根据每个请求使用OAuth / OpenID服务器检查访问令牌?这如何保护REST API不接收已更改的请求?

我们欢迎您推荐的任何其他计划,建议或阅读有关该主题的材料。

1 个答案:

答案 0 :(得分:1)

我在这里讨论 OAuth

i)您创建了一个网络应用,并希望使用谷歌的OAuth API ii)您注册了应用here并获得凭据 iii)现在,在应用程序中,您将使用Google的SDK打开登录页面,输入您的凭据,Google会对其进行验证并向您发送访问令牌和刷新令牌。
iv)您可以使用访问令牌对谷歌的API进行REST调用并获取用户的数据。

现在,回答你问的问题 -
access token通常会活1个小时。是的,您可以使用相同的访问令牌在一小时内对任何Google API进行任何经过身份验证的来电。 还有另一种类型的令牌 - Refresh Token。在任何时候,您的应用都可以访问提供商的令牌交换端点并交换刷新令牌 - 刷新令牌+访问令牌对。

现在再次,你有一个访问令牌可以帮助你一个小时和一个可以随时交换的刷新令牌。

根据需要自动刷新令牌,直到用户明确撤消对您的应用的权限为止。 (告诉Google它不希望您访问他的资源!)

OAuth可确保只有经过身份验证和授权的客户才能访问您的API,从而确保您的REST API安全。但通常情况下,OAuth仅在第三方客户端需要访问用户资源的情况下使用!