Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo fornece diretrizes passo a passo para desenvolvedores e administradores configurarem a autenticação segura do aplicativo e o acesso ao Microsoft Planetary Computer Pro. Aplicando a ID do Microsoft Entra e as identidades gerenciadas, os aplicativos podem se autenticar perfeitamente sem gerenciar credenciais, garantindo uma interação segura com recursos do Planetry Computer Pro. Se seu aplicativo é 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 a ID Externa do Microsoft Entra 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 dá suporte a alternativas à autenticação da ID do Microsoft Entra.
Opções e recomendações de autenticação
A tabela a seguir resume a abordagem de autenticação recomendada com base no local em que seu aplicativo é executado e como ele acessa 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 atua como ele mesmo) | Identidade gerenciada (recomendado atribuído pelo usuário) | Segurança e capacidade de gerenciamento: Elimina a necessidade de armazenar e gerenciar credenciais (segredos ou certificados) em código ou configuração. O Azure lida com a rotação de credenciais automaticamente. Atribuído pelo usuário é preferencial para compartilhamento entre vários recursos. |
| Em execução no Azure (VM, Serviço de Aplicativo, Funções, Aplicativos de Contêiner etc.) | Delegado (o aplicativo atua em nome de um usuário) | Identidade gerenciada (recomendado atribuído pelo usuário) | 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, computador desenvolvedor) | App-Only (o aplicativo atua como ele mesmo) | Principal de Serviço | Padrão para aplicativos externos: O método estabelecido para aplicativos que não são do Azure se autenticar com a ID do Microsoft Entra. Requer o gerenciamento de credenciais (segredos ou certificados) com segurança. |
| Executando fora do Azure (local, outra nuvem, computador desenvolvedor) | Delegado (o aplicativo atua em nome de um usuário) | Principal de Serviço | Padrão para aplicativos externos: Habilita os fluxos padrão do OAuth 2.0 para entrada e consentimento do usuário para aplicativos fora do Azure, usando a identidade registrada do aplicativo na ID do Entra. |
| Executando fora do Azure (alternativa) | App-Only ou Delegado | Identidade Gerenciada | Traz benefícios do Azure: Hospedando 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 de Identidades Gerenciadas, evitando o gerenciamento de credenciais, mesmo que a origem possa ser considerada não-Azure. |
Pré-requisitos
- Conta do Azure com uma assinatura ativa – criar uma conta gratuitamente
- Um recurso do GeoCatalog existente.
Aplicativos em execução no Azure
Para aplicativos em execução 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 do Microsoft Entra (consulte a seção Adquirir token de acesso para acessar o Microsoft Planetary Computer Pro sem precisar gerenciar credenciais. 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 não em execução no Azure
Para aplicativos que não estão em execução no Azure, como locais ou hospedados em outros provedores de nuvem, recomendamos registrar 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. Registrar o aplicativo no Microsoft Entra cria automaticamente uma Entidade de Serviço para o aplicativo, que você pode atribuir funções RBAC posteriormente. Se o aplicativo tiver uma configuração para configurar a autenticação do Microsoft Entra ID, você poderá usar a "ID do aplicativo (cliente) e a ID do Diretório (locatário) do aplicativo registrado" para fazer isso.
Se você não conseguir registrar o aplicativo no Microsoft Entra conforme recomendado anteriormente, terá outra opção de executar o aplicativo em uma VM do Azure ou aplicativo contêiner. Você pode criar uma identidade gerenciada atribuída pelo usuário e atribuí-la à VM (Máquina Virtual) ou aplicativo contêiner, conforme descrito aqui – Configurar identidades gerenciadas em VMs (máquinas virtuais) 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 do 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, atuando apenas como identidade do aplicativo ou acesso delegado, agindo em nome de um usuário conectado.
Acesso somente de aplicativo
Nesse cenário de acesso, o aplicativo atua por conta própria sem nenhum usuário conectado como o comportamento padrão. Você pode prosseguir para a seção Configuração do RBAC do Microsoft Planetary Computer Pro para que os aplicativos atribuam 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 sejam atribuídos a 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:
- Entre no centro de administração do Microsoft Entra
- Navegue até Identidade>Aplicativos>Registros de aplicativo, e 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 o Computador Planetário Orbital do Azure no campo de pesquisa
- Selecione a entrada correspondente (a ID do aplicativo deve ser 6388acc4-795e-43a9-a320-33075c1eb83b). Ele aparece como Microsoft Planetary Computer Pro do Azure Orbital.
- Selecione na caixa de permissões Delegadas . Marque a caixa ao lado de user_impersonation.
- Selecione Adicionar permissões
- Selecione o link "Conceder consentimento do administrador" (supondo que sua intenção é conceder consentimento do administrador no locatário para essa permissão)
O padrão de autenticação delegada também é usado ao se conectar do QGIS.
Configuração do RBAC do Microsoft Planetary Computer Pro para aplicativos
Depois de criar uma identidade gerenciada para um aplicativo em execução no Azure ou uma entidade de serviço para um aplicativo que não está 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 do RBAC.
Veja abaixo um exemplo passo a passo mostrando como configurar Role-Based RBAC (Controle de Acesso) para atribuir a função "Administrador do GeoCatalog" à 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 a entidade de serviço de um aplicativo.
No portal do Azure, acesse a guia IAM do recurso do Computador Planetário Pro da Microsoft à esquerda.
Selecione em Adicionar Atribuição de Função e, em seguida, selecione Administrador do GeoCatalog em "Funções de função de trabalho"
Selecione o botão Avançar e, em seguida, selecione o botão de opção de Identidade Gerenciada
Selecione em Selecionar membros e selecione a assinatura e a identidade gerenciada atribuída pelo usuário no painel Selecionar identidades gerenciadas no lado direito.
Selecione em Avançar para verificar as informações e concluir a revisão + atribuir.
Adquirir token de acesso para acessar o Microsoft Planetary Computer Pro
Depois de configurar o RBAC para conceder permissões adequadas ao aplicativo, o aplicativo precisará adquirir um token de acesso para autenticar solicitações. Código de exemplo do 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 a correta explicitamente: 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 do cliente de identidade gerenciada correta.
Observação
Você pode adicionar .default ou user_impersonation como escopo a credential.get_token() com base no comportamento de autenticação de usuário esperado.
Observação
Se o aplicativo for um aplicativo Web, sempre que você fizer uma alteração na configuração de código ou aplicativo, feche e reabra o navegador da Web para evitar que as credenciais armazenadas em cache sejam usadas.
Consulte tokens do Access 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 do token e a atualização são tratados automaticamente. Você pode passar a instância DefaultAzureCredential e invocar GetToken() ou GetTokenAsync() logo antes de precisar de um token para que você sempre obtenha um token que não tenha expirado. Se você precisar manter uma sessão aberta longa, poderá lidar com a expiração do 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 a vida útil e a atualização dos tokens. Consulte tempos de vida de token configuráveis na plataforma de identidade da Microsoft e atualize tokens na plataforma de identidade da Microsoft para obter mais informações.