Autorizar aplicações de parceiros interorganizacionais para o Microsoft Planetary Computer Pro

Este artigo orienta administradores de TI e cloud no processo de autorização de uma aplicação parceira de terceiros para aceder aos recursos do GeoCatalog. Ao completar estes passos, permite que organizações parceiras — como fornecedores de dados geoespaciais ou serviços de análise — leiam e escrevam dados para os seus Microsoft Planetary Computer Pro GeoCatalogs.

Pré-requisitos

  • Conta do Azure com uma subscrição ativa - crie uma conta gratuitamente
  • Um recurso GeoCatalog existente
  • Uma das seguintes funções Microsoft Entra ID:
    • Administrador Global
    • Administrador de aplicativos
    • Administrador de aplicativos na nuvem
  • Função de Proprietário ou Administrador de Acesso ao Utilizador no recurso GeoCatalog
  • Azure CLI instalado e configurado - instalar o Azure CLI
  • Informação do seu parceiro:
    • ID da Aplicação do Parceiro (cliente)
    • URI de redirecionamento configurado no registo da aplicação do parceiro (Opcional)

Visão geral

Autorizar uma candidatura parceira envolve três passos principais:

  1. Crie um principal de serviço para a candidatura do sócio ao seu inquilino
  2. Conceder consentimento administrativo aos pedidos de autorização da candidatura
  3. Atribuir funções do GeoCatálogo ao principal do serviço
flowchart LR
    A[Receive partner<br/>app details] --> B[Create service<br/>principal]
    B --> C[Grant admin<br/>consent]
    C --> D[Assign GeoCatalog<br/>Administrator role]
    D --> E[Partner can<br/>access GeoCatalog]

Crie um principal de serviço para a aplicação parceira

Um principal de serviço é a representação de uma aplicação no seu tenant Microsoft Entra. Criar um principal de serviço para o ID da aplicação do parceiro estabelece a identidade à qual pode depois conceder permissões.

  1. Iniciar sessão no Azure CLI com uma conta que tenha permissões de Administrador de Aplicações:

    az login --tenant <your-tenant-id>
    
  2. Verifique se está autenticado na entidade correta:

    az account show --query "{TenantId:tenantId, User:user.name}" -o table
    
  3. Verifique se já existe um principal de serviço para a candidatura parceira:

    az ad sp list --filter "appId eq '<partner-application-id>'" --query "[0].id" -o tsv
    

    Se este comando devolver um ID de objeto, o principal de serviço já existe. Salta para a secção seguinte.

  4. Crie o principal do serviço:

    az ad sp create --id <partner-application-id>
    

    Exemplo de saída:

    {
      "accountEnabled": true,
      "appId": "f914857f-af79-4a22-8a37-85e772c01b7f",
      "displayName": "Partner Geospatial App",
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      ...
    }
    
  5. Guarde o valor de id do principal de serviço (ID do objeto) para utilização nas etapas seguintes:

    # Store the service principal object ID
    SP_ID=$(az ad sp list --filter "appId eq '<partner-application-id>'" --query "[0].id" -o tsv)
    echo "Service Principal ID: $SP_ID"
    

O consentimento do administrador autoriza a aplicação parceira a usar as permissões solicitadas. Este passo é obrigatório antes de a aplicação poder autenticar-se com o seu inquilino. O seu parceiro deve fornecer um link para realizar a ação solicitada como parte do processo de integração na aplicação.

Observação

Pode, opcionalmente, construir este URL por si mesmo:

Construa o URL de consentimento do administrador usando o seu ID de inquilino e o ID da aplicação do parceiro:

https://login.microsoftonline.com/<your-tenant-id>/adminconsent?client_id=<partner-application-id>&redirect_uri=https://localhost:8080/callback

O URI de redirecionamento deve corresponder a um dos URIs configurados no registo da aplicação do parceiro. Confirma o URI correto com o teu parceiro.

  1. Abra o URL num navegador web e inicie sessão com uma conta de Administrador Global ou Administrador de Aplicações.

  2. Revise as permissões solicitadas e selecione Aceitar para conceder o consentimento.

    Depois de concedido o consentimento, és redirecionado para o URI de redirecionamento especificado. Podes fechar esta janela do navegador.

  3. Verifique se o consentimento do administrador foi concedido verificando as permissões do principal do serviço:

    az rest --method GET --url "https://graph.microsoft.com/v1.0/servicePrincipals/$SP_ID/oauth2PermissionGrants"
    

    Exemplo de saída quando o consentimento foi concedido:

    {
      "value": [
        {
          "clientId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "consentType": "AllPrincipals",
          "id": "abc123def456",
          "principalId": null,
          "resourceId": "98765432-abcd-ef12-3456-7890abcdef12",
          "scope": "User.Read"
        }
      ]
    }
    

    Se o value array estiver vazio, o consentimento do administrador ainda não foi concedido.

Também pode conceder consentimento de administrador através do centro de administração Microsoft Entra:

  1. Inicie sessão no Centro de administração do Microsoft Entra.
  2. Navegar para Identidade>Aplicações>Aplicações Empresariais
  3. Selecione o filtro de Tipo de Aplicação e defina o valor "Todas as Aplicações"
  4. Encontre a candidatura parceira usando a barra de pesquisa para inserir o nome ou ID da candidatura. Selecione a aplicação parceira da lista filtrada.
  5. Selecionar permissões de segurança> na barra lateral esquerda
  6. Selecione Conceder consentimento administrativo para [o seu inquilino]
  7. Rever e aceitar as permissões

Atribuir o papel apropriado no GeoCatálogo

O principal de serviço para o seu fornecedor de dados ou serviços precisa da função adequada para interagir com os recursos do GeoCatalog. Atribua o papel de Leitor do GeoCatálogo a aplicações que só precisam de acesso de leitura ao seu GeoCatálogo. Atribua o papel de Administrador do GeoCatálogo a aplicações que precisam de criar coleções, ingerir dados e gerir itens no seu GeoCatálogo.

Observação

A funcionalidade de integração de aplicações parceiras está atualmente em pré-visualização e não suporta um papel específico e limitado de acesso para parceiros de dados ou de serviços. Por esta razão, recomenda-se durante o período de pré-visualização que os clientes criem um recurso GeoCatalog dedicado a um parceiro específico para evitar o acesso a outros dados privados da organização.

  1. Obtenha o ID do seu recurso GeoCatalog:

    # Set your resource details
    SUBSCRIPTION_ID="<your-subscription-id>"
    RESOURCE_GROUP="<your-resource-group>"
    GEOCATALOG_NAME="<your-geocatalog-name>"
    
    # Construct the resource ID
    GEOCATALOG_RESOURCE_ID="/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Orbital/geoCatalogs/$GEOCATALOG_NAME"
    
  2. Verifique se o recurso GeoCatalog existe e tem acesso:

    az resource show --ids $GEOCATALOG_RESOURCE_ID --query "{Name:name, Location:location, Type:type}" -o table
    
  3. Encontre a definição de função desejada:

    az role definition list --name "GeoCatalog Administrator" --query "[0].id" -o tsv
    
  4. Verifique se a atribuição de função já existe:

    az role assignment list --assignee $SP_ID --scope $GEOCATALOG_RESOURCE_ID --query "[?roleDefinitionName=='GeoCatalog Administrator']" -o table
    
  5. Crie a atribuição de funções:

    az role assignment create \
      --assignee $SP_ID \
      --role "GeoCatalog Administrator" \
      --scope $GEOCATALOG_RESOURCE_ID
    

    Exemplo de saída:

    {
      "id": "/subscriptions/.../providers/Microsoft.Authorization/roleAssignments/...",
      "principalId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "roleDefinitionName": "GeoCatalog Administrator",
      "scope": "/subscriptions/.../resourceGroups/.../providers/Microsoft.Orbital/geoCatalogs/...",
      ...
    }