为同一 API 混合多个身份验证模型是最佳实践吗? [关闭]
Posted
技术标签:
【中文标题】为同一 API 混合多个身份验证模型是最佳实践吗? [关闭]【英文标题】:Mixing multiple authentication model for same API is a best practice? [closed] 【发布时间】:2020-09-01 10:02:02 【问题描述】:示例 API:
/product/list
/product/save
/product/update
/product/delete
假设/product
是具有过滤器的基本路径,用于在处理请求之前验证身份验证。
目前,实现了 OAuth 身份验证,因此所有请求都在验证访问令牌后得到处理。我们得到了在 OAuth 身份验证模式和 BASIC 身份验证模式下提供唯一上下文的用例,即/product/list
。但似乎为同一上下文混合多个身份验证不是一种正确的方法,因此期待在这种情况下遵循的最佳实践是什么
【问题讨论】:
显示你的 Spring Security 配置。 【参考方案1】:一个好的目标是 API 中的统一方法,它始终接收 OAuth 2.0 访问令牌:
API 的 UI 客户端通过授权代码流 (PKCE) 获取访问令牌 其他客户端(例如后端进程)通过客户端凭据流获取令牌我会让任何使用基本 OAuth 的客户端更新到客户端凭据,这几乎相同,需要呼叫者 ID 和呼叫者密码。
两种类型的客户端都可以调用列表端点,并且在这两种情况下,您的 API 都需要验证访问令牌,在需要时识别调用者,然后可能过滤允许调用者获取的项目。
【讨论】:
以上是关于为同一 API 混合多个身份验证模型是最佳实践吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 C# Web api 上进行用户身份验证的最佳实践是啥?