为同一 API 混合使用多个身份验证模型是最佳做法吗?



Sample API:

/product/list
/product/save
/product/update
/product/delete

假设/product是具有筛选器的基本路径,用于在处理请求之前验证身份验证。

目前,已实现 OAuth 身份验证,因此在验证访问令牌后处理所有请求。我们得到了仅提供一个上下文的用例,即在OAuth身份验证模式和BASIC身份验证模式下/product/list。但似乎为同一上下文混合多个身份验证不是一种正确的方法,因此期望在这种情况下遵循的最佳实践是什么

一个好的目标是在 API 中使用统一方法,该方法始终接收 OAuth 2.0 访问令牌:

  • API 的 UI 客户端通过授权代码流 (PKCE( 获取访问令牌
  • 其他客户端(如后端进程(通过客户端凭据流获取令牌

我会让任何使用基本OAuth的客户端更新到客户端凭据,这几乎是相同的,需要来电显示和来电密码。

这两种类型的客户端都能够调用列表终结点,在这两种情况下,API 都需要验证访问令牌,根据需要标识调用方,然后可能筛选允许调用方获取的项目。

最新更新