首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >API认证最佳实践

API认证最佳实践
EN

Stack Overflow用户
提问于 2021-06-24 11:38:33
回答 1查看 93关注 0票数 0

对于允许客户访问其数据的customer,我想知道最合理的身份验证方法是什么。目前,API是基于OAuth 2.0的,具有授权代码流,但也存在一些挑战:

  • 许多客户对OAuth 2.0了解有限/不了解,不想进入标准。此外,很多客户的编程技能一般都很有限。他们只是想要一个简单的解决方案来检索他们的数据。
  • --通过浏览器的登录流被认为在某个时候到期了--但是客户不想再次登录。
  • 令牌和端点是特定于身份验证服务器的。不兼容的更改需要客户端的操作,包括手动重新登录。这使得授权服务器供应商更改或仅仅是主要更新变得困难。

最近,我经常看到令牌是一种更容易进行身份验证的方法:

web前端中的

  • -- API令牌是基于用户帐户创建的。此令牌在revoked.
  • This令牌通过授权头以某种方式传递到服务器之前是有效的。

这条路有效吗?还有别的选择吗?是否可以在每次使用时更新刷新令牌的有效性,这样如果令牌被定期使用(并且与更新的令牌一起使用),则永远不需要新的登录?

EN

回答 1

Stack Overflow用户

发布于 2021-06-25 07:30:30

创建标准是为了帮助业界保持高水平的互操作性和安全性。您可以实现自己的解决方案,但很可能它不会像OAuth流那样健壮和安全。例如,在我看来,发出一个在被撤销之前有效的令牌是一种非常糟糕的做法。如果有人设法窃取这个令牌,只要您没有注意到正在发生什么奇怪的事情,他们就可以访问您的API。

您的客户可能需要一个简单的解决方案,但这意味着它将不安全。

如果它们实现OAuth流是一个问题,也许您应该提供您自己的SDK或库,这将使它们更容易使用流。一个调用方法getToken的库,所有细节都由库处理。

我也不同意这样的观点,那就是很难改变OAuth兼容的供应商。在大多数产品中,您可以很容易地更改端点的路径,并且参数和流是标准化的。您可以在用户从未注意到的情况下更改授权服务器(如果您有标准兼容的服务器)。

至于滚动会话,您可以实现它。每当使用刷新令牌来获取新的访问令牌时,您都可以发出一个新的刷新令牌,并延长过期时间。这样,只要用户继续使用,刷新令牌就可以无限期有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68115022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档