Аутентификация в Azure MapsAuthentication with Azure Maps

Azure Maps поддерживает два способа проверки подлинности запросов: Аутентификация с помощью общего ключа и Azure Active Directory (Azure AD) .Azure Maps supports two ways to authenticate requests: Shared Key authentication and Azure Active Directory (Azure AD) authentication. В этой статье описаны методы проверки подлинности, которые помогут вам реализовать Azure Maps служб.This article explains both authentication methods to help guide your implementation of Azure Maps services.

Примечание

Чтобы улучшить безопасное взаимодействие с Azure Maps, мы теперь поддерживаем протокол TLS 1,2, и мы исправим поддержку TLS 1,0 и 1,1.To improve secure communication with Azure Maps, we now support Transport Layer Security (TLS) 1.2, and we're retiring support for TLS 1.0 and 1.1. Если в настоящее время используется TLS 1. x, оцените готовность TLS 1,2 и разработайте план миграции с помощью тестирования, описанного в статье решение проблемы tls 1,0.If you currently use TLS 1.x, evaluate your TLS 1.2 readiness and develop a migration plan with the testing described in Solving the TLS 1.0 Problem.

Аутентификация на основе общего ключаShared Key authentication

Первичные и вторичные ключи создаются после создания учетной записи Azure Maps.Primary and secondary keys are generated after the Azure Maps account is created. Рекомендуется использовать первичный ключ в качестве ключа подписки при вызове Azure Maps с проверкой подлинности с помощью общего ключа.You're encouraged to use the primary key as the subscription key when calling Azure Maps with shared key authentication. Проверка подлинности с помощью общего ключа передает ключ, созданный учетной записью Azure Maps, в службу Azure Maps.Shared Key authentication passes a key generated by an Azure Maps account to an Azure Maps service. Для каждого запроса к Azure Maps службам добавьте ключ подписки в качестве параметра в URL-адрес.For each request to Azure Maps services, add the subscription key as a parameter to the URL. Вторичный ключ можно использовать в таких сценариях, как изменение ключевых изменений.The secondary key can be used in scenarios like rolling key changes.

Сведения о просмотре ключей в портал Azure см. в разделе Управление проверкой подлинности.For information about viewing your keys in the Azure portal, see Manage authentication.

Совет

В целях безопасности рекомендуется поворачивать первичный и вторичный ключи.For security purposes, it is recommended that you rotate between your primary and secondary keys. Для этого обновите приложение, чтобы использовать вторичный ключ, разверните его, а затем нажмите кнопку цикла/обновления рядом с первичным ключом, чтобы создать первичный ключ.To rotate keys, update your app to use the secondary key, deploy, then press the cycle/refresh button beside the primary key to generate a new primary key. Старый первичный ключ будет отключен.The old primary key will be disabled. Дополнительные сведения о чередовании ключей см. в статье Настройка смены ключей и аудита в Azure Key Vault.For more information on key rotation, see Set up Azure Key Vault with key rotation and auditing

Аутентификация Azure ADAzure AD authentication

Подписки Azure предоставляются с клиентом Azure AD для обеспечения детального контроля доступа.Azure Subscriptions are provided with an Azure AD tenant to enable fine grained access control. Azure Maps предлагает проверку подлинности для Azure Maps служб с помощью Azure AD.Azure Maps offers authentication for Azure Maps services using Azure AD. Azure AD предоставляет проверку подлинности на основе удостоверений для пользователей и приложений, зарегистрированных в клиенте Azure AD.Azure AD provides identity-based authentication for users and applications registered in the Azure AD tenant.

Azure Maps принимает токены доступа OAuth 2.0 для клиентов Azure AD с подпиской Azure, которая содержит учетную запись Azure Maps.Azure Maps accepts OAuth 2.0 access tokens for Azure AD tenants associated with an Azure subscription that contains an Azure Maps account. Azure Maps также принимает маркеры для:Azure Maps also accepts tokens for:

  • Пользователи Azure ADAzure AD users
  • Партнерские приложения, использующие разрешения, делегированные пользователямиPartner applications that use permissions delegated by users
  • Управляемые удостоверения для ресурсов AzureManaged identities for Azure resources

Azure Maps создает уникальный идентификатор (идентификатор клиента) для каждой учетной записи Azure Maps.Azure Maps generates a unique identifier (client ID) for each Azure Maps account. Вы можете запросить токены из Azure AD, если вы объедините этот идентификатор клиента с дополнительными параметрами.You can request tokens from Azure AD when you combine this client ID with additional parameters.

Дополнительные сведения о настройке Azure AD и отправке запросов на получение токенов для Azure Maps см. в статье об управлении аутентификацией.For more information about how to configure Azure AD and request tokens for Azure Maps, see Manage authentication in Azure Maps.

Общие сведения о проверке подлинности в Azure AD см. в статье что такое проверка подлинности?.For general information about authenticating with Azure AD, see What is authentication?.

Управляемые удостоверения для ресурсов Azure и Azure MapsManaged identities for Azure resources and Azure Maps

Управляемые удостоверения для ресурсов Azure предоставляют службы Azure с автоматически управляемым участником безопасности на основе приложений, который может проходить проверку подлинности в Azure AD.Managed identities for Azure resources provide Azure services with an automatically managed application based security principal which can authenticate with Azure AD. С помощью управления доступом на основе ролей Azure (Azure RBAC) участник безопасности управляемого удостоверения может иметь право доступа к службам Azure Maps.With Azure role-based access control (Azure RBAC), the managed identity security principal can be authorized to access Azure Maps services. Примеры управляемых удостоверений: служба приложений Azure, функции Azure и виртуальные машины Azure.Some examples of managed identities include: Azure App Service, Azure Functions, and Azure Virtual Machines. Список управляемых удостоверений см. в статье управляемые удостоверения для ресурсов Azure.For a list of managed identities, see managed identities for Azure resources.

Настройка проверки подлинности приложения Azure ADConfiguring application Azure AD authentication

Приложения будут проходить проверку подлинности в клиенте Azure AD с помощью одного или нескольких поддерживаемых сценариев, предоставляемых Azure AD.Applications will authenticate with the Azure AD tenant using one or more supported scenarios provided by Azure AD. Каждый сценарий приложения Azure AD представляет различные требования в зависимости от бизнес-потребностей.Each Azure AD application scenario represents different requirements based on business needs. Для некоторых приложений может потребоваться вход пользователя в систему, а для работы других приложений может потребоваться вход в приложение.Some applications may require user sign-in experiences and other applications may require an application sign-in experience. Дополнительные сведения см. в разделе потоки проверки подлинности и сценарии приложений.For more information, see Authentication flows and application scenarios.

После того как приложение получит маркер доступа, пакет SDK и/или приложение отправляет HTTPS-запрос со следующим набором обязательных HTTP-заголовков в дополнение к другим REST API заголовкам HTTP:After the application receives an access token, the SDK and/or application sends an HTTPS request with the following set of required HTTP headers in addition to other REST API HTTP headers:

Имя заголовкаHeader Name ЗначениеValue
x-ms-client-idx-ms-client-id 30d7cc….9f5530d7cc….9f55
АвторизацияAuthorization Bearer eyJ0e….HNIVNBearer eyJ0e….HNIVN

Примечание

x-ms-client-id — это GUID Azure Maps на основе учетных записей, который отображается на странице проверки подлинности службы Azure Maps.x-ms-client-id is the Azure Maps account-based GUID that appears on the Azure Maps authentication page.

Ниже приведен пример запроса маршрута Azure Maps, который использует токен носителя Azure AD OAuth:Here's an example of an Azure Maps route request that uses an Azure AD OAuth Bearer token:

GET /route/directions/json?api-version=1.0&query=52.50931,13.42936:52.50274,13.43872
Host: atlas.microsoft.com
x-ms-client-id: 30d7cc….9f55
Authorization: Bearer eyJ0e….HNIVN

Сведения о просмотре идентификатора клиента см. в разделе Просмотр сведений об аутентификации.For information about viewing your client ID, see View authentication details.

Авторизация с помощью управления доступом на основе ролейAuthorization with role-based access control

Azure Maps поддерживает доступ ко всем типам участников для управления доступом на основе ролей Azure (Azure RBAC) , включая отдельных пользователей Azure AD, группы, приложения, ресурсы Azure и управляемые удостоверения Azure.Azure Maps supports access to all principal types for Azure role-based access control (Azure RBAC) including: individual Azure AD users, groups, applications, Azure resources, and Azure Managed identities. Типам субъектов предоставляется набор разрешений, также известных как определение роли.Principal types are granted a set of permissions, also known as a role definition. Определение роли предоставляет разрешения на REST API действий.A role definition provides permissions to REST API actions. Применение доступа к одной или нескольким учетным записям Azure Maps называется областью.Applying access to one or more Azure Maps accounts is known as a scope. При применении участника, определения роли и области создается назначение роли.When applying a principal, role definition, and scope then a role assignment is created.

В следующих разделах обсуждаются основные понятия и компоненты интеграции Azure Maps с Azure RBAC.The next sections discuss concepts and components of Azure Maps integration with Azure RBAC. В рамках процесса настройки учетной записи Azure Maps каталог Azure AD связывается с подпиской Azure, в которой находится учетная запись Azure Maps.As part of the process to set up your Azure Maps account, an Azure AD directory is associated to the Azure subscription which the Azure Maps account resides.

При настройке Azure RBAC вы выбираете субъект безопасности и применяете его к назначению роли.When you configure Azure RBAC, you choose a security principal and apply it to a role assignment. Дополнительные сведения о добавлении назначений ролей в портал Azure см. в статье Добавление и удаление назначений ролей Azure.To learn how to add role assignments on the Azure portal, see Add or remove Azure role assignments.

Выбор определения ролиPicking a role definition

Для поддержки сценариев приложений существуют следующие типы определений ролей.The following role definition types exist to support application scenarios.

Определение роли AzureAzure Role Definition Описание:Description
Читатель данных Azure MapsAzure Maps Data Reader Предоставляет доступ к неизменяемым Azure Maps API-интерфейсам RESTFUL.Provides access to immutable Azure Maps REST APIs.
Участник данных Azure MapsAzure Maps Data Contributor Предоставляет доступ к изменяемым Azure Maps API-интерфейсам RESTFUL.Provides access to mutable Azure Maps REST APIs. Изменяемость определяется действиями: Write и DELETE.Mutability is defined by the actions: write and delete.
Определение пользовательской ролиCustom Role Definition Создайте специальную роль, чтобы предоставить гибкому ограниченный доступ к Azure Maps интерфейсам API-интерфейса RESTFUL.Create a crafted role to enable flexible restricted access to Azure Maps REST APIs.

Некоторым службам Azure Maps может потребоваться повышенный уровень привилегий для выполнения действий записи или удаления в Azure Maps интерфейсах API служб.Some Azure Maps services may require elevated privileges to perform write or delete actions on Azure Maps REST APIs. Для служб, предоставляющих действия записи или удаления, требуется Azure Maps роль участника данных.Azure Maps Data Contributor role is required for services which provide write or delete actions. В следующей таблице описано, какие службы Azure Maps участник данных применимы при использовании действий записи или удаления для данной службы.The following table describes which services Azure Maps Data Contributor is applicable for when using write or delete actions on the given service. Если в службе используются только операции чтения, Azure Maps можно использовать модуль чтения данных вместо участника данных Azure Maps.If only read actions are used on the service, then Azure Maps Data Reader can be used instead of Azure Maps Data Contributor.

Служба Azure MapsAzure Maps Service Определение роли Azure MapsAzure Maps Role Definition
ДанныеData Участник данных Azure MapsAzure Maps Data Contributor
АвторCreator Участник данных Azure MapsAzure Maps Data Contributor
Пространственные данныеSpatial Участник данных Azure MapsAzure Maps Data Contributor

Сведения о просмотре параметров Azure RBAC см. в статье Настройка Azure RBAC для Azure Maps.For information about viewing your Azure RBAC settings, see How to configure Azure RBAC for Azure Maps.

Пользовательские определения ролейCustom role definitions

Одним из аспектов безопасности приложения является применение принципа наименьших привилегий.One aspect of application security is to apply the principle of least privilege. Этот принцип предполагает, что субъекту безопасности следует разрешить только необходимый доступ и не иметь дополнительных прав доступа.This principle implies that the security principal should only be allowed the access which is required, and have no additional access. Создание пользовательских определений ролей может поддерживать варианты использования, требующие дополнительной детализации для контроля доступа.Creating custom role definitions can support use cases which require further granularity to access control. Чтобы создать определение пользовательской роли, можно выбрать определенные действия с данными, которые следует включить в определение или исключить из него.To create a custom role definition, you can select specific data actions to include or exclude for the definition.

Затем пользовательское определение роли можно использовать в назначении ролей любому субъекту безопасности.The custom role definition can then be used in a role assignment for any security principal. Дополнительные сведения об определениях пользовательских ролей Azure см. в статье пользовательские роли Azure.To learn more about Azure custom role definitions, see Azure custom roles.

Ниже приведено несколько примеров сценариев, в которых пользовательские роли могут улучшить безопасность приложений.Here are some example scenarios where custom roles can improve application security.

СценарийScenario Действия с данными настраиваемой ролиCustom Role Data Action(s)
Общедоступная или интерактивная веб-страница входа с плитками базовых карт и без других интерфейсов API.A public facing or interactive sign-in web page with base map tiles and no other REST APIs. Microsoft.Maps/accounts/services/render/read
Приложение, для которого требуется только обратная геокодирование, без других интерфейсов API для интерфейса RESTFUL.An application which only requires reverse geocoding and no other REST APIs. Microsoft.Maps/accounts/services/search/read
Роль для субъекта безопасности, запрашивающего чтение Azure Maps данных карты на основе создателя и интерфейсов API RESTFUL плитки базовой карты.A role for a security principal which requests reading of Azure Maps Creator based map data and base map tile REST APIs. Microsoft.Maps/accounts/services/data/read, Microsoft.Maps/accounts/services/render/readMicrosoft.Maps/accounts/services/data/read, Microsoft.Maps/accounts/services/render/read
Роль для субъекта безопасности, требующая чтение, запись и удаление данных карт на основе создателя.A role for a security principal which requires reading, writing, and deleting of Creator based map data. Это может быть определено как роль редактора данных Map, но не разрешает доступ к другим API-интерфейсам, таким как плитка базовой схемы.This can be defined as a map data editor role but does not allow access to other REST APIs like base map tiles. Microsoft.Maps/accounts/services/data/read, Microsoft.Maps/accounts/services/data/write, Microsoft.Maps/accounts/services/data/deleteMicrosoft.Maps/accounts/services/data/read, Microsoft.Maps/accounts/services/data/write, Microsoft.Maps/accounts/services/data/delete

Основные сведения об областиUnderstanding scope

При создании назначения роли она определяется в иерархии ресурсов Azure.When creating a role assignment, it is defined within the Azure resource hierarchy. В верхней части иерархии находится Группа управления , а самая низкая — ресурс Azure, например учетная запись Azure Maps.At the top of the hierarchy is a management group and the lowest is an Azure resource, like an Azure Maps account. Назначение роли группе ресурсов может обеспечить доступ к нескольким Azure Maps учетным записям или ресурсам в группе.Assigning a role assignment to a resource group can enable access to multiple Azure Maps accounts or resources in the group.

Совет

Общей рекомендацией корпорации Майкрософт является назначение доступа к области учетной записи Azure Maps, так как она предотвращает непреднамеренное обращение к другим учетным записям Azure Maps , существующим в той же подписке Azure.Microsoft's general recommendation is to assign access to the Azure Maps account scope because it prevents unintended access to other Azure Maps accounts existing in the same Azure subscription.

Дальнейшие действияNext steps

Дополнительные сведения об Azure RBAC см. в разделеTo learn more about Azure RBAC, see

Дополнительные сведения о проверке подлинности приложения с помощью Azure AD и Azure Maps см. в разделеTo learn more about authenticating an application with Azure AD and Azure Maps, see

Дополнительные сведения о проверке подлинности Azure Maps Map Control в Azure AD см. в разделеTo learn more about authenticating the Azure Maps Map Control with Azure AD, see