Proteger um aplicativo Web com entrada do usuário

O guia a seguir se refere a um aplicativo hospedado em servidores Web, que mantém vários cenários de negócios e é implantado em servidores web. O aplicativo tem o requisito de fornecer recursos protegidos apenas para usuários do Microsoft Entra. O objetivo do cenário é habilitar o aplicativo Web para autenticar no Microsoft Entra ID e chamar as APIs REST do Azure Mapas em nome do usuário.

Para ver os detalhes de autenticação da conta do Azure Mapas no portal do Azure:

  1. Entre no portal do Azure.

  2. Navegue até o menu do portal do Azure. Selecione Todos os recursos e o a conta do Azure Mapas.

  3. Em Configurações no painel esquerdo, selecione Autenticação.

    Screenshot showing your Azure Maps authentication options in the Azure portal.

Três valores são criados quando a conta do Azure Mapas é criada. Eles são usados para dar suporte a dois tipos de autenticação no Azure Mapas:

  • Autenticação do Microsoft Entra: a Client ID representa a conta a ser usada para solicitações da API REST. O valor de Client ID deve ser armazenado na configuração de aplicativo, e depois, recuperado antes que sejam feitas solicitações HTTP ao Azure Mapas que usem a autenticação do Microsoft Entra.
  • Autenticação de chave compartilhada: a Primary Key e a Secondary Key são usadas como chaves de assinatura da autenticação de chave compartilhada. A autenticação de chave compartilhada baseia-se na passagem da chave gerada pela conta do Azure Mapas com cada solicitação ao Azure Mapas. É recomendado que você regenere as chaves regularmente. Para manter as conexões atuais durante a regeneração, duas chaves são fornecidas. Uma chave pode estar em uso durante a regeneração da outra. Ao regenerar suas chaves, você precisará atualizar os aplicativos que acessam essa conta para que usem as novas chaves. Para obter mais informações, confira Autenticação no Azure Mapas

Criar um registro de aplicativo no Microsoft Entra ID

Crie o aplicativo Web do Microsoft Entra ID para que os usuários entrem. Em seguida, o aplicativo Web delega o acesso de usuário às APIs REST do Azure Mapas.

  1. No portal do Azure, na lista de serviços do Azure, selecione os Registros de aplicativo>do Microsoft Entra ID>Novo registro.

    A screenshot showing application registration in Microsoft Entra ID.

  2. Insira um Nome, escolha um Tipo de conta de suporte, forneça um URI de redirecionamento que represente o URL para o qual o Microsoft Entra ID emite o token, que é o URL onde o controle do mapa é hospedado. Para obter mais informações, consulte Cenário do Microsoft Entra ID: aplicativo Web que conecta usuários. Conclua as etapas fornecidas do cenário do Microsoft Entra.

  3. Quando o registro de aplicativo for concluído, confirme se a entrada do aplicativo funciona para os usuários. Quando a entrada funcionar, o aplicativo poderá receber acesso delegado às APIs REST do Azure Mapas.

  4. Para atribuir permissões de API delegadas ao Azure Mapas, acesse o aplicativo e selecione Permissões de API>Adicionar uma permissão. Selecione Azure Mapas na lista APIs que minha organização usa.

    A screenshot showing add app API permissions.

  5. Selecionar a caixa de seleção ao lado de Acessar Azure Mapas e selecionar Adicionar Permissões.

    A screenshot showing select app API permissions.

  6. Habilite o aplicativo Web para chamar as APIs REST do Azure Mapas configurando o registro do aplicativo com um segredo do aplicativo. Para obter etapas detalhadas, confira Um aplicativo Web que chama APIs da Web: registro de aplicativo. Um segredo é necessário para autenticar no Microsoft Entra em nome do usuário. O certificado de registro do aplicativo ou segredo deve ser armazenado em um repositório seguro para que o aplicativo Web seja recuperado para autenticar no Microsoft Entra ID.

    • Essa etapa poderá ser ignorada se o aplicativo já tiver um registro de aplicativo do Microsoft Entra e um segredo configurados.

    Dica

    Se o aplicativo estiver hospedado em um ambiente do Azure, é recomendável usar Identidades gerenciadas para recursos do Azure e uma instância de Azure Key Vault para acessar os segredos adquirindo um token de acesso para acessar os segredos ou certificados do Azure Key Vault. Para se conectar ao Azure Key Vault para recuperar segredos, confira tutorial para se conectar por meio de identidade gerenciada.

  7. Implemente um ponto de extremidade de token seguro para o SDK da Web do Azure Mapas para acessar um token.

    • Para obter um controlador de token de exemplo, consulte Amostras do Microsoft Entra ID do Azure Mapas.
    • Para uma implementação que não seja do AspNetCore ou outra, confira Adquirir token para o aplicativo na documentação do Microsoft Entra.
    • O ponto de extremidade de token protegido é responsável por retornar um token de acesso para o usuário autenticado e autorizado para chamar as APIs REST do Azure Mapas.
  8. Para configurar o RBAC (controle de acesso baseado em função) do Azure para usuários ou grupos, confira Conceder acesso baseado em função para usuários.

  9. Configure a página do aplicativo Web com o SDK da Web do Azure Mapas para acessar o ponto de extremidade de token seguro.

var map = new atlas.Map("map", {
        center: [-122.33, 47.64],
        zoom: 12,
        language: "en-US",
        authOptions: {
            authType: "anonymous",
            clientId: "<insert>",  // azure map account client id
            getToken: function (resolve, reject, map) {
                var xhttp = new XMLHttpRequest();
                xhttp.open("GET", "/api/token", true); // the url path maps to the token endpoint.
                xhttp.onreadystatechange = function () {
                    if (this.readyState === 4 && this.status === 200) {
                        resolve(this.responseText);
                    } else if (this.status !== 200) {
                        reject(this.responseText);
                    }
                };

                xhttp.send();
            }
        }
    });
    map.events.add("tokenacquired", function () {
        console.log("token acquired");
    });
    map.events.add("error", function (err) {
        console.log(JSON.stringify(err.error));
    });

Conceder acesso baseado em função para usuários do Azure Mapas

Conceda o RBAC do Azure (controle de acesso baseado em função) atribuindo um grupo do Microsoft Entra ou uma entidade de segurança a uma ou mais definições de função do Azure Mapas.

Para ver as definições de função do Azure disponíveis para o Azure Mapas, confira Exibir as definições de função internas do Azure Mapas.

Para obter etapas detalhadas de como atribuir uma função do Azure Mapas disponível para a identidade gerenciada criada ou a entidade de serviço, confira Atribuir funções do Azure usando o portal do Azure

Para gerenciar com eficiência o aplicativo do Azure Mapas e o acesso a recursos de uma grande quantidade de usuários, confira Grupos do Microsoft Entra.

Importante

Para que os usuários tenham permissão para se autenticar no aplicativo, eles precisam ser criados no Microsoft Entra ID. Para obter mais informações, confira Adicionar ou excluir usuários usando o Microsoft Entra ID.

Para saber mais sobre como gerenciar com eficiência um grande diretório de usuários, confira Microsoft Entra ID.

Aviso

As definições de função internas do Azure Mapas fornecem um acesso de autorização muito grande a muitas APIs REST do Azure Mapas. Para restringir o acesso de APIs a um mínimo, veja criar uma definição de função personalizada e atribuir a identidade atribuída pelo sistema à definição de função personalizada. Esse processo habilita o privilégio mínimo necessário para o aplicativo acessar o Azure Mapas.

Próximas etapas

Compreensão adicional do cenário do aplicativo Web:

Localize as métricas de uso da API para sua conta do Azure Mapas:

Explore amostras que mostram como integrar o Microsoft Entra ID ao Azure Mapas: