首页 > 解决方案 > 具有相同 REST 资源的多种身份验证方法

问题描述

假设您正在构建 REST API,这些 API 将从不同类型的消费者(人类用户、事物、不受信任的本地应用程序)访问,因此每个消费者都有自己的身份验证方法,用于技术或“历史”决策。

例如,用户使用具有某些声明模型的 JWT,而原生应用程序通过 Oauth2 流授权并使用 OAuth 令牌。虽然两者都希望访问相同的端点,因此应用程序需要区分不同模型的身份验证信息并将它们路由到适当的服务

添加 HTTP 标头“X-Auth-Method”并在每个传入请求时检查它很容易,但我问自己它是否足够 RESTful,最重要的是,会给第三方消费者带来问题想要集成他们的软件,并且必须知道/实现某种特定于供应商的行为。

另一种解决方案是提供不同的根端点

然后让 API 网关将请求路由到适当的身份验证服务验证步骤,但实际上两者都公开完全相同的 API。

以 RESTful 方式并意识到构建开放生态系统时出现的所有问题会更正确吗?

标签: resthttpauthenticationapi-design

解决方案


推荐阅读