Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Configurando uma conexão única para o IBM Lotus Connections no ambiente Kerberos

Yang Chao Feng, Software Engineer, IBM
Yang Chao Feng trabalha no IBM China Software Development Lab em Pequim, no IBM Lotus Connections. Entre em contato com ele pelo e-mail yangcf@cn.ibm.com.
Li Sheng Shuang, Software Engineer, IBM
Li Sheng Shuang trabalha no IBM China Software Development Lab em Pequim, no IBM Lotus Connections. Entre em contato com ela pelo e-mail nvenkatr@us.ibm.com.
Yu Xiao Feng, Staff Software Engineer, IBM
Yu Xiao Feng é engenheiro da Equipe de Software, com vasta experiência em soluções para a Web e trabalha no IBM China Software Development Lab em Xangai. Entre em contato com ele pelo e-mail yuxiaof@cn.ibm.com.

Resumo:  Neste artigo, discutiremos a configuração de uma solução de conexão única baseada no Kerberos a partir de um desktop Microsoft® Windows® para o IBM® Lotus® Connections sendo executado no IBM WebSphere® Application Server.

Data:  07/Out/2011
Nível:  Intermediário
Atividade:  6732 visualizações
Comentários:  


Nota do editor: Conhece muito sobre esse tópico? Deseja compartilhar seu conhecimento? Participe hoje do programa de wiki do software IBM Lotus.

Wiki do Lotus Connections

Introdução

Antes de iniciarmos a discussão a respeito da configuração da conexão única no IBM Lotus Connection, precisamos revisar alguns conceitos: Kerberos e SPNEGO. Kerberos é um protocolo de autenticação de rede de computadores desenhado e desenvolvido pelo MIT que permite a comunicação de nós através de uma rede não segura para provar suas identidades uns aos outros de uma maneira segura. A versão 5 do protocolo de autenticação Kerberos é um padrão de RFC (Pedido de Comentários).

SPNEGO (Simple and Protected GSSAPI Negotiation Mechanism) é um pseudomecanismo GSSAPI usado para negociar com uma série de possíveis mecanismos reais. Seu uso mais visível é na extensão de autenticação HTTP Negotiate da Microsoft. Os submecanismos de autenticação incluem o NTLM (NT LAN Manager) e o Kerberos, ambos usados no Microsoft Active Directory. Mais informações podem ser encontradas aqui.

O Lotus Connections pode alavancar o WebSphere Application Server SPNEGO TAI (trust association interceptor) para fornecer o recurso de conexão única (SSO), permitindo que os usuários possam se conectar ao desktop do Microsoft Windows e serem automaticamente conectados aos recursos do Lotus Connections sem a necessidade de autenticação.

A Figura 1 mostra o fluxo de dados de pedido/resposta no ambiente WebSphere Application Server SPNEGO.


Figura 1. Diagrama de fluxo de dados SPNEGO

Leia mais a respeito do WebSphere Application Server SPNEGO TAI em sua Central de Informações.

Neste artigo, ilustremos como é possível ativar o Lotus Connections para fornecer um recurso de conexão única (SSO) para usuários, baseando-se na implementação mostrada na Figura 2.


Figura 2. Topologia de implementação do Lotus Connections SPNEGO

O Active Directory e o Kerberos KDC (key distribution center) são implementados em um sistema Microsoft Windows 2003 Server Enterprise Edition. O sistema do cliente Microsoft Windows é o sistema do cliente Windows dos usuários com navegadores e outros aplicativos implementados. O servidor Lotus Connections 2.5 é o ambiente Lotus Connections 2.5 usando o Active Directory como o diretório do LDAP. O servidor Lotus Connections 2.5 pode ser um cluster de nós múltiplos ou um ambiente de nó único. Neste artigo, implementaremos o servidor Lotus Connections 2.5 no sistema Microsoft Windows.


Tarefas de pré-requisito no Active Directory e no host Kerberos KDC

Há várias tarefas de pré-requisito a serem concluídas pelos administradores do sistema no Active Directory e no host do Kerberos KDC antes de prosseguirmos.

Instale o Active Directory no Microsoft Windows 2003

Consulte http://technet.microsoft.com/en-us/library/aa998088.aspx para saber como instalar o Active Directory no Windows 2003 Server Enterprise Edition. Depois de instalar o Active Directory com sucesso, certifique-se de que os serviços do sistema do centro de distribuição de chaves do Kerberos estejam corretamente configurados na lista de Serviços. Clique duas vezes no serviço Kerberos Key Distribution Center para selecionar as propriedades do Kerberos Key Distribution Center, como mostra a Figura 3. Certifique-se de que o campo do tipo de inicialização está selecionado como Automatic (Automatic está selecionado por padrão).


Figura 3. Propriedades do Kerberos Key Distribution Center

O serviço KDC permite que os usuários efetuem o logon na rede usando o protocolo de autenticação Kerberos V5. Se o serviço for interrompido, os usuários não conseguirão fazer o logon nos serviços de domínio e acesso. Em um sistema que não esteja habilitado com o KDC (que não seja um controlador de domínio), o tipo de inicialização do serviço KDC estará desativado.

Leia mais sobre o Serviço KDC do Microsoft Windows.

Saiba como modificar as entradas do registro de protocolo Kerberos e as chaves de configuração KDC no Microsoft Windows Server 2003. Usamos o valores-padrão nessa configuração.

Certifique-se de ter instalado um servidor DNS nesse sistema Windows 2003, como mostram os detalhes da etapa 9 deste processo. Na página de DNS Registration Diagnostic, siga estas etapas:

  1. Clique em Install e configure o servidor DNS neste computador.
  2. Configure este computador para usar o servidor DNS como servidor DNS preferido.
  3. Clique em Next.
  4. O serviço DNS é executado neste Microsoft Windows 2003 Server. Clique duas vezes no serviço DNS Server para selecionar as propriedades DNS Server, como mostra a Figura 4. Certifique-se de que o campo do tipo de inicialização está selecionado como Automatic (Automatic está selecionado por padrão).

Figura 4. A janela DNS Server Properties

Sincronização do horário para o ambiente Kerberos

O Microsoft Windows Server 2003 hospedando Active Directory é usado como controlador de domínio.

Se a sincronização de horário não for um problema na intranet de sua empresa, pode-se ignorar esta seção.

O Kerberos necessita de que os relógios dos hosts envolvidos estejam sincronizados. Os bilhetes possuem um período de disponibilidade de tempo e se o relógio do host não estiver sincronizado com o relógio do servidor do Kerberos, a autenticação falha.

Geralmente usamos o controlador de domínio como servidor de horário e executamos a tarefa Windows Schedule nos hosts do servidor Lotus Connections para sincronizar a hora com o controlador de domínio. A Figura 5 mostra um exemplo de tarefa que invoca o exemplo TimeSyn.bat a cada minuto.


Figura 5. Scheduled Tasks do Windows para a sincronização de horário.

Em nosso exemplo, os usuários necessitam criar um arquivo em lote chamado TimeSyn.bat em C:\. Por exemplo, se yourdomain.com for o controlador de domínio e um servidor de horário do NTP, o TimeSyn.bat se parecerá com o código mostrado na Listagem 1.


Listagem 1. Código de exemplo para TimeSyn.bat
w32tm /config /manualpeerlist:acme.yourdomain.com.com,0x8 /syncfromflags:MANUAL
net stop w32time
net start w32time
w32tm /resync

Instale as ferramentas de suporte do Microsoft Windows

Instale as ferramentas de suporte do Microsoft Windows no Windows 2003 Server Enterprise Edition.

Essa ferramenta é necessária para executar o comando ktpass no controlador de domínio para definir o SNP para a conta de serviço e gerar o arquivo keytab.

É possível obter detalhes a respeito da maneira como o protocolo Kerberos funciona no Microsoft Windows Server 2003.

Configure o servidor Lotus Connections para suportar o ambiente Kerberos. Quando as tarefas de pré-requisito estiverem concluídas, poderemos iniciar a configuração do servidor Lotus Connections.


Configure o Lotus Connections para usar o Active Directory como um repositório do usuário

Consulte o Centro de Informações de Lotus Connections para saber como configurar a segurança para usar o Active Directory como um repositório do usuário e como preencher o banco de dados dos perfis.

Crie uma conta de serviço para conter o SPN no Active Directory

Um SPN (service principal name) é necessário para que o Lotus Connections no ambiente Kerberos identifique o servidor Lotus Connections. Um conta de serviço é necessária no Active Directory para conter esse SNP.

Para criar a conta de serviço, efetue o login no controlador de domínio, vá até Manage Your Server - Domain Controller (Active Directory) - Manage users and computers in Active Directory, e então clique no botão.

Na página Account, certifique-se de ter selecionado as opções User cannot change password e Password never expires, como mostra a Figura 6.


Figura 6. Propriedades de conta do novo usuário

Defina o SNP e gere um arquivo keytab

Execute o comando ktpass no controlador de domínio para definir o SNP para a conta de serviço e gerar o arquivo keytab:

ktpass –princ <SPN> -out <path_to_keytab> -mapuser <account_name>
-mapOp set –pass <account_password>

onde
<SPN> é o nome principal de serviço Kerberos.

Um principal Kerberos é dividido em três partes: o primário, a instância e o domínio. O formato de um principal Kerberos típico é primary/instance@REALM. Se o Lotus Connections estiver hospedado no sistema SVTLCSPNEGO.cn.example.com e o nome de domínio for CN.EXAMPLE.COM, o SPN é HTTP/SVTLCSPNEGO.cn.example.com@CN.EXAMPLE.COM.

  • <path_to_keytab> é o local onde deseja salvar o arquivo keytab.
  • <account_name> é o nome da conta de serviço.
  • <account_password> é a senha para o nome da conta de serviço.

Considere que a conta do usuário criada na etapa 1 seja lcserver01 e que a senha da conta de serviço seja Password1. Deve-se salvar o arquivo keytab como C:\SVTLCSPNEGO.keytab, para que o comando se pareça com o seguinte código:

ktpass -princ HTTP/SVTLCSPNEGO.cn.ibm.com@CN.IBM.COM -out
c:\SVTLCSPNEGO.keytab -mapuser lcserver01 -mapOp set -pass Passw0rd1

A saída do comando e mostrada na Listagem 2.


Listagem 2. Saída do comando ktpass
Targeting domain controller: SVTLCSPNEGO.cn.ibm.com
Using legacy password setting method
Successfully mapped HTTP/SVTLCSPNEGO.cn.ibm.com to lcserver01.
WARNING: pType and account type do not match. This might cause  problems.
Key created.
Output keytab to c:\SVTLCSPNEGO.keytab:
Keytab version: 0x502
keysize 68 HTTP/SVTLCSPNEGO.cn.ibm.com@CN.IBM.COM ptype 0 (KRB5_NT_UNKNOWN) vno 4 ety
pe 0x17 (RC4-HMAC) keylength 16 (0x5858d47a41e40b40f294b3100bea611f)

Em um cluster do Lotus Connections, é preciso somente selecionar o nome de servidor HTTP da IBM ou o nome de host virtual (os usuários acessam o servidor HTTP da IBM ou o host virtual para conhecer os recursos do Lotus Connections) como o nome de instância no nome principal de serviço Kerberos. É necessário gerar o arquivo keytab para todos os nós no cluster do Lotus Connections.

Configure o SPNEGO TAI no WebSphere Application Server

Configure o SPNEGO TAI no console administrativo WebSphere Application Server seguindo as seguintes etapas:

  1. Navegue até Security - Secure administration, applications, and infrastructure, e expanda Web Security. Clique em Trust association.
  2. Selecione a opção Enable trust association para habilitar o TAI.
  3. Selecione Interceptors - com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl - Custom properties.
  4. Adicione as propriedades customizadas mostradas na Listagem 3.

    Listagem 3. Propriedades customizadas para SPNEGO TAI
    
    
    com.ibm.ws.security.spnego.SPN1.hostName=< hostname>
    com.ibm.ws.security.spnego.SPN1.NTLMTokenReceivedPage=<TAIRedirectPage_location>
    com.ibm.ws.security.spnego.SPN1.spnegoNotSupportedPage=<TAIRedirectPage_Location>
    com.ibm.ws.security.spnego.SPN1.filter=request-url!=
                                       /seedlist/authverify;request-url!=/seedlist/
    server;request-url!=/seedlist/myserver;request-url!=noSPNEGO
    com.ibm.ws.security.spnego.SPN1.filterClass=
                                     com.ibm.ws.security.spnego.HTTPHeaderFilter	
    

onde

  • <hostname> é o nome do servidor com o qual o Lotus Connections é acessado (por exemplo, o nome de servidor HTTP da IBM ou o nome de host virtual).
  • <TAIRedirectPage_Location> é onde a página de redirecionamento SPNEGO TAI é criada no sistema de arquivos local, por exemplo file:///Z:/share/TAIRedirect.html.

É necessário criar o arquivo HTML manualmente. O conteúdo é o código mostrado na Listagem 4.


Listagem 4. Página de redirecionamento SPNEGO TAI TAIRedirect.html
<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.0 Transitional//EN">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html">
<!--
Notes:
 - This file should be served from an unprotected web site. Alternatively, it can 
 be loaded from the WebSphere Application Server filesystem.
 - Any imbedded graphics/javascript/css MUST BE loaded from an unprotected web site.
 - This file will be loaded once when the WebSphere Application Server is initialized. 
 If changes to this file are necessary, the Application Server should be restarted.
 - This file will be returned whenever the SPNEGO TAI receives an NTLM token for 
 ANY application in the cell. In other words, this file is generic for all applications. 
 However, by using the Javascipt document.location, we can get the original URL, 
 and redirect to that original URL with the "?noSPNEGO" text added - thus forcing 
 the standard application userid/password challenge.
-->
<html>
<script language="javascript">
 var origUrl=""+document.location;
   	if (origUrl.indexOf("noSPNEGO")<0) {
		if (origUrl.indexOf('?')>=0) origUrl+="&noSPNEGO";
			else origUrl+="?noSPNEGO";
	}
	function redirTimer() {
		self.setTimeout("self.location.href=origUrl;",0);
	}
</script>

<META HTTP-EQUIV = "Pragma" CONTENT="no-cache">
<script language="javascript">
	document.write("<title> Redirect to "+origUrl+ " </title>");	
</script>
<head>
</head>
<body onLoad="redirTimer()"/>
</html>

  1. Clique em OK para salvar as alterações.

A Figura 7 é uma captura de tela do que é exibido em uma implementação real.


Figura 7. Captura de tela do console administrativo WebSphere para as propriedades customizadas SPNEGO TAI

A Listagem 5 mostra o código de exemplo JACL que pode preencher a configuração do WebSphere SPNEGO TAI da interface wsadmin. Nomeie o arquivo como ConfigTA.jacl e execute-o da seguinte maneira:

wsadmin -f ConfigTA.jacl

Lembre-se de substituir o valor com.ibm.ws.security.spnego.SPN1.hostName com a sua variável de configuração verdadeira.


Listagem 5. ConfigTA.jacl para a configuração do WebSphere SPNEGO TAI
###################################################
proc saveConfig {} {
	global AdminConfig
	$AdminConfig save
}
proc configTA {} {
	global AdminConfig
	
	set trustAssocConfigId [$AdminConfig list TrustAssociation]
	set trust_attrib {}
	
	set matchFound 0
	set	trust_assocEnabled y
	set	trust_interceptorClassName com.ibm.ws.security.spnego.
	TrustAssociationInterceptorImpl
	
        if {$trust_assocEnabled != {}} {
		if {[regexp $trust_assocEnabled y]} {
			lappend trust_attrib [list enabled "true"]
		} else {
			lappend trust_attrib [list enabled "false"]
		}
		$AdminConfig modify $trustAssocConfigId $trust_attrib 
	}
	if {$trust_interceptorClassName != {}} {
	set listOfTAI [$AdminConfig list TAInterceptor]
	foreach tai $listOfTAI {
	 set className [$AdminConfig showAttribute $tai interceptorClassName]
	 if {[string compare $className $trust_interceptorClassName] == 0} {
				set matchFound 1
				###
				break
			}
		}
	}
	if {$matchFound == 1} {			
	 set interceptorConfigId $tai		
	 ###################################################
	 set trust_propertyName com.ibm.ws.security.spnego.SPN1.hostName
	 #replace with your IHS host
	 set trust_propertyValue < !! please replace with your IHS host !!>
	 set trust_propertyRequired false
	 set options_attrib {}		
	 lappend options_attrib [list name $trust_propertyName]
	 lappend options_attrib [list value $trust_propertyValue]
	 lappend options_attrib [list required $trust_propertyRequired]	
			
	 $AdminConfig modify $interceptorConfigId [list 
	 [list trustProperties [list $options_attrib]]]
	 set trustAttrs [$AdminConfig showall $interceptorConfigId]
	 puts stdout "trustAttrs=$trustAttrs"
	 ###################################################
	 set trust_propertyName com.ibm.ws.security.spnego.SPN1.filterClass		
	 set trust_propertyValue com.ibm.ws.security.spnego.HTTPHeaderFilter
	 set trust_propertyRequired false
	 set options_attrib {}
		
	 lappend options_attrib [list name $trust_propertyName]
	 lappend options_attrib [list value $trust_propertyValue]
	 lappend options_attrib [list required $trust_propertyRequired]	
			
	 $AdminConfig modify $interceptorConfigId [list [list trustProperties
	 [list $options_attrib]]]
	 set trustAttrs [$AdminConfig showall $interceptorConfigId]
	 puts stdout "trustAttrs=$trustAttrs"
	 ###################################################
	 set trust_propertyName com.ibm.ws.security.spnego.SPN1.filter
	 set trust_propertyValue "request-url!=/seedlist/authverify;request-url!=
	 /seedlist/server;request-url!=/seedlist/myserver;request-url!=noSPNEGO"
	 set trust_propertyRequired false
	 set options_attrib {}
		
	 lappend options_attrib [list name $trust_propertyName]
	 lappend options_attrib [list value $trust_propertyValue]
	 lappend options_attrib [list required $trust_propertyRequired]		
	 		
	 $AdminConfig modify $interceptorConfigId [list [list trustProperties 
	 [list $options_attrib]]]
	 set trustAttrs [$AdminConfig showall $interceptorConfigId]
	 puts stdout "trustAttrs=$trustAttrs"
	 ###################################################
	 set trust_propertyName com.ibm.ws.security.spnego.
	 SPN1.spnegoNotSupportedPage
	 set trust_propertyValue file:///z:/TAIRedirect.html
	 set trust_propertyRequired false
	 set options_attrib {}
		
	 lappend options_attrib [list name $trust_propertyName]
	 lappend options_attrib [list value $trust_propertyValue]
	 lappend options_attrib [list required $trust_propertyRequired]	
			
	 $AdminConfig modify $interceptorConfigId [list [list trustProperties 
	 [list $options_attrib]]]
	 set trustAttrs [$AdminConfig showall $interceptorConfigId]
	 puts stdout "trustAttrs=$trustAttrs"
	 ###################################################
	 set trust_propertyName com.ibm.ws.security.spnego.
	 SPN1.NTLMTokenReceivedPage
	 set trust_propertyValue file:///z:/TAIRedirect.html
	 set trust_propertyRequired false
	 set options_attrib {}
	 
	 lappend options_attrib [list name $trust_propertyName]
	 lappend options_attrib [list value $trust_propertyValue]
	 lappend options_attrib [list required $trust_propertyRequired]	
			
	 $AdminConfig modify $interceptorConfigId [list [list trustProperties 
	 [list $options_attrib]]]
	 set trustAttrs [$AdminConfig showall $interceptorConfigId]
	 puts stdout "trustAttrs=$trustAttrs"
	 ###################################################
		
	}	     
	
}
#############################################################
#  Main procedure
#############################################################
puts stdout "Run like this: wsadmin -f ConfigTA.jacl"

puts ">configTA"
configTA
saveConfig

Crie um arquivo de configuração Kerberos

Antes de usar o SPNEGO TAI no WebSphere Application Server, é necessário criar um arquivo de configuração Kerberos. Primeiro, copie o arquivo keytab para o servidor onde o Lotus Connections está instalado. Então, execute o script createKrbConfigFile com o utilitário de linha de comandos wsadmin, emitindo um comando mostrado na Listagem 6.


Listagem 6. Comando wsadmin para criar o arquivo de configuração Kerberos
$AdminTask createKrbConfigFile 
    {    
         -krbPath <appserver>\java\jre\lib\security\krb5.conf 
         -realm <REALM> 
         -kdcHost <kdc_hostname> 
         -dns <dns_hostname> 
         -keytabPath <path_to_keytab>
    }
    

onde

  • <appserver> é o caminho do local do WebSphere Application Server, não o local do Lotus Connections.
  • <REALM> é o domínio Kerberos e deve aparecer em letras maiúsculas.
  • <kdc_hostname> é o nome do host do centro de distribuição de chaves.
  • <dns_hostname> é o nome do servidor DNS.
  • <path_to_keytab> é o local do arquivo keytab gerado no controlador de domínio.

Habilite o WebSphere SPNEGO TAI

Para habilitar o SPNEGO TAI, efetue o login no console administrativo do WebSphere Application Server e navegue até Servers - Application servers. Selecione o nome do servidor (geralmente server1), expanda Java and Process Management, e selecione Process Definition - Java Virtual Machine - Custom Properties.

Adicione duas propriedades customizadas:

com.ibm.ws.security.spnego.isEnabled = true
java.security.krb5.conf =<path_to_krb5.conf>

Caso instale o Lotus Connections em instâncias do servidor múltiplas, é necessário repetir essa etapa para todas as instâncias de servidor.

A Listagem 7 mostra o código de exemplo Jython que pode preencher a tarefa da interface wsadmin. Nomeie o arquivo como configspnegojvm.py e execute-o da seguinte maneira:

wsadmin -lang jython -user wasadmin -password wasadmin -f configspnegojvm.py
Your_Cell_Name Your_Node_Name Your_ServerInstance_Name.


Listagem 7. configspnegojvm.py para habilitar as propriedades customizadas JVM SPNEGO
def configspnegojvm(cellName, nodeName, serverName):
   global AdminConfig
   
   krb5conf = "C:/IBM/WebSphere/AppServer/java/jre/lib/security/krb5.conf"   
   javasrv = AdminConfig.getid("/Cell:" + cellName + "/Node:" + nodeName + 
   "/Server:" + serverName + "/")
   
   # Checking for existence of server
   print "Checking for existence of server " + serverName
   if len(javasrv) == 0:
      print "Error -- server not found for name " + serverName + " :: /Cell:" + 
      cellName + "/Node:" + nodeName + "/Server:" + serverName + "/"
      return
   else:
      print "OK. " + javasrv
         
   #======================add JVM Custom Properties=====================
   javaproc = AdminConfig.list('JavaProcessDef', javasrv)
   prop = AdminConfig.list('Property', javaproc)
   jvmp = AdminConfig.list('JavaVirtualMachine', javaproc)
   
   if (prop.find("com.ibm.ws.security.spnego.isEnabled") >= 0):
   		print "INFO: JVM properties seem already exist:"
   		print prop
   		return
   
  
   AdminConfig.create('Property', jvmp, [['name', 'com.ibm.ws.security.
   spnego.isEnabled'], ['value', 'true'], ['required', 'false']])
   AdminConfig.create('Property', jvmp, [['name', 'java.security.krb5.conf'], 
   ['value', krb5conf], ['required', 'false']])      
   AdminConfig.save()
   print "==========Current JVM Custom Properties=========="
   prop = AdminConfig.list('Property', jvmp)
   print prop
   

#Main:
#./wsadmin -lang jython -user wasadmin -password wasadmin -f configspnegojvm.py 
Your_Cell_Name Your_Node_Name Your_ServerInstance_Name

if (len(sys.argv) != 3):
   print "This script requires 3 parameters"
   print "e.g.:./wsadmin -lang jython -user wasadmin -password wasadmin -f 
   configspnegojvm.py Your_Cell_Name Your_Node_Name Your_ServerInstance_Name" 
else:
   cellName = sys.argv[0]
   nodeName = sys.argv[1]
   serverName = sys.argv[2]

   print "cellName: " + cellName
   print "nodeName: " + nodeName
   print "serverName: " + serverName
   print
   configspnegojvm(cellName, nodeName, serverName)   

Configure o proxy Ajax para o cookie LtpaToken

Adicione a seguinte parte ao arquivo proxy-config.tpl para configurar o proxy Ajax para servir de proxy para os cookies LtpaToken. Pode-se executar essa tarefa com o utilitário wsadmin para, primeiramente, extrair os arquivos de configuração, adicionar o seguinte conteúdo e verificar a configuração: É necessário reiniciar as instâncias do servidor para que as mudanças surtam efeito. Veja a Listagem 8.


Listagem 8. Configurações proxy-config.tpl para o cookie LtpaToken do proxy Ajax
<proxy:cookies>
    <proxy:cookie>JSESSIONID</proxy:cookie>
    <proxy:cookie>LtpaToken</proxy:cookie>
    <proxy:cookie>LtpaToken2</proxy:cookie>
</proxy:cookies>

Configure as regras de regravação de HTTP para sair para um URI não protegido

Configure as regras de regravação de URL no arquivo de configuração do servidor HTTP da IBM chamado httpd.conf para sair para uma página da Web não protegida, de modo que a autenticação SPNEGO não efetue o login do usuário novamente. Siga estas etapas:

  1. Abra o arquivo httpd.conf no servidor IBM HTTP, e remova os comentários das seguintes linhas (remova o #):
    #LoadModule rewrite_module modules/mod_rewrite.so
  2. Então adicione o código mostrado na Listagem 9.

Listagem 9. Regras de regravação HTTP
RewriteEngine On
RewriteCond %{REQUEST_URI} /(.*)/ibm_security_logout(.*)
RewriteCond %{QUERY_STRING}  !=logoutExitPage=<your-logout-url>
RewriteRule /(.*)/ibm_security_logout(.*)
    /$1/ibm_security_logout?logoutExitPage=<your-logout-url>
   [noescape,L,R]
   


Onde <your-logout-url> é o URL desprotegido para o qual o usuário é redirecionado após o logout. É um URL desprotegido para prevenir a autenticação SPNEGO.

Certifique-se de configurar a regra de regravação do URL tanto para o HTTP quanto para o HTTPS.


Configurando o navegador do cliente para usar o SPNEGO

Os usuários necessitam configurar seus clientes antes de usarem os serviços Lotus Connections no ambiente Kerberos.

Sistema do cliente do usuário para se une ao domínio

Primeiramente, o sistema do cliente do usuário se une ao domínio. O valor do servidor DNS do sistema do cliente está definido como o endereço do controlador de domínio na janela de propriedades TCP/IP, como mostra a figura 8.


Figura 8. Propriedades TCP/IP no sistema do cliente

Em seguida, siga o link http://support.microsoft.com/kb/295017 para se unir ao domínio. . Depois de ter se unido ao domínio com sucesso, o administrador do controlador de domínio pode ver o novo membro participante na visualização Active Directory Users and Computers, como mostra a figura 9.


Figura 9. Lista de computadores que pertencem ao domínio específico

Configuração do navegador do cliente do usuário

Em seguida, os usuários necessitam configurar seus navegadores do cliente para usar o SPNEGO.

Caso esteja usando o Microsoft Internet Explorer, siga as seguintes etapas:

  1. Na janela do Internet Explorer, selecione Tools - Internet Options - Security.
  2. Selecione o ícone de intranet Local e clique em Sites.
  3. Na janela que será exibida, clique em Advanced. No campo Add this Web site to the zone insira o endereço da Web para o nome de host para que uma conexão única (SSO) possa ser habilitada na lista de Web sites mostrados no campo de Web sites.
  4. Clique em Close, e então clique em OK para completar esta etapa e fechar a janela da intranet Local.



    Figura 10. Configurações da intranet Local


  5. Nesta seção da janela com o nome de Security level for this zone, clique em Custom Level. Na janela Security Settings que aparecerá, role até User Authentication - Logon e selecione a opção Automatic logon only in Intranet zone. Clique em OK e feche a janela Security Settings. Consulte a figura 11.



    Figura 11.Configurações de segurança para a zona de intranet local


  6. Na janela Internet Options, clique na guia Advanced e role até Security settings. Certifique-se de que a opção Enable Integrated Windows Authentication (requires restart) está selecionada. Consulte a figura 12.



    Figura 12. Configuração das Opções de Internet


  7. Clique em OK. Reinicie seu navegador Internet Explorer para ativar essa configuração.

Caso esteja utilizando o navegador Mozilla Firefox, siga estas etapas:

  1. Abra o Firefox.
  2. No campo de endereço, insira  about:config.
  3. No campo Filter, insira  about:config.
  4. Clique duas vezes em.negotiate-auth.trusted-uris. Esta preferência lista os sites que podem empregar a autenticação SPNEGO com o navegador. Insira uma lista, delimitada por vírgulas, de domínios ou URLs confiáveis.

    Observação: Deve-se definir o valor para network.negotiate-auth.trusted-uris como mostra a Figura 13.



    Figura 13. Configuração do navegador Mozilla Firefox


  5. Se a solução SPNEGO implementada utiliza o recurso Kerberos avançado de delegação de credencial, clique duas vezes em network.negotiate-auth.delegation-uris. Essa preferência lista os sites que o browser pode delegar autorização de usuário para o servidor. Insira uma lista, delimitada por vírgulas, de domínios ou URLs confiáveis.
  6. Clique em OK. A configuração será exibida como atualizada.
  7. Reinicie seu navegador Firefox para ativar essa configuração.

Acesse o Lotus Connections com a capacidade de conexão única no ambiente Kerberos

Após concluir todas as etapas anteriores, os usuários podem começar a experimentar o Lotus Connections com uma conexão única. Eles necessitam fazer o logon em seus sistemas e não serão impugnados ao usar os recursos do Lotus Connections. A figura 14 é uma captura de tela de uma implementação real. O usuário Aamir_000_000 efetua o logon em seu cliente Windows (que se uniu ao domínio controlado pelo controlador de domínio), abre o navegador Firefox, insere o endereço da home page do Lotus Connections e efetua o logon no Lotus Connections automaticamente.


Figura 14. Home page do Lotus Connections carregada automaticamente


Resolução de Problemas

Caso surja algum problema ao utilizar o Lotus Connections no ambiente SPNEGO, pode-se ativar o rastreamento no SPNEGO e no Kerberos usando as seguintes configurações:

Configuração da propriedade customizada JVM

com.ibm.security.jgss.debug = all
com.ibm.security.krb5.Krb5Debug = all

Configuração de logs e rastreamento

com.ibm.ws.security.*=all: com.ibm.ws.security.spnego.*=all

Conclusão

Este artigo introduziu o conceito de conexão única SPNEGO no Microsoft Windows e configurações para o Lotus Connections 2.5, fornecendo explicações detalhadas para cada etapa de configuração. Os exemplos de listagens de código deste artigo, que são muito úteis para a automatização do trabalho da administração do sistema, foram verificadas pela equipe de testes do sistema.

Essas etapas de configuração podem ser também aplicadas a outros aplicativos da Web.


Recursos

Sobre os autores

Yang Chao Feng trabalha no IBM China Software Development Lab em Pequim, no IBM Lotus Connections. Entre em contato com ele pelo e-mail yangcf@cn.ibm.com.

Li Sheng Shuang trabalha no IBM China Software Development Lab em Pequim, no IBM Lotus Connections. Entre em contato com ela pelo e-mail nvenkatr@us.ibm.com.

Yu Xiao Feng é engenheiro da Equipe de Software, com vasta experiência em soluções para a Web e trabalha no IBM China Software Development Lab em Xangai. Entre em contato com ele pelo e-mail yuxiaof@cn.ibm.com.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Lotus
ArticleID=478218
ArticleTitle=Configurando uma conexão única para o IBM Lotus Connections no ambiente Kerberos
publish-date=10072011

Conheça a IBM da sua cidade

Virtual Branch Office Brasil

A IBM está mais perto do que você imagina!


Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).