Acesso Seguro ao Portal ArcGIS Corporativo através do QGIS*
Acesso Seguro ao Portal ArcGIS Corporativo através do QGIS* avatar

*Artigo publicado originalmente pela North Road em 04 de junho de 2020, sendo a republicação com tradução livre autorizada pelo autor https://north-road.com/2020/06/04/securely-accessing-enterprise-arcgis-portal-sites-through-qgis/

Recentemente fomos contatados para aconselhamento sobre nossas recomendações, para aceder com segurança a conteúdos numa implementação do Portal ArcGIS em ambiente corporativo a partir do QGIS. Felizmente essa configuração é totalmente suportada e funciona perfeitamente, graças à integração nativa da autenticação “OAuth2” no QGIS!

Esta publicação detalha instruções passo a passo na configuração do Portal ArcGIS e do QGIS para permitir essa integração. Primeiro criaremos um novo “desktop application” na plataforma do Portal, obtendo as chaves de acesso específicas da “application” para autenticação do “OAuth2“. Em seguida criaremos uma configuração de autenticação no QGIS, e a associaremos a uma ligação ao Portal. Vamos iniciar fazendo a configuração do Portal primeiro…

Criando uma Application

Faça o login no Portal e no separador “Content” clique na opção “Add Item“. Escolha “An application” da lista de opções apresentada:

Defina o tipo de “application” como Desktop:

Pode preencher o resto da caixa de diálogo como melhor entender. Valores sugeridos são:

  • Purpose: Ready to Use
  • Platform: Qt
  • URL: http://qgis.org
  • Tags: QGIS, Desktop, etc.

Agora aqui vai um truque. O Portal irá forçar a anexação de um ficheiro para a “application”. Não é relevante o conteúdo, desde que seja um arquivo zip. Apesar de se poder anexar uma cópia comprimida do instalador do QGIS, isso seria um desperdício de espaço no servidor! Geralmente optamos por um arquivo zip contendo um ficheiro de texto com um link de download nele. Clique em Add Item quando terminar de preencher o formulário, a nova “application” deve estar criada no Portal.

Registando a “Application

A próxima etapa é registar a “application” no Portal, para que se possa obter as chaves necessárias para o login do “OAuth2”. Na página do item recém criado, clique no separador Settings:

Desloque para a parte inferior da página e deverá encontrar o opção Register. Pressione nele, e define o “App Type” para Native. Adicione dois URLs de redirecionamento à lista (não se esqueça de pressionar em Add depois de cada item inserido!):

  1. O endereço público do Portal, exemplo https://mydomain.com/portal
  2. http://127.0.0.1:7070

Por fim pressione em Register na caixa de diálogo. Se tudo correr bem, a secção “App Registration” nas configurações do item deve ser agora preenchido com os detalhes. A partir daqui, copie as informações do “App ID” e “App Secret“, iremos precisar mais tarde:

Determinar “Request URLs”

Uma última configuração que necessitamos determinar antes de iniciarmos o QGIS são o “Portal OAuth Request” e “Token URLs“. Estes são geralmente encontrados adicionando /sharing/rest/oauth2/token no final do URL do seu Portal. Por exemplo, se o URL público do Portal for http://mydomain.com/portal, então os URLs serão:

Request URL: http://mydomain.com/portal/sharing/rest/oauth2/authorize

Token URL: http://mydomain.com/portal/sharing/rest/oauth2/token

Deve ser capaz de abrir ambos os URLs diretamente no navegador. o “Request URL” irá provavelmente apresentar um erro de “redirect URL not specified“, e o “Token URL” irá apresentar um erro de “client_id not specified“. Não há problema, isto é suficiente para verificar se os “URLs” estão corretos. Completamos a etapa do lado do Portal, agora é tempo de iniciar o QGIS!

Criando uma Configuração de Autenticação “OAuth2” no QGIS

No QGIS, selecione Opções no menu Configurações, e ative a aba Autenticação. Precisamos criar uma nova configuração de autenticação, por isso pressione no icone verde +, no lado direito da caixa de diálogo. Verá uma nova caixa de diálogo solicitando os detalhes de autenticação.

Existem alguns truques nesta configuração. Em primeiro lugar, é importante assegurar que usamos exatamente as mesmas definições em todos as nossas máquinas de cliente. Isso inclui o campo ID de autenticação, que apresenta por defeito uma sequência aleatória de carateres gerada automaticamente (embora seja possivel fazer automaticamente o deploy das definições como parte do startup ou setup script do QGIS, isto não será abordado aqui!).

Portanto, do topo da caixa de diálogo, preenchemos o campo “Name” com um nome descritivo do Portal. Depois desbloqueia-se o campo ID pressionando no pequeno icone de cadeado, e introduz-se um ID padrão para identificar o Portal. O campo ID é muito rigoroso, aceitando apenas uma sequência de sete caracteres.

Na caixa de diálogo do Tipo de Autenticação escolha “OAuth2 Authentication” da lista pendente. Há muitas definições que precisam ser preenchidas aqui, mas essas são as essenciais:

  • Grant Flow: defina como “Authorization Code”
  • Request URL: introduza o “Request URL” que determinámos no passo anterior, exemplo: http://mydomain.com/portal/sharing/rest/oauth2/authorize
  • Token URL: introduza o “Token URL” do passo anterior, exemplo: http://mydomain.com/portal/sharing/rest/oauth2/token
  • Refresh Token URL: deixe vazio
  • Redirect URL: deixe por defeito o valor http://127.0.0.1:7070
  • Cliente ID: introduza o APP ID do item “App Registration Information” do Portal (reveja os passos anteriores)
  • Scope: deixe vazio
  • API Key: deixe vazio

É tudo, deixe o resto das definições com os valores por defeito e pressione “Guardar”. Pode fechar agora a caixa de diálogo das Opções.

Adicionado os Detalhes de Conexão do Portal

Por fim, precisamos configurar a conexão do Portal como conexões “ArcGISFeatureServer” e “ArcGISMapServer” no QGIS. Isto é feito através da ferramenta “Gerir Fonte de Dados”, acedido através do menu Camada. Pressione no separador “ArcGISFeatureServer” para iniciar, escolhendo “Novo” no grupo de Ligações de Servidor, no topo da caixa de diálogo. Introduza um nome descritivo para a ligação, e o URL para o “ArcGIS Server REST endpoint” associado com o seu Portal:

Após isso selecionamos a nova configuração “OAuth2” que criámos, no grupo “Authentication“:

Pressione ok, e terminámos! Quando tentar conectar através da nova ligação adicionada, será automaticamente levado para a tela de login do Portal, para poder autenticar no servidor. Depois de introduzir os detalhes, poderá então conectar em segurança ao servidor e ter acesso a todos os items que estão partilhados com a sua conta de utilizador no Portal! Pode então repetir esses passos para criar uma ligação similar no separador “ArcGISMapServer”.

Utilizamos com regularidade esta configuração com os nossos clientes corporativos, e vimos que funciona perfeitamente nas versões recentes do QGIS! Se achar isto útil e têm interesse noutras recomendações de “melhores práticas” para ambientes de trabalho híbrido Open-Source e Esri, contate-nos para discutir as suas necessidades. Na North Road especializamos em assegurar uma integração sem falhas entre sistemas baseados em tecnologia Esri e Software Geoespacial Open Source.

.

NOTAS FINAIS

Caros utilizadores,

O artigo disponibilizado é da autoria do core developer Nyall Dawson, demostrando como conetar o QGIS Desktop a uma plataforma proprietária com autenticação segura. Este feito reforça as potencialidades de interoperabilidade do QGIS, utilizando formatos de web services, sejam abertos ou proprietários. Isso possibilita a redução sustentada de custos de licenciamento para utilizadores que apenas acedam aos dados. Para terem mais funcionalidades deste género, apoiem diretamente o Projeto QGIS ou empresas que o suportam comercialmente.

Os melhores cumprimentos,

QGIS-PT

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *