Proteger um dispositivo restrito de entrada usando a ID do Microsoft Entra e as APIs REST do Azure Maps
Este guia discute como proteger aplicativos ou dispositivos públicos que não podem armazenar segredos com segurança ou aceitar entradas do navegador. Estes tipos de aplicações enquadram-se na categoria de Internet das Coisas (IoT). Os exemplos incluem Smart TVs e aplicações emissoras de dados de sensores.
Para exibir os detalhes de autenticação da sua conta do Azure Maps no portal do Azure:
Inicie sessão no portal do Azure.
Navegue até o menu do portal do Azure. Selecione Todos os recursos e, em seguida, selecione a sua conta do Azure Maps.
Em Configurações no painel esquerdo, selecione Autenticação.
Três valores são criados quando a conta do Azure Maps é criada. Eles são usados para dar suporte a dois tipos de autenticação no Azure Maps:
- Autenticação do Microsoft Entra: O
Client ID
representa a conta que deve ser usada para solicitações de API REST. OClient ID
valor deve ser armazenado na configuração do aplicativo e, em seguida, deve ser recuperado antes de fazer solicitações HTTP do Azure Maps que usam a autenticação do Microsoft Entra. - Autenticação de Chave Compartilhada: Os
Primary Key
eSecondary Key
são usados como a chave de assinatura para autenticação de Chave Compartilhada. A autenticação de Chave Partilhada depende da passagem da chave gerada pela conta do Azure Maps com cada pedido para o Azure Maps. Recomendamos que regenere regularmente as suas chaves. Para manter as conexões atuais durante a regeneração, duas chaves são fornecidas. Uma chave pode estar em uso, enquanto regenera a outra. Quando volta a gerar as suas chaves, tem de atualizar todas as aplicações que acedam a esta conta no sentido de utilizar as novas chaves. Para obter mais informações, consulte Autenticação com o Azure Maps
Criar um registro de aplicativo no Microsoft Entra ID
Nota
- Leitura de pré-requisitos: Cenário: aplicativo de área de trabalho que chama APIs da Web
- O cenário a seguir usa o fluxo de código do dispositivo, que não envolve um navegador da Web para adquirir um token.
Crie o aplicativo baseado em dispositivo na ID do Microsoft Entra para habilitar a entrada do Microsoft Entra, que recebe acesso às APIs REST do Azure Maps.
No portal do Azure, na lista de serviços do Azure, selecione Registros>do aplicativo Microsoft Entra ID>Novo registro.
Insira um Nome, escolha Contas neste diretório organizacional somente como o tipo de conta Suportado. Em Redirecionar URIs, especifique Cliente público / nativo (móvel & desktop) e adicione
https://login.microsoftonline.com/common/oauth2/nativeclient
ao valor. Para obter mais informações, consulte Aplicativo de área de trabalho Microsoft Entra ID que chama APIs da Web: registro de aplicativo. Em seguida, registre o aplicativo.Navegue até Autenticação e habilite Tratar o aplicativo como um cliente público para habilitar a autenticação de código de dispositivo com o ID do Microsoft Entra.
Para atribuir permissões de API delegadas ao Azure Maps, vá para o aplicativo. Em seguida, selecione Permissões>de API Adicionar uma permissão. Em APIs que minha organização usa, pesquise e selecione Azure Maps.
Marque a caixa de seleção ao lado de Acessar o Azure Maps e selecione Adicionar permissões.
Configure o controle de acesso baseado em função do Azure (Azure RBAC) para usuários ou grupos. Para obter mais informações, consulte Conceder acesso baseado em função para usuários ao Azure Maps.
Adicione código para adquirir fluxo de token no aplicativo, para obter detalhes de implementação, consulte Fluxo de código de dispositivo. Ao adquirir tokens, faça referência ao escopo:
user_impersonation
que foi selecionado em etapas anteriores.Gorjeta
Use a Biblioteca de Autenticação da Microsoft (MSAL) para adquirir tokens de acesso. Para obter mais informações, consulte Aplicativo de área de trabalho que chama APIs da Web: configuração de código na documentação do Ative Directory.
Componha a solicitação HTTP com o token adquirido do ID do Microsoft Entra e envie a solicitação com um cliente HTTP válido.
Pedido de amostra
Aqui está um corpo de solicitação de exemplo para carregar uma cerca geográfica simples representada como uma geometria de círculo usando um ponto central e um raio.
POST /mapData?api-version=2.0&dataFormat=geojson
Host: us.atlas.microsoft.com
x-ms-client-id: 30d7cc….9f55
Authorization: Bearer eyJ0e….HNIVN
O seguinte corpo de solicitação de exemplo está em GeoJSON:
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-122.126986, 47.639754]
},
"properties": {
"geometryId": "001",
"radius": 500
}
}]
}
Cabeçalho de resposta de exemplo
Operation-Location: https://us.atlas.microsoft.com/mapData/operations/{udid}?api-version=2.0
Access-Control-Expose-Headers: Operation-Location
Conceder acesso baseado em função para usuários ao Azure Maps
Você pode conceder o controle de acesso baseado em função do Azure (Azure RBAC) atribuindo um grupo ou entidade de segurança do Microsoft Entra a uma ou mais definições de função do Azure Maps.
Para exibir as definições de função do Azure disponíveis para o Azure Maps, consulte Exibir definições de função internas do Azure Maps.
Para obter etapas detalhadas sobre como atribuir uma função disponível do Azure Maps à identidade gerenciada criada ou à entidade de serviço, consulte Atribuir funções do Azure usando o portal do Azure
Para gerenciar com eficiência o aplicativo Azure Maps e o acesso a recursos de uma grande quantidade de usuários, consulte Grupos do Microsoft Entra.
Importante
Para que os usuários tenham permissão para se autenticar em um aplicativo, os usuários devem primeiro ser criados no Microsoft Entra ID. Para mais informações, consulte Adicionar ou eliminar utilizadores com o Microsoft Entra ID.
Para saber mais sobre como gerenciar efetivamente um diretório grande para usuários, consulte ID do Microsoft Entra.
Aviso
As definições de função internas do Azure Maps fornecem um acesso de autorização muito grande a muitas APIs REST do Azure Maps. Para restringir o acesso às APIs ao mínimo, consulte Criar uma definição de função personalizada e atribuir a identidade atribuída pelo sistema à definição de função personalizada. Isso permite o menor privilégio necessário para o aplicativo acessar o Azure Maps.
Próximos passos
Encontre as métricas de uso da API para sua conta do Azure Maps: