gpt4 book ai didi

REST 身份验证 : put key in custom header or Authorization header?

转载 作者:行者123 更新时间:2023-12-05 05:27:36 25 4
gpt4 key购买 nike

我正在为一家注重安全的大型公司设计 REST API 框架。

我们服务的每个调用者都需要提供客户端 key 才能访问系统。我们将使用它来为该特定客户端授权访问以及速率限制和监控。此外,我们的一些 API 调用将访问客户数据,我们将使用 OAuth 2 token 来控制对该数据的访问。

我的问题是如何传递客户端 key 。我不能使用 HTTP 基本身份验证或查询参数,因为我们不能在 URI 中传递它(有时会记录 URI)——它必须在 HTTP header 中。所以我想到了两种方法,但都有缺陷:

(1) 发明我们自己的 header :MyCompanyAPIKey: api-key-goes-here。这是有缺陷的,因为我们将发明自己的标题,这是一个糟糕的设计选择。它不适用于任何其他人或标准工具(因为我们发明了自己的工具)。

(2) 使用授权 header :Authorization: Bearer api-key-goes-here。这是有缺陷的,因为在我们使用它的情况下,它会与 OAuth(需要该 header )发生冲突。从技术上讲,我想当我们拥有 OAuth token 时我们不需要客户端 key (因为 OAuth token 特定于单个客户端),但我不知道普通工具是否可以处理.

您认为我们应该如何进行?

最佳答案

鉴于您的要求,自定义 header 听起来像是去这里的方式。

我相信您担心它是一个糟糕的设计选择在这里是无关紧要的,因为没有传递 API key 的标准化方法。 API key 对不同的应用程序意味着不同的东西。对某些人来说,它是一个用户 ID;对其他人来说,它是一个密码;对其他人来说,这仍然只是一种简单的节流方式,甚至不需要显式身份验证。

就兼容性而言,大多数工具在使用 API 时都允许一些灵 active ,所以只要您不做任何疯狂的事情,我认为您会没事的。无论您做什么,只要确保您选择实现的任何标准都已完全实现(OAuth 与“类似 OAuth”)并提供文档。

关于REST 身份验证 : put key in custom header or Authorization header?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18648882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com