oauth-2.0 是否可以识别执行API调用的应用程序?

aelbi1ox  于 2022-10-31  发布在  其他
关注(0)|答案(1)|浏览(170)

我有一个与我的API(spring-web)交互的单页应用程序(VueJs)。
通过身份验证(spring-security-OAuth),我可以知道“谁”,哪个用户执行API调用。
我想知道的是,“那个用户用什么应用程序发出他的电话?我的还是他的?”
我不想阻止我的用户针对我的API编写他们自己的应用程序,相反,我希望能够识别这些“外部”应用程序,收集使用统计数据并应用速率限制。
但是我想不出一个可靠的方法来做到这一点。如果有人写了一个脚本来模仿用户通过登录页面进行身份验证,他将获得所有的东西(令牌,cookie,...),这将使我的API网关认为请求来自“我的应用程序”。
任何暗示都是受欢迎的。

oymdgrw7

oymdgrw71#

从技术上讲,用户名和密码不应提供给除您的应用程序用户以外的任何其他人。
但是,如果您仍然想知道正在进行调用的应用程序,可以创建一个自定义HEADER,它可以与每个请求一起传递并记录数据,如果需要,还可以使用不包含该自定义HEADER的Spring安全过滤器来阻止任何请求。
仅当您在API文档中提供将该特定标题中的应用程序名称值传递给第三方API使用者时,日志记录才起作用。

相关问题