具有相同REST资源的多种身份验证方法

时间:2019-02-21 18:36:47

标签: rest http authentication api-design

让我们假设您正在构建REST API,可以从不同类型的消费者(人类用户,事物,不受信任的本机应用程序)访问REST API,因此他们每个人都有自己的身份验证方法,以进行技术或“历史性”决策。

例如,用户使用具有某些声明模型的JWT,而使用Oauth2流授权本机应用并使用Oauth令牌。尽管两者都希望访问相同的端点,所以应用程序需要区分不同的身份验证信息模型,并将它们路由到适当的服务

添加HTTP标头“ X-Auth-Method”并在每个传入请求中对其进行检查都很容易,但是我问自己是否足够RESTful,最重要的是,这会引起第三方问题想要集成其软件并且必须了解/实现某种特定于供应商行为的消费者

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

  • api.myapp.com/v1/userapi
  • api.myapp.com/v1/clientapi

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

采用RESTful方式并了解构建开放式生态系统时会遇到的所有担忧,什么会更正确?

0 个答案:

没有答案