Open the menu

    SPNEGO/Kerberos

    O Lumis Portal inclui uma implementação de autenticação integrada utilizando SPNEGO/Kerberos. Para utilizar esta forma de autenticação é necessário efetuar a configuração apropriada no Lumis Portal e no servidor de autenticação Kerberos.

    Para esta forma de autenticação funcionar, é necessário que ambos, o servidor do portal e o navegador cliente tenham acesso ao servidor de autenticação do Kerberos (KDC).

    Os usuários autenticados por esta funcionalidade devem ter login no formato user@mydomain.com.

    Configuração no Lumis Portal

    No Lumis Portal é necessário configurar a classe lumis.portal.authentication.http.SpnegoAuthenticator no elemento <httpAuthenticator> do lumisportalconfig.xml:

    Também é necessário efetuar a devida configuração da conexão com o servidor Kerberos. Para isto, descomentar o elemento kerberos/configurationFile, e se desejado ajustar o caminho para o arquivo desejado:

    No arquivo de configuração do Kerberos (com a configuração exemplo acima, estaria em lumisdata/config/security/krb5.conf), efetuar a configuração correspondente ao ambiente do servidor que será utilizado para autenticação.

    Exemplo de configuração:

    Configurar um LoginModule com nome LumisPortalSpnego para efetuar a autenticação utilizando esta configuração Kerberos (O local de configuração do LoginModule depende de seu servidor de aplicação. Veja nas instruções de instalação do Lumis Portal em seu servidor de aplicação onde o LoginModule LumisPortal foi instalado, e fazer o equivalente para o exemplificado abaixo. Em ambientes sem instrução específica, como no Tomcat, esta configuração deve ser ajustada em lumisdata/config/lumissecuritylogin.config). Exemplo de configuração do LoginModule:

    Na configuração acima, o atributo principal deve corresponder ao usuário que o portal utilizará para acessar o Kerberos. Deve estar presente no keyTab especificado as chaves de autenticação deste usuário.

    Configuração no Active Directory

    Para usar o SPNEGO/Kerberos com o Active Directory, os seguintes passos precisam ser feitos:

    1. Criar um usuário para ser utilizado pelo Lumis Portal para processar as autenticações. Pode ser desejado configurar o usuário para que a senha não expire com o tempo, para evitar ter que manualmente alterar a senha e recriar o keytab para o usuário após a expiração. Para efeitos ilustrativos, nos exemplos será assumido que o login deste usuário é lumisportalservice@MYDOMAIN.COM.
    2. Efetuar o registro de Service Principal Names (SPNs) no usuário. Para esta operação, utilize o setspn.exe pela linha de comando em seu servidor Windows. Caso seu servidor Windows não possua o setspn.exe, obtenha-o instalando o Windows Support Tools.

      Deve ser adicionado ao usuário SPNs na forma de HTTP/<hostname>, onde <hostname> corresponde aos possíveis hosts que podem referenciar o servidor do portal. Por exemplo:

      Para visualizar os SPNs associados ao usuário, pode-se executar:

    3. Gerar um arquivo de keytab contendo as chaves de autenticação para o usuário criado no item (1). Com o JDK é distribuído ktab.exe, no seu diretório bin. Ele deve ser usado para gerar o arquivo de keytab. Ele pode ser executado em qualquer máquina, não precisando necessariamente ser no servidor.

      Para criar o arquivo de keytab, pode-se executar:

      Após executar este comando ele pedirá a senha do usuário. Em seguida o arquivo especificado (no exemplo lumisportal.keytab) será gerado.

      O argumento "-n 0" indica para a chave ter versão (KVNO) 0 (zero). Quando a chave tem versão zero, seu número de versão não será validado com o número de versão no servidor. Pode-se ao invés de zero colocar o número correto da versão, mas neste caso tem que ser igual ao que está armazenado no servidor, caso contrário a chave não funcionará. Para descobrir o número da chave no servidor do Active Directory, execute ADSIEdit.msc, vá até o usuário, abra suas propriedades e veja o valor do atributo msDS-KeyVersionNumber.

      Para visualizar informações sobre as chaves que estão armazenadas em um arquivo de keytab, execute o comando como o exemplo abaixo:

      Após criar o arquivo de keytab, mova-o para a instalação do portal e o referencie no atributo keyTab do Login Module LumisPortalSpnego, como exemplificado anteriormente.

    Navegadores Web

    Uma vez o portal configurado corretamente, os navegadores podem efetuar automaticamente a autenticação dependendo de suas característica e configurações:

    • Internet Explorer: Por padrão efetua a autenticação automática se o endereço acessado for considerado zona de intranet. Pode-se utilizar a funcionalidade de política de grupos do Active Directory para automaticamente configurar as máquinas do domínio para considerarem os endereços do portal como zona de intranet, caso já não seja o caso.
    • Google Chrome: Não possui configuração específica, mas utiliza a mesma configuração que o Internet Explorer.
    • Mozilla Firefox: Acessar about:config e incluir no parâmetro network.negotiate-auth.trusted-uris os endereços, separados por vírgula, que se confia para efetuar a autenticação automática. Em ambiente corporativos, pode-se usar a funcionalidade do Firefox de difusão das configurações no ambiente corporativo para efetuar tal configuração nas máquinas clientes do ambiente.

    Resolução de Problemas

    Caso a autenticação automática não esteja funcionando como esperado, algumas formas de obter mais informações afim de tentar resolver o problema são:

    • Verificar informações presentes nos logs do Lumis Portal.
    • Se não estiver habilitado, em lumislogconfig.xml habilitar o log de depuração da categoria lumis.portal.authentication.http.SpnegoAuthenticator (na configuração padrão todos os logs de depuração já vêm habilitados escrevendo em lumisdata/log/lumis/debug/lumis-debug.*).
    • Habilitar mensagens de depuração do Login Module, colocando parâmetro debug=true no com.sun.security.auth.module.Krb5LoginModule no LumisPortalSpnego. Estas mensagens são normalmente emitidas na saída padrão (System.out) da aplicação.
    • Habilitar mensagens de depuração do Kerberos, incluindo no JVM do servidor de aplicação a propriedade de sistema sun.security.krb5.debug com valor true. Estas mensagens são normalmente emitidas na saída padrão (System.out) da aplicação.