你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
创建 Azure Maps 帐户时,会自动创建客户端 ID 和共享密钥。 使用 Microsoft Entra ID 或 共享密钥身份验证时,需要这些值进行身份验证。
先决条件
登录到 Azure 门户。 如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
- 熟悉 Azure 资源托管标识。 请务必了解这两种 托管标识类型 及其差异。
- Azure Maps 帐户。
- 熟悉 Azure Maps 的身份验证。
查看身份验证详细信息
重要
建议在使用共享密钥身份验证调用 Azure Maps 时使用主密钥作为订阅密钥。 最好在滚动密钥更改等方案中使用辅助密钥。
若要查看 Azure Maps 身份验证详细信息,请执行以下作:
登录到 Azure 门户。
在“Azure 服务”部分选择“所有资源”,然后选择 Azure Maps 帐户。
在左窗格的设置部分选择 “身份验证 ”。
选择身份验证类别
根据应用程序需求,应用程序安全性有特定的路径。 Microsoft Entra ID 定义特定的身份验证类别,以支持各种身份验证流。 若要为应用程序选择最佳类别,请参阅 应用程序类别。
注释
了解类别和方案有助于保护 Azure Maps 应用程序,无论是使用 Microsoft Entra ID 还是共享密钥身份验证。
如何添加和删除托管标识
若要使用 Azure Maps REST API 启用 共享访问签名(SAS)令牌身份验证 ,需要将用户分配的托管标识添加到 Azure Maps 帐户。
创建管理标识
可以在创建地图帐户之前或之后创建用户分配的托管标识。 可以通过门户、Azure 管理 SDK 或 Azure 资源管理器 (ARM) 模板添加托管标识。 若要通过 ARM 模板添加用户分配的托管标识,请指定用户分配的托管标识的资源标识符。
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleidentity": {}
}
}
删除托管标识
可以通过在门户中禁用功能或通过 Azure 资源管理器模板(和创建标识的方法相同)来删除系统分配的标识。 可以单独删除用户分配的标识。 若要删除所有标识,请将标识类型设置为 "None"。
以这种方式删除系统分配的身份标识也会将其从 Microsoft Entra ID 中删除。 删除 Azure Maps 帐户时,系统分配的标识也会从 Microsoft Entra ID 中自动删除。
若要使用 Azure 资源管理器模板删除所有标识,请更新本部分:
"identity": {
"type": "None"
}
选择身份验证和授权方案
下表概述了 Azure Maps 中的常见身份验证和授权方案。 每个方案描述了可用于访问 Azure Maps REST API 的应用类型。 使用链接了解每个方案的详细配置信息。
重要
对于生产应用程序,我们建议使用 Azure 基于角色的访问控制(Azure RBAC)实现Microsoft Entra ID。
| Scenario | Authentication | Authorization | 开发工作 | 操作努力 |
|---|---|---|---|---|
| 受信任的守护程序应用或非交互式客户端应用 | 共享密钥 | N/A | 中等 | High |
| 受信任的守护程序或非交互式客户端应用 | Microsoft Entra ID | High | Low | 中等 |
| 具有交互式单一登录的 Web 单页应用 | Microsoft Entra ID | High | 中等 | 中等 |
| 具有非交互式登录的 Web 单页应用 | Microsoft Entra ID | High | 中等 | 中等 |
| Web 应用、守护程序应用或非交互式登录应用 | SAS 令牌 | High | 中等 | Low |
| 具有交互式单一登录的 Web 应用程序 | Microsoft Entra ID | High | High | 中等 |
| IoT 设备或输入受限应用程序 | Microsoft Entra ID | High | 中等 | 中等 |
查看内置的 Azure Maps 角色定义
若要查看内置的 Azure Maps 角色定义,
在左窗格中,选择“访问控制(IAM)”。
选择角色选项卡。
在搜索框中输入“Azure Maps”。
结果显示 Azure Maps 的可用内置角色定义。
查看角色分配
若要查看已授予 Azure Maps 访问权限的用户和应用,请转到访问控制(IAM)。 在那里,选择 “角色分配”,然后按 Azure Maps 进行筛选。
在左窗格中,选择“访问控制(IAM)”。
选择“角色分配”选项卡。
在搜索框中输入“Azure Maps”。
结果显示当前的 Azure Maps 角色分配。
请求 Azure Maps 的令牌
从 Microsoft Entra 令牌终结点获取令牌。 在Microsoft Entra ID 请求中,使用以下详细信息:
| Azure 环境 | Microsoft Entra 令牌终结点 | Azure 资源 ID |
|---|---|---|
| Azure 公有云 | https://login.microsoftonline.com |
https://atlas.microsoft.com/ |
| Azure 政府版云 | https://login.microsoftonline.us |
https://atlas.microsoft.com/ |
有关为用户和服务主体从 Microsoft Entra ID 请求访问令牌的详细信息,请参阅 Microsoft Entra ID 的身份验证方案。 若要查看特定方案,请参阅 方案表。
管理和轮换共享密钥
Azure Maps 订阅密钥类似于 Azure Maps 帐户的根密码。 请始终小心保护订阅密钥。 使用 Azure Key Vault 安全地管理和轮换密钥。 避免将访问密钥分发给其他用户、硬编码密钥,或者将它们保存在其他人可访问的纯文本中。 如果你认为密钥可能已泄露,请轮换密钥。
注释
如果可能,我们建议使用 Microsoft Entra ID 而不是共享密钥来授权请求。 Microsoft Entra ID 具有比共享密钥更好的安全性,并且更易于使用。
手动轮换订阅密钥
为了帮助保护 Azure Maps 帐户的安全,我们建议定期轮换订阅密钥。 如果可能,请使用 Azure 密钥保管库管理访问密钥。 如果不使用 Key Vault,则需要手动轮换密钥。
分配了两个订阅密钥,以便轮换密钥。 拥有两个密钥可确保应用程序在整个过程中保持对 Azure Maps 的访问权限。
若要在 Azure 门户中轮换 Azure Maps 订阅密钥,请执行以下作:
- 更新应用程序代码以引用 Azure Maps 帐户的辅助密钥并部署。
- 在 Azure 门户中,导航到 Azure Maps 帐户。
- 在“设置”下选择“身份验证”。
- 若要重新生成 Azure Maps 帐户的主密钥,请选择主密钥旁边的 “重新生成 ”按钮。
- 更新应用程序代码以引用新的主密钥并部署。
- 以相同的方式重新生成辅助密钥。
警告
建议在所有应用程序中使用相同的密钥。 如果在某些地方使用主密钥,而在其他地方使用从密钥,那么在不丢失某些应用程序访问权限的情况下,您将无法轮换密钥。
后续步骤
查找 Azure Maps 帐户的 API 使用指标:
探索演示如何将 Microsoft Entra ID 与 Azure Maps 集成的示例: