我有两个天蓝色的Web应用程序,一个是角6,另一个是.net核心Web API。 Angular应用程序使用API来获取数据。这些API中有一些是公共API。这意味着无需身份验证即可调用它们。
我的问题是,保护这些公共api的最佳方法是什么?通过保护,我的意思是不允许匿名用户调用这些api和滥用数据。
在我看来,这些是我能做的:
基本上,我想限制匿名用户操纵和调用我的发布api,并在不使用任何类型的AD的情况下将不相关或重复的数据推送到我的后端,因为我的api将是公开的。我希望只有几个授权的应用程序可以调用我的api。
请告诉我以上哪种是正确的,请推荐一种更好的方法。
P.S:我的后端是.net core 2.2,
谢谢
答案 0 :(得分:0)
我可以推荐以下解决方案,
02。接下来,在APIM上启用订阅密钥/ API密钥,并将这些密钥保留在Azure密钥保险库中。因此,您无需在前端对这些键进行硬编码。我希望您在Azure上托管此Angular应用程序。 (我不是Angular专家...只需在线检查文档即可) https://docs.microsoft.com/en-us/azure/key-vault/quick-create-node
03。稍后根据您的方案,如果需要,您可以应用费率政策。 https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/api-management/api-management-sample-flexible-throttling.md