程序员在开发自己的oAuth服务时应考虑哪些技术细节?

问题描述 投票:7回答:3

程序员在开发自己的oAuth服务时应考虑哪些技术细节?

一直在尝试寻找指南,但是发现大多数与oAuth相关的文章都是从消费者的角度进行讨论的(即如何消费其他服务)。我想使用授权服务和资源服务设计自己的oAuth系统。我应该遵循哪些技术细节?

service oauth architecture system-design
3个回答
4
投票

您可能已经阅读了RFC,但以防万一,您是想开始的地方:

  1. oAuth 2.0“核心”(RFC 67496750
  2. 代码交换证明密钥(PKCE)(RFC 7636

oAuth实施者(客户端或其他)的最佳“打包”指南可通过IETF最佳现行实践(BCP)获得。大多数人都了解IETF RFC,并且(令人困惑地)BCP是作为带有RFC编号的RFC发布的。尽管如此,它们还是最佳做法,not formal specifications

BCP流程类似于拟议标准的流程。 BCP是提交给IESG进行审核,以及现有的审核流程适用,包括IETF公告邮件上的“最后通话”清单。但是,一旦IESG批准了该文件,结束并发布了文档。生成的文档被视为具有IETF的技术批准,但不是,也不能成为正式的Internet标准。

您要查看的BCP:

  1. oAuth security(撰写本文时为最新)
  2. browser-based apps的oAuth(截至撰写本文时为最新)。
  3. native apps的oAuth(作为“核心” oAuth 2.0 RFC的更新于2017年发布,仍然不错)
  4. [JSON Web Tokens for oAuth(最新)

这些文档以威胁模型术语构成框架-它们涵盖了攻击(或“安全性考虑因素”,作为一种稀释格式)和对策。您可能正在寻找一种更简单的路线图构建块类型,也许应该有一种教育工具。现实世界中的oAuth实现必须使用威胁模型的初步证据来开发。

作为一个武士said...在战斗中未经考验的剑术就像在陆地上掌握的游泳艺术。


2
投票

我也很想听听您为什么要开发自己的身份验证解决方案。

但是抛开这些,有一个开源项目完全可以满足您的要求-Identity Server。您可以签出他们的源代码,也可以对其进行派生并在其上面构建内容。

另外,请在各种文档上查看“身份”答案。


0
投票

OAuth 2.0的一个特定方面,特别是为了提高安全性,是使用旋转刷新令牌。 IETF在this RFC中也建议这样做。它基本上可以帮助检测会话令牌被盗。

如果您发现有趣的地方,请here is a blog post突出显示一些您应该了解的实现细节。

© www.soinside.com 2019 - 2024. All rights reserved.