这是挑战:
服务/业务层有一个 REST (JSON) 接口。有两种客户端可以调用 API:在浏览器中运行的 web 应用程序和移动应用程序 (Android)。两者都是公开的。使用授权 (!) webapp 或授权 (!) 移动应用程序的每个人都应该有权访问资源。应禁止所有未经授权的客户端(例如脚本)。
注意:没有限制有多少或哪些用户可以访问服务层 -> 客户端公钥证书可能无法使用。只有客户端软件必须被授权。
在我看来,唯一的解决方案是“默默无闻”。
想法:
- 从服务器加载一个随机的 JS 函数(我们称之为“挑战”),它在浏览器(或应用程序)中执行,以特定方式对浏览器进行指纹识别(浏览器缺陷?),计算结果并发送结果每次调用 REST-API 时返回。
你有什么进一步的想法或建议吗?
提前谢谢你,对不起我的英语不好
编辑:
我的问题与用户身份验证和/或授权无关,而是与客户端软件身份验证 + 授权有关。
我的问题的背景是,我自己的应用程序(android + web)有一个 RESTful 后端,我不希望有人在它上面创建自己的客户端软件。这样做的原因是因为它是一个商业网站/应用程序,它提供了一些收集起来非常昂贵的数据。我想推广网站和移动应用程序,而不是 RESTapi(或某些第三方竞争对手)。