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

在 Azure Maps 中管理身份验证

创建 Azure Maps 帐户时,会自动创建客户端 ID 和共享密钥。 使用 Microsoft Entra ID共享密钥身份验证时,这些值是身份验证所必需的。

先决条件

登录 Azure 门户。 如果没有 Azure 订阅,请在开始之前创建一个免费帐户

查看身份验证详细信息

重要

当你使用共享密钥身份验证来调用 Azure Maps 时,建议使用主密钥作为订阅密钥。 辅助密钥最好在滚动密钥更改等场景中使用。

查看 Azure Maps 身份验证详细信息:

  1. 登录 Azure 门户

  2. 选择“Azure 服务”部分中的“所有资源”,然后选择你的 Azure Maps 帐户。

    Select Azure Maps account.

  3. 在左窗格的“设置”部分选择“身份验证”。

    Screenshot showing your Azure Maps subscription key in the Azure portal.

选择身份验证类别

根据应用程序的需求,有特定的应用程序安全途径。 Microsoft Entra ID 定义了特定的身份验证类别,以支持各种身份验证流。 若要为应用程序选择最佳类别,请参阅应用程序类别

注意

了解类别和方案有助于保护 Azure Maps 应用程序,无论你使用的是 Microsoft Entra ID 还是共享密钥身份验证。

如何添加和删除托管标识

若要启用共享访问签名 (SAS) 令牌身份验与 Azure Maps REST API,需要将用户分配的托管标识添加到 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 的应用。 使用链接以了解每个场景的详细配置信息。

重要

对于生产应用程序,建议实施 Microsoft Entra ID 和 Azure 基于角色的访问控制 (Azure RBAC)。

方案 身份验证 授权 开发工作 运营工作
可信守护程序应用/非交互式客户端应用 共享密钥 不可用 中型
可信守护程序/非交互式客户端应用 Microsoft Entra ID
Web 单页应用与交互式单一登录 Microsoft Entra ID
Web 单页应用与非交互式登录 Microsoft Entra ID
Web 应用、守护程序应用或非交互式登录应用 SAS 令牌 中等
具有交互式单一登录的 Web 应用程序 Microsoft Entra ID 中等
IoT 设备或输入受限的应用程序 Microsoft Entra ID

查看内置的 Azure Maps 角色定义

查看内置的 Azure Maps 角色定义:

  1. 在左侧窗格中,选择“访问控制(IAM)”。

  2. 选择“角色”选项卡。

  3. 在搜索框中输入“Azure Maps”。

结果将显示适用于 Azure Maps 的内置角色定义。

View built-in Azure Maps role definitions.

查看角色分配

若要查看已为 Azure Maps 授予访问权限的用户和应用,请转到访问控制 (IAM) 。 在此处选择“角色分配”,然后按“Azure Maps”进行筛选。

  1. 在左侧窗格中,选择“访问控制(IAM)”。

  2. 选择“角色分配”选项卡。

  3. 在搜索框中输入“Azure Maps”。

结果将显示当前的 Azure Maps 角色分配。

View built-in View users and apps that have been granted access.

请求用于 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 订阅密钥,请执行以下操作:

  1. 更新应用程序代码以引用 Azure Maps 帐户的辅助密钥并进行部署。
  2. Azure 门户中,导航到你的 Azure Maps 帐户。
  3. 在“设置”下选择“身份验证” 。
  4. 若要为 Azure Maps 帐户重新生成主密钥,请选择主密钥旁边的“重新生成”按钮。
  5. 更新应用程序代码以引用新的主密钥并进行部署。
  6. 以相同方式重新生成辅助密钥。

警告

建议在所有应用程序中使用相同的密钥。 如果在某些地方使用主要密钥,在其他地方使用辅助密钥,那么将无法轮换密钥,除非让某些应用程序失去访问。

后续步骤

查找 Azure Maps 帐户的 API 使用情况指标:

探索演示如何将 Microsoft Entra ID 与 Azure Maps 集成的示例: