是否可以识别执行API调用的应用程序



我有一个单页应用程序(VueJs(,它与我的API(spring-web(交互。

通过身份验证(spring-security OAuth(,我可以知道";谁";,哪个用户执行API调用。

我想知道的是;该用户使用什么应用程序发出呼叫?我的还是他的">

我不想阻止我的用户针对我的API编写他们自己的应用程序,相反,但我希望能够识别这些"应用程序";外部";应用程序,收集使用统计信息并应用速率限制。

然而,我想不出一种可靠的方法来做到这一点。如果有人编写了一个模仿用户通过登录页面进行身份验证的脚本,他将获得一切(令牌、cookie…(,这将使我的API-Gateway认为请求来自;我的应用程序";。

欢迎任何提示。

从技术上讲,除了您的应用程序用户之外,任何其他人都不应该使用用户名和密码。

但是,如果你仍然想知道正在进行调用的应用程序,你可以创建一个自定义HEADER,你可以将其与每个请求一起传递并记录回数据,如果你愿意,你也可以使用不包含该自定义HEADER的spring安全过滤器来阻止任何请求。

只有当您在API文档中提供将特定HEADER中的应用程序名称值传递给第三方API消费者时,日志记录才会起作用。

相关内容

最新更新