你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
身份验证最佳做法
应用程序的一个最重要的部分是其安全性。 不管用户体验有多好,如果应用程序不安全,黑客也仍可以破坏它。
下面是一些保证 Azure Maps 应用程序安全的提示。 使用 Azure 时,请确保熟悉可用的安全工具。 有关详细信息,请参阅 Azure 安全性简介。
了解安全威胁
获得帐户访问权限的黑客可能会进行无限的可计费事务,从而导致意外成本,并由于 QPS 限制而降低性能。
在考虑运用最佳做法来保护 Azure Maps 应用程序时,需要了解可用的不同身份验证选项。
Azure Maps 中的身份验证最佳做法
使用 Azure Maps 创建面向公众的客户端应用程序时,必须确保你的身份验证密钥不会被公开访问。
基于订阅密钥的身份验证(共享密钥)可以在客户端应用程序或 Web 服务中使用,不过,它是用来保护应用程序或 Web 服务的最不安全方法。 原因是密钥可以从 HTTP 请求轻松获取,并授予对 SKU(定价层)中所有可用的 Azure Maps REST API 的访问权限。 如果你确实要使用订阅密钥,请务必定期轮换这些密钥,并记住共享密钥不允许为其配置生存期,必须手动完成。 此外,应考虑将共享密钥身份验证与 Azure 密钥保管库配合使用,以便可以在 Azure 中安全存储机密。
如果使用 Microsoft Entra 身份验证或共享访问签名 (SAS) 令牌身份验证,将使用基于角色的访问控制 (RBAC) 来授权访问 Azure Maps REST API。 使用 RBAC 可以控制对已颁发的令牌授予哪种访问权限。 应考虑为令牌授予多长时间的访问权限。 与共享密钥身份验证不同,这些令牌的生存期是可配置的。
公共客户端和机密客户端应用程序
公共和机密客户端应用程序之间存在不同的安全考虑因素。 有关公共与机密客户端应用程序的定义的详细信息。请参阅 Microsoft 标识平台文档中的公共客户端和机密客户端应用程序。
公共客户端应用程序
对于在设备或台式计算机或者 Web 浏览器中运行的应用,应考虑使用跨源资源共享 (CORS) 来定义哪些域有权访问你的 Azure Maps 帐户。 CORS 向客户端浏览器指示允许哪些源(例如 "https://microsoft.com")请求 Azure Maps 帐户的资源。
注意
如果你正在开发 Web 服务器或服务,不需要为 Azure Maps 帐户配置 CORS。 如果客户端 Web 应用程序中包含 JavaScript 代码,则 CORS 确实适用。
机密客户端应用程序
对于在服务器上运行的应用(例如 Web 服务和服务/守护程序应用),如果你希望避免管理机密的开销和复杂性,请考虑使用托管标识。 托管标识可为 Web 服务提供一个标识,在使用 Microsoft Entra 身份验证连接到 Azure Maps 时可以使用该标识。 如果是这样,Web 服务会使用该标识来获取所需的 Microsoft Entra 令牌。 应使用 Azure RBAC 来配置要为 Web 服务授予的访问权限,并且应尽可能使用最低特权角色。