如何将Azure Maps Key限制为域名?

时间:2018-07-19 23:56:52

标签: azure-maps

我已经在Azure Maps上创建了一个密钥,并在html页面上使用了它来查看地图。 但是任何人如果查看页面源代码都可以看到我的地图API密钥。 因此,如果有人拥有我的钥匙,他们可以在其网站上使用它。 如您所知,这项服务是一项付费服务​​,没有人希望他们的账单高昂。

如何将Azure Maps Key的使用限制为特定域名?

2 个答案:

答案 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可以在公共和私有应用程序中使用。