在开发自己的oAuth服务时,程序员应该考虑哪些技术细节?
我一直在尝试找到一些指南,但是发现大多数与oAuth
相关的文章都是从消费者的角度进行讨论(例如如何使用其他人的服务)。我想设计自己的oAuth
系统,包括我的授权服务和资源服务。我应该遵循哪些技术细节?
在开发自己的oAuth服务时,程序员应该考虑哪些技术细节?
我一直在尝试找到一些指南,但是发现大多数与oAuth
相关的文章都是从消费者的角度进行讨论(例如如何使用其他人的服务)。我想设计自己的oAuth
系统,包括我的授权服务和资源服务。我应该遵循哪些技术细节?
您可能已经阅读过RFC,但以防万一,这就是您想要开始的地方:
对于oAuth实施者(客户端或其他),最好的“打包”指南可以通过IETF最佳当前实践(BCP)获得。大多数人知道IETF RFCs,而BCPs作为带有RFC号的RFC发布,尽管如此,它们是最佳实践而不是正式规范:
BCP流程与拟议标准的流程相似。将BCP提交给IESG进行审查,包括在IETF公告邮件列表上进行“最后呼叫”的现有审查流程。但是,一旦IESG批准了文档,流程就结束了,文档就会被发布。生成的文档被视为获得了IETF的技术批准,但它不是,并且不能成为官方的Internet标准。
您要审核的BCP:
这些文档以威胁模型术语为框架 - 它们涵盖攻击(或“安全注意事项”作为一种淡化格式)和对策。您可能正在寻找更直接的构建块类型的路线图,也许应该有一个作为教育工具。真实世界的oAuth实现必须在威胁模型的初步证据的基础上开发。
作为一名武士所说:...在战斗中未经检验的剑术就像是在陆地上掌握的游泳艺术。我也很想知道您为什么想要开发自己的身份验证解决方案。
但是,暂且不谈这个问题,有一个开源项目可以完全满足您的需求 - Identity Server。您可以查看他们的源代码或者fork它,在其基础上构建自己的应用程序。
此外,请参考“identigral”在各种文档中的答案。