我已经在Azure Maps上创建了一个密钥,并在html页面上使用了它来查看地图。 但是任何人如果查看页面源代码都可以看到我的地图API密钥。 因此,如果有人拥有我的钥匙,他们可以在其网站上使用它。 如您所知,这项服务是一项付费服务,没有人希望他们的账单高昂。
如何将Azure Maps Key的使用限制为特定域名?
答案 0 :(得分:0)
我认为Azure Maps不允许您将API密钥当前限制为特定域。
尽管Google和Bing都提供了API密钥的域限制,但这并不是一个完整的解决方案。仍然可以通过伪造HTTP Referer标头来欺骗您的域-请参见this。
因此,理想情况下,为了获得全面的安全性(尤其是对于付费帐户),您想要执行以下操作之一:
1:为您的应用提供轻量级的后端代理。您的前端应用程序/客户端调用您的后端(可以是简单的Node.js应用程序),它首先验证客户端(由您决定如何处理),然后将调用简单传递给Azure Maps并返回响应给客户。通过这种方式,密钥实际上存储在后端中,该密钥使用它来调用Azure。
2:您还可以考虑将API密钥存储在Azure KeyVault中并在运行时获取它们。 Here's如果您感兴趣的话。
答案 1 :(得分:0)
Azure Maps现在通过Azure Active Directory提供了更高的安全性选项,可以代替密钥来使用:https://docs.microsoft.com/en-us/azure/azure-maps/azure-maps-authentication可以在公共和私有应用程序中使用。