Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo fornece orientação passo a passo para desenvolvedores e administradores configurarem a autenticação segura de aplicativos e o acesso ao Microsoft Planetary Computer Pro. Ao aplicar o ID do Microsoft Entra e identidades gerenciadas, os aplicativos podem se autenticar perfeitamente sem gerenciar credenciais, garantindo uma interação segura com os recursos do Planetary Computer Pro. Quer seu aplicativo seja executado no Azure ou em outros ambientes, este guia descreve as configurações necessárias, incluindo RBAC (controle de acesso baseado em função) e aquisição de token, para habilitar o acesso seguro.
Observação
Para aplicativos que usam o Azure AD B2C ou o Microsoft Entra External ID que dão suporte a recursos como provedores de identidade social, os aplicativos precisam continuar usando essas soluções de identidade para o tráfego de autenticação de proxy, já que o Planetary Computer Pro não oferece suporte a alternativas à autenticação do Microsoft Entra ID.
Opções e recomendações de autenticação
A tabela seguinte resume a abordagem de autenticação recomendada com base no local onde a sua aplicação corre e como acede aos recursos:
| Ambiente de hospedagem de aplicativos | Tipo de acesso necessário | Tipo de identidade recomendado | Explanation |
|---|---|---|---|
| Em execução no Azure (VM, Serviço de Aplicativo, Funções, Aplicativos de Contêiner, etc.) | App-Only (O aplicativo age como ele mesmo) | Identidade gerida (atribuída pelo utilizador recomendada) | Segurança e Geribilidade: Elimina a necessidade de armazenar e gerir credenciais (segredos ou certificados) em código ou configuração. O Azure lida com a rotação de credenciais automaticamente. A atribuição pelo utilizador é preferida para partilha de múltiplos recursos. |
| Em execução no Azure (VM, Serviço de Aplicativo, Funções, Aplicativos de Contêiner, etc.) | Delegado (o aplicativo age em nome de um usuário) | Identidade gerida (atribuída pelo utilizador recomendada) | Aproveita a integração do Azure: Combina os benefícios de segurança da Identidade Gerenciada para o próprio aplicativo com fluxos de autenticação de usuário padrão. Simplifica a configuração da infraestrutura no Azure. |
| Executando fora do Azure (local, outra nuvem, máquina do desenvolvedor) | App-Only (O aplicativo age como ele mesmo) | Principal de Serviço | Padrão para aplicativos externos: O método estabelecido para que aplicativos que não sejam do Azure se autentiquem com a ID do Microsoft Entra. Requer gerir credenciais (segredos ou certificados) de forma segura. |
| Executando fora do Azure (local, outra nuvem, máquina do desenvolvedor) | Delegado (o aplicativo age em nome de um usuário) | Principal de Serviço | Padrão para aplicativos externos: Permite fluxos OAuth 2.0 padrão para entrada e consentimento do usuário para aplicativos fora do Azure, usando a identidade registrada do aplicativo no Entra ID. |
| Executando fora do Azure (alternativa) | App-Only ou Delegado | Identidade gerenciada | Traz benefícios do Azure: Ao hospedar o aplicativo em um serviço de computação do Azure (como uma VM ou Aplicativo de Contêiner), ele pode usar a segurança e a capacidade de gerenciamento aprimoradas das Identidades Gerenciadas, evitando o gerenciamento de credenciais, mesmo que a origem possa ser considerada diferente do Azure. |
Pré-requisitos
- Conta do Azure com uma subscrição ativa - crie uma conta gratuitamente
- Um recurso GeoCatalog existente.
Aplicativos em execução no Azure
Para aplicativos que estão sendo executados no Azure, recomendamos que você crie um tipo de identidade do Microsoft Entra chamada Identidade Gerenciada atribuída pelo usuário para acessar o recurso GeoCatalog. Os aplicativos podem usar as identidades gerenciadas para obter tokens Microsoft Entra (consulte a seção Adquirir token de acesso para acessar o Microsoft Planetary Computer Pro sem ter que gerenciar nenhuma credencial. Para obter mais informações sobre Identidades Gerenciadas e qual tipo escolher, consulte O que são identidades gerenciadas para recursos do Azure. Para criar identidades gerenciadas atribuídas pelo usuário para seu aplicativo em execução no Azure, siga Como usar identidades gerenciadas para o Serviço de Aplicativo e o Azure Functions.
Aplicativos que não estão em execução no Azure
Para aplicativos que não estão sendo executados no Azure, como no local ou hospedados em outros provedores de nuvem, recomendamos que você registre o aplicativo no centro de administração do Microsoft Entra, incluindo um URI de redirecionamento para receber tokens de segurança, para estabelecer uma relação de confiança entre seu aplicativo e a plataforma de identidade da Microsoft. O registo da aplicação no Microsoft Entra cria automaticamente um Principal de Serviço para a aplicação, ao qual pode atribuir funções RBAC posteriormente. Se o seu aplicativo tiver uma configuração para configurar a autenticação do Microsoft Entra ID, você poderá usar o "ID do aplicativo (cliente)" e o "ID do diretório (locatário)" do aplicativo registrado para fazer isso.
Se não for possível registrar o aplicativo no Microsoft Entra como recomendado anteriormente, você terá outra opção de executar o aplicativo em uma VM do Azure ou aplicativo de contêiner. Você pode criar uma identidade gerenciada atribuída pelo usuário e atribuí-la à Máquina Virtual (VM) ou ao aplicativo Contêiner, conforme descrito aqui - Configurar identidades gerenciadas em máquinas virtuais (VMs) do Azure e identidades gerenciadas em Aplicativos de Contêiner do Azure. O aplicativo seria capaz de entrar com a identidade gerenciada para acessar o recurso GeoCatalog. Por exemplo, para que o aplicativo seja executado dentro de uma VM usando uma identidade gerenciada atribuída pelo usuário, você pode usar:
!az login --identity --username <client_id|object_id|resource_id>
Você pode encontrar a ID do cliente, a ID do objeto ou a ID do recurso da identidade gerenciada no portal do Azure. Como alternativa à CLI, o código Python de exemplo está na seção Adquirir token de acesso para acessar o Microsoft Planetary Computer Pro.
azure.identity.DefaultAzureCredential(managed_identity_client_id=<client_id>)
Depois de criar uma identidade gerenciada atribuída pelo usuário ou uma entidade de serviço para seu aplicativo, conforme descrito anteriormente, você precisa decidir o tipo de cenário de acesso ao aplicativo: acesso somente ao aplicativo, agindo apenas como identidade própria do aplicativo ou acesso delegado, agindo em nome de um usuário conectado.
Acesso somente ao aplicativo
Nesse cenário de acesso, o aplicativo age por conta própria, sem nenhum usuário conectado como o comportamento padrão. Você pode prosseguir para a seção Configuração RBAC do Microsoft Planetary Computer Pro para aplicativos para atribuir as funções apropriadas ao aplicativo.
Acesso delegado
Nesse cenário de acesso, um usuário entrou em um aplicativo cliente. O aplicativo cliente acessa o recurso em nome do usuário. Você precisa garantir que os usuários do aplicativo recebam funções RBAC adequadas, conforme descrito na seção Criar e gerenciar usuários. Você também precisa configurar as permissões de API do aplicativo com permissões delegadas seguindo estas etapas:
- Inicie sessão no Centro de administração do Microsoft Entra.
- Navegue até Identity>Applications>Registros do aplicativo e, em seguida, selecione seu aplicativo cliente.
- Em Gerenciar, selecione Permissões de API
- Selecione Adicionar uma permissão
- Selecione a guia APIs que minha organização usa
- Digite Azure Orbital Planetary Computer no campo de pesquisa
- Selecione a entrada correspondente (o ID da aplicação deve ser 6388acc4-795e-43a9-a320-33075c1eb83b). Ele aparece como Azure Orbital Microsoft Planetary Computer Pro.
- Selecione a caixa Permissões delegadas . Marque a caixa ao lado de user_impersonation.
- Selecione Adicionar permissões
- Selecione o link "Conceder consentimento de administrador" (supondo que sua intenção seja conceder consentimento de administrador no locatário para essa permissão)
O padrão de autenticação delegada também é usado ao se conectar a partir do QGIS.
Configuração RBAC do Microsoft Planetary Computer Pro para aplicações
Depois de criar uma identidade gerenciada para um aplicativo em execução no Azure, ou uma entidade de serviço para um aplicativo não em execução no Azure, mas registrado no Microsoft Entra, você precisa conceder permissões adequadas às identidades para acessar o recurso GeoCatalog por meio da configuração RBAC.
Abaixo está um exemplo passo a passo mostrando como configurar Role-Based Controle de Acesso (RBAC) para atribuir a função "Administrador de GeoCatálogo" à identidade gerenciada atribuída pelo usuário de um aplicativo. Você pode seguir estas mesmas etapas no portal do Azure para configurar o RBAC para o principal de serviço de um aplicativo.
No portal do Azure, vá para o separador IAM do recurso Microsoft Planetary Computer Pro no lado esquerdo.
Selecione Adicionar atribuição de função e, em seguida, selecione Administrador do GeoCatalog em "Funções de cargo"
Selecione o botão Avançar e, em seguida, selecione o botão de rádio Identidade gerida
Selecione Selecionar membros e selecione a assinatura e a identidade gerenciada atribuída pelo usuário no painel Selecionar identidades gerenciadas no lado direito.
Selecione Avançar para verificar as informações e concluir a revisão + atribuir.
Adquira o token de acesso para acessar o Microsoft Planetary Computer Pro
Depois de configurar o RBAC para conceder permissões adequadas ao aplicativo, o aplicativo precisa adquirir um token de acesso para autenticar solicitações. Código de exemplo Python abaixo:
import azure.identity
credential = azure.identity.DefaultAzureCredential()
token = credential.get_token("https://geocatalog.spatio.azure.com/")
headers = {"Authorization": f"Bearer {token.token}"}
Observação
Se seu aplicativo tiver várias identidades gerenciadas atribuídas a ele, você precisará passar explicitamente a correta: azure.identity.DefaultAzureCredential(managed_identity_client_id=<client_id>). Como alternativa, você pode configurar variáveis de ambiente do seu aplicativo no portal do Azure para adicionar "AZURE_CLIENT_ID" com a ID de cliente de identidade gerenciada correta.
Observação
Você pode adicionar .default ou user_impersonation como escopo para credential.get_token() com base no comportamento de autenticação de usuário esperado.
Observação
Se o seu aplicativo for um aplicativo Web, sempre que você fizer uma alteração no código ou na configuração do aplicativo, certifique-se de fechar e reabrir o navegador da Web para evitar o uso de credenciais armazenadas em cache.
Consulte Tokens de acesso na plataforma de identidade da Microsoft para obter mais informações sobre tokens de acesso. Quando você adquire tokens de acesso chamando DefaultAzureCredentials(), os tokens adquiridos são armazenados em cache pela instância de credencial. O tempo de vida e a atualização do token são tratados automaticamente. Você pode passar a instância DefaultAzureCredential e invocar GetToken() ou GetTokenAsync() mesmo antes de precisar de um token, de forma a obter sempre um token que não esteja expirado. Se você precisar manter uma longa sessão aberta, poderá manipular a expiração de token em um manipulador de erros para capturar a exceção e adquirir um novo token.
Se você não puder usar DefaultAzureCredentials() e, em vez disso, usar outros métodos, como AzureCliCredential() para adquirir tokens de acesso, precisará gerenciar o tempo de vida do token e atualizar. Consulte Tempos de vida de token configuráveis na plataforma de identidade da Microsoft e Atualizar tokens na plataforma de identidade da Microsoft para obter mais informações.