Compartilhar via


Como proteger o aplicativo Web de página única com uma credenciais não interativas

Proteja um aplicativo Web de página única com o Microsoft Entra ID, mesmo quando o usuário não conseguir entrar no Microsoft Entra ID.

Para criar esse fluxo de autenticação não interativo, criaremos um serviço Web seguro no Azure Functions que é responsável por adquirir tokens de acesso do Microsoft Entra ID. Este serviço Web estará exclusivamente disponível somente para seu aplicativo Web de página única.

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.

    Captura de tela mostrando suas opções de autenticação do Azure Mapas no portal do Microsoft Azure.

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

Dica

Os Azure Mapas podem dar suporte a tokens de acesso de fluxos de interatividade ou logon do usuário. Você pode usar fluxos interativos para um escopo mais restrito de revogação de acesso e de gerenciamento de segredos.

Criar uma função do Azure

Para criar um aplicativo de serviço Web seguro que seja responsável pela autenticação no Microsoft Entra ID:

  1. Crie uma função no portal do Azure. Para saber mais, confira Introdução a Azure Functions.

  2. Configure a política de CORS na função do Azure para ser acessível pelo aplicativo Web de página única. Isso protegerá os clientes do navegador para as origens permitidas do seu aplicativo Web. Para saber mais, confira Adicionar funcionalidade CORS.

  3. Adicione uma identidade atribuída pelo sistema na função do Azure para habilitar a criação de uma entidade de serviço para autenticar no Microsoft Entra ID.

  4. Conceda acesso baseado em função para a identidade atribuída pelo sistema à conta do Azure Mapas. Para obter mais informações, consulte Controle de acesso baseado em função.

  5. Escreva o código para o Azure Function e obtenha tokens de acesso do Azure Mapas usando a identidade atribuída pelo sistema com um dos mecanismos com suporte ou o protocolo REST. Para obter mais informações, consulte Obter tokens para recursos do Azure

    Aqui está um exemplo de protocolo REST:

    GET /MSI/token?resource=https://atlas.microsoft.com/&api-version=2019-08-01 HTTP/1.1
    Host: localhost:4141
    

    Veja aqui um exemplo de resposta:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "access_token": "eyJ0eXAi…",
        "expires_on": "1586984735",
        "resource": "https://atlas.microsoft.com/",
        "token_type": "Bearer",
        "client_id": "..."
    }
    
  6. Configurar a segurança para o HttpTrigger da função do Azure:

    1. Criar uma chave de acesso de função
    2. Ponto de extremidade HTTP seguro para o Azure Function na produção.
  7. Configure o SDK Web do Azure Mapas no aplicativo Web.

    //URL to custom endpoint to fetch Access token
    var url = 'https://{App-Name}.azurewebsites.net/api/{Function-Name}?code={API-Key}';
    
    var map = new atlas.Map('myMap', {
                center: [-122.33, 47.6],
                zoom: 12,
                language: 'en-US',
                view: "Auto",
            authOptions: {
                authType: "anonymous",
                clientId: "<insert>", // azure map account client id
                getToken: function(resolve, reject, map) {
                    fetch(url).then(function(response) {
                        return response.text();
                    }).then(function(token) {
                        resolve(token);
                    });
                }
            }
        });
    
        // use the following events to debug, you can remove them at any time.
        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 de aplicativo de página única:

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

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