<\/HEAD>
<\/A>A maioria de nós aqui está relativamente familiarizada com ArcGIS Server para .Net. No entanto, no suporte, nossa exposição ao produto Java é relativamente limitada, simplesmente porque parece que menos clientes implementaram ArcGIS Server para Java. Neste post, tentarei cobrir um tópico que surge de vez em quando no suporte, como proteger tanto os endpoints de serviços GIS OGC quanto Esri fornecidos pela mesma instância do ArcGIS Server. Este conceito é semelhante, mas implementado de forma diferente do tópico de ajuda do ArcGIS Server para .Net "Múltiplas Instâncias Web do ArcGIS Server para Segurança<\/A>".
Antes de começarmos, vamos revisar algumas melhores práticas (coisas que são boas de saber) que devemos entender antes de iniciar qualquer configuração.
Primeiro, dê uma olhada rápida na documentação<\/A> sobre exportar os manipuladores de serviços web e REST do ArcGIS Server 10 para Java. O servidor web Tomcat que acompanha o ArcGIS Server para Java deve ser usado para desenvolvimento e administração do ArcGIS Server. Ele não é realmente destinado a lidar com a carga de trabalho de produção. Recomendamos usar o ArcGIS Server manager para exportar suas aplicações REST, serviços web e token para um arquivo .WAR padrão e então implantar esses arquivos .WAR no seu servidor web J2EE favorito para uso em produção.
Segundo, sobre segurança e serviços OGC<\/A>:
É importante reconhecer que não há nenhuma provisão <\/EM>na especificação OGC para autenticação baseada em token com serviços OGC. Isso significa que se você quiser proteger seus Serviços WMS, WFS ou WCS, precisará usar um mecanismo de autenticação mais padrão além do serviço de token fornecido pela Esri, como autenticação HTTP BASIC ou DIGEST.
Pronto para uso, sem implantar os manipuladores do GIS Server em um servidor J2EE externo, o ArcGIS Server para Java estará limitado a um único mecanismo de autenticação. No entanto, como discutiremos abaixo, podemos contornar essa limitação implantando múltiplos manipuladores de serviços web - cada um com seu próprio mecanismo de autenticação.
Para acomodar essa configuração, usaremos Tomcat 7<\/A> (tanto 32 quanto 64 bits são aceitáveis, apenas certifique-se de que se você tem o Java no mesmo nível de bits que o Tomcat escolhido).
Enquanto configura o Tomcat, já que estaremos trabalhando com autenticação, você também vai querer configurar HTTPS\/SSL. Caso contrário, suas credenciais e tokens serão transmitidos em texto claro pela rede. Em meus testes, geralmente crio um repositório SSL e certificado autoassinado usando o comando keytool<\/A>. SSL é obrigatório ao trabalhar com o serviço de token no ArcGIS Server para Java, e não há uma maneira suportada de desabilitar esse requisito como existe no produto .Net.
Após instalar e configurar o Tomcat com SSL, configure sua loja de segurança. Para este exemplo, configuraremos o ArcGIS Server para usar Autenticação por Token do ArcGIS e habilitar a segurança para seus serviços. Teste para verificar se a segurança está funcionando.
Em seguida, exportaremos os manipuladores SOAP (serviços web)<\/A>, REST<\/> , e
manipuladores do serviço de token<\/> , e então implantá-los na instância externa do Tomcat e testar para verificar se os serviços podem ser acessados. Quando exporto meus manipuladores web, geralmente uso nomes genéricos para as aplicações, como 'REST', 'Services' e 'Tokens'.
Ao configurar os manipuladores SOAP e REST, certifique-se de habilitar a autenticação usando o serviço de token do ArcGIS e garantir que a URL do serviço de token esteja apontando para o manipulador do serviço de token implantado na instância "externa" do Tomcat.
<\/> Após serem implantados com sucesso no Tomcat, teste para verificar se você pode acessar seus endpoints REST e WSDLs dos serviços. Tenha em mente que a menos que um novo caminho de contexto seja explicitamente definido, essas aplicações serão implantadas na raiz do servidor web. Isso significa que suas URLs para os endpoints dos serviços serão semelhantes a estas (usando a porta HTTPS padrão do Tomcat):
https:\/\myserver:8443/services?wsdl
https:\/\myserver:8443/rest/services
Depois de testar e verificar que os manipuladores dos serviços estão funcionando conforme esperado, incluindo exigir autenticação para os serviços protegidos, é hora de implantar outro manipulador de serviços. Este será usado para acessar nossos serviços OGC seguros. Neste caso, já que sabemos que os serviços OGC não suportam autenticação baseada em token, configuraremos o manipulador dos serviços para usar autenticação básica ou digest. Podemos usar a mesma loja de segurança criada anteriormente quando protegemos os serviços, mas não podemos usar o serviço de token.
<\/> Exporte esta aplicação como um .WAR e nomeie-a algo como "OGC".
Tenha em mente que agora que estamos usando uma instância externa do Tomcat, também precisaremos fazer uma rápida modificação no arquivo tomcat-users.xml. Caso contrário, o Tomcat não será capaz de reconhecer os usuários e papéis definidos com o Tomcat interno e os manipuladores dos serviços criados usando a interface gráfica do ArcGIS Server Manager. Por padrão, você encontrará esse arquivo aqui: C:Program FilesApache Software FoundationTomcat 7.0conf
Abra Tomcat-Users.xml com um editor de texto e descomente a seção usuários e papéis, depois adicione linhas neste arquivo para corresponder aos usuários que você criou na loja de segurança do GIS Server, assim:
<\/> Finalmente, reinicie o serviço Apache Tomcat para que ele reconheça os novos usuários e papéis.
Você então deverá ser capaz de passar credenciais para acessar seus serviços OCG assim:
https:\/\myserver:8443/OGC/myservice/mapserver/wmsserver?request=getcapabilities
É isso!
Para resumir, porque os serviços OGC não suportam autenticação baseada em token, essencialmente exportamos dois conjuntos de manipuladores dos serviços: um para nossos serviços REST usando o serviço de token e outro para nossos serviços OGC usando autenticação básica ou digest. Serviços entregues via SOAP podem ser autenticados usando qualquer endpoint dependendo dos requisitos da aplicação cliente.
Randall W. - Analista de Suporte ao Servidor<\/>EM><\n\n\n\n<\/>BODY<\/>