android - 仅通过受信任的 Android、iOS 和 Web 应用程序访问 Azure APIM
问题描述
我们的系统有 Android、iOS 和 Azure Web 应用程序,它们将调用为 Azure API APP 创建的 Azure APIM。
问题陈述是:
APIM 应该只能通过 Android、iOS 和 Azure Web 应用程序访问,对于邮递员或任何不同的移动应用程序或 Web 应用程序等其他客户端,APIM 应该给出access denied
错误。我们需要一个解决方案,其中不应从任何受信任的客户端传递标头,因为这可以被利用,并且可以通过第三方客户端(如邮递员等)调用 API。
解决方案
您可以通过 Web 和最终用户设备做的事情不多。在 Web 应用程序中,您无法安全地验证客户端应用程序,因为您可能想要使用的流量和所有机密对用户都是可见的。它在 Android 和 iOS 中更安全一些,但如果手机可能被 root 或越狱。
因此,我建议不要依赖应用程序机密,而应考虑身份验证用户本身。就像任何其他 Web 应用程序一样,用户获取令牌并使用该令牌访问 API。由于它是用户级别的令牌,因此将其公开给用户是安全的。查看 OAuth。如果你想使用 JWT 令牌 APIM 有 validate-jwt 策略来检查它们。
推荐阅读
- python-3.x - 组合两个程序时出现python程序错误
- python - Dataflow job retains old error state after updating
- sql - Woocommerce 按销售的每个人类型汇总报告 - 按可预订产品的日期范围过滤
- javascript - 触发动画onclick而不是悬停
- safari - 使用 Axios 缓存 Safari 请求
- javascript - 使用带有 useEffect 的 Material-UI 自动完成
- amp-html - 是否可以将非 AMP 同意作为 iframe 集成到 AMP 中
- django - 大家好,我正在编写你的第一个 Django 应用程序,第 2 部分教程,我尝试了 _str_() 函数,但它没有给我相同的结果
- r - 如何使用 LMER 运行大型 data.frame?
- javascript - 动态设置表页大小分页