你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

身份验证最佳做法

应用程序的安全性至关重要。 无论用户体验有多出色,黑客可能会破坏其完整性并恶化用户信任,从而破坏不安全的应用程序。

本文包含确保 Azure Maps 应用程序安全性的提示。 使用 Azure 时,请务必熟悉可用的安全工具。 有关详细信息,请参阅 Azure 安全文档中的 Azure 安全性简介

了解安全威胁

如果黑客获得对帐户的访问权限,他们可能会执行无限的可计费交易,从而导致意外成本,并因 QPS 限制降低性能。

若要实现保护 Azure Maps 应用程序的最佳做法,必须了解可用的各种身份验证选项。

Azure Maps 中的身份验证最佳做法

使用 Azure Maps 开发面向公众的客户端应用程序时,确保身份验证机密保持私密且无法公开访问至关重要。

基于订阅密钥的身份验证(共享密钥)可用于客户端应用程序或 Web 服务,但它是保护应用程序或 Web 服务的最低安全方法。 这是因为可以从 HTTP 请求轻松提取密钥,从而授予对 SKU(定价层)中提供的所有 Azure Maps REST API 的访问权限。 如果使用订阅密钥,请确保 定期轮换它们 ,并记住共享密钥不支持可配置的生存期,因此必须手动执行轮换。 请考虑将 共享密钥身份验证与 Azure Key Vault 配合使用,以安全地将机密存储在 Azure 中。

使用 Microsoft Entra 身份验证共享访问签名(SAS)令牌身份验证时,使用 基于角色的访问控制(RBAC)授权访问 Azure Maps REST API。 使用 RBAC 可以指定授予颁发令牌的访问权限级别。 请务必考虑授予访问权限的持续时间。 与共享密钥身份验证不同,这些令牌的生存期是可配置的。

提示

有关配置令牌生存期的详细信息,请参阅:

公共客户端和机密客户端应用程序

公共和机密客户端应用程序之间存在不同的安全考虑因素。 有关公共机密客户端应用程序的定义的详细信息。请参阅 Microsoft 标识平台文档中的公共客户端和机密客户端应用程序

公共客户端应用程序

对于在设备、台式计算机或 Web 浏览器上运行的应用程序,建议使用 跨域资源共享(CORS)定义哪些域可以访问 Azure Maps 帐户。 CORS 通知客户端的浏览器哪些来源(例如“https://microsoft.com”)可以请求 Azure Maps 帐户的资源。

注意

如果要开发 Web 服务器或服务,则不需要使用 CORS 配置 Azure Maps 帐户。 但是,如果客户端 Web 应用程序包含 JavaScript 代码,则 CORS 将适用。

机密客户端应用程序

对于基于服务器的应用程序(如 Web 服务和服务/守护程序应用),请考虑使用 托管标识 来避免管理机密的复杂性。 托管标识可以为您的 Web 服务提供身份,以使用 Microsoft Entra 身份验证连接到 Azure Maps。 然后,Web服务可以使用此标识获取必要的 Microsoft Entra 令牌。 建议使用 Azure RBAC 配置授予 Web 服务的访问权限,并应用可能的 最小特权角色

后续步骤