Proteger uma aplicação Web com início de sessão do utilizador

O guia a seguir refere-se a um aplicativo hospedado em servidores Web, que mantém vários cenários de negócios e implanta em servidores Web. O aplicativo tem o requisito de fornecer recursos protegidos protegidos apenas para usuários do Microsoft Entra. O objetivo do cenário é permitir que o aplicativo Web se autentique na ID do Microsoft Entra e chame as APIs REST do Azure Maps em nome do usuário.

Para exibir os detalhes de autenticação da sua conta do Azure Maps no portal do Azure:

  1. Inicie sessão no portal do Azure.

  2. Navegue até o menu do portal do Azure. Selecione Todos os recursos e, em seguida, selecione a sua conta do Azure Maps.

  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 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. O Client 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 e Secondary 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

Você deve criar o aplicativo Web no Microsoft Entra ID para que os usuários entrem. Em seguida, este aplicativo Web delega o acesso do usuário às APIs REST do Azure Maps.

  1. No portal do Azure, na lista de serviços do Azure, selecione Registros>do aplicativo 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 a URL para a qual o ID do Microsoft Entra emite o token, que é a URL onde o controle de mapa está hospedado. Para obter mais informações, consulte Cenário de ID do Microsoft Entra: aplicativo Web que entra em usuários. Conclua as etapas fornecidas no cenário do Microsoft Entra.

  3. Quando o registro do aplicativo estiver concluído, confirme se o login do aplicativo funciona para os usuários. Quando o início de sessão funcionar, a aplicação pode receber acesso delegado às APIs REST do Azure Maps.

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

    A screenshot showing add app API permissions.

  5. Marque a caixa de seleção ao lado de Acessar o Azure Maps e selecione Adicionar permissões.

    A screenshot showing select app API permissions.

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

    • Esta etapa pode ser ignorada se o aplicativo já tiver um registro de aplicativo Microsoft Entra e segredo configurado.

    Gorjeta

    Se o aplicativo estiver hospedado em um ambiente do Azure, recomendamos usar identidades gerenciadas para recursos do Azure e uma instância do Cofre da Chave do Azure para acessar segredos adquirindo um token de acesso para acessar segredos ou certificados do Cofre da Chave do Azure. Para se conectar ao Cofre da Chave do Azure para recuperar segredos, consulte o tutorial para se conectar por meio da identidade gerenciada.

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

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

  9. Configure a página do aplicativo Web com o SDK da Web do Azure Maps 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 ao Azure Maps

Você pode conceder 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

Maior compreensão do cenário do aplicativo Web:

Encontre as métricas de uso da API para sua conta do Azure Maps:

Explore exemplos que mostram como integrar o Microsoft Entra ID com o Azure Maps: