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

问题描述 投票:0回答:1

示例API:

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

假设/product是具有过滤器的基本路径,该过滤器可以在处理请求之前验证身份验证。

目前,已实现OAuth身份验证,因此在验证访问令牌后将满足所有请求。我们得到了仅在OAuth身份验证模式和BASIC身份验证模式下都只服务一个上下文(即/product/list)的用例。但是似乎在同一上下文中混合使用多种身份验证似乎不是一种正确的方法,因此期待在这种情况下应遵循的最佳做法是什么

web-services authentication spring-security oauth-2.0 basic-authentication
1个回答
0
投票

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

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

我会让使用基本OAuth的任何客户端更新到客户端凭据,这几乎是相同的,需要呼叫者ID和呼叫者机密。

这两种类型的客户端都可以调用列表端点,并且在两种情况下,您的API都需要验证访问令牌,如果需要,请识别调用方,然后可能过滤允许调用方获取的项目。

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