Configurando os logins programáticos para o JAAS (Java Authentication and Authorization Service)

Uma nova configuração de login do JAAS pode ser incluída e modificada utilizando o console administrativo. As alterações são salvas no documento de segurança no nível da célula e estão disponíveis para todos os servidores de aplicativos gerenciados.

Antes de Iniciar

O Java™ Authentication and Authorization Service (JAAS) é um recurso no WebSphere Application Server. JAAS é uma coleção de APIs de autenticação estratégica do WebSphere Application Server e substitui as APIs de login programático Common Object Request Broker Architecture (CORBA).

WebSphere Application Server fornece algumas extensões para JAAS:
  • com.ibm.websphere.security.auth.WSSubject. A API com.ibm.websphere.security.auth.WSSubject estende o modelo de autorização de JAAS para os recursos Java EE (Java Platform, Enterprise Edition).
  • É possível configurar o login do JAAS no console administrativo e armazenar esta configuração de login na configuração do Application Server. Entretanto, o WebSphere Application Server ainda suporta o formato de configuração de login JAAS padrão (arquivo de texto simples) que é fornecido pela implementação padrão JAAS. Se foram definidas configurações de login duplicadas em API de configuração de WebSphere Application Server e no formato de texto simples, aquelas na API de configuração de WebSphere Application Server terão precedência. As vantagens para definir a configuração de login na API de configuração do WebSphere incluem:
    • Suporte à interface do usuário na definição da configuração de login do JAAS
    • Gerenciamento central da configuração de login do JAAS
    • Distribuição da configuração de login de JAAS durante a instalação
    Devido a um equívoco de design no JAAS Versão 1.0, o método javax.security.auth.Subject.getSubject não retorna o subject associado ao encadeamento em execução dentro de um bloco de código java.security.AccessController.doPrivileged. Este problema apresenta um comportamento inconsistente que pode causar resultados não desejados. A API com.ibm.websphere.security.auth.WSSubject fornece uma solução alternativa para associar o assunto a um encadeamento em execução.
  • Proxy LoginModule. O LoginModule Proxy carrega o módulo LoginModule real. A implementação do JAAS padrão não utiliza o carregador de classes de contexto de encadeamento para carregar as classes. O módulo LoginModule não poderá ser carregado se o arquivo de classe LoginModule não estiver no carregador de classes do aplicativo ou no caminho de classe do carregador de classes de extensão Java. Devido a problema de visibilidade no carregador de classes, o WebSphere Application Server fornece um módulo LoginModule de proxy para carregar o JAAS LoginModule utilizando o carregador de classes de contexto de encadeamento. Não é necessário colocar a implementação LoginModule no carregador de classes do aplicativo ou o caminho de classes para o carregador de classes de extensão Java com esse módulo LoginModule proxy.

    [AIX Solaris HP-UX Linux Windows]Se não quiser utilizar o módulo LoginModule Proxy, poderá colocar o módulo LoginModule no diretório app_server_root/lib/ext/. No entanto, esta ação não é recomendada devido aos riscos de segurança.

    [z/OS]Se não quiser utilizar o módulo LoginModule Proxy, é possível colocar o módulo LoginModule no diretório WAS_HOME/lib/ext/. No entanto, esta ação não é recomendada devido aos riscos de segurança.

    [IBM i]Se você não desejar utilizar o módulo LoginModule Proxy, coloque o módulo LoginModule no diretório /QIBM/UserData/Java400/ext/ para incluí-lo no caminho de classe dos diretórios estendidos Java. Além disso, conceda a autoridade *PUBLIC *RX para o arquivo. Entretanto, ao incluir o arquivo no diretório /QIBM/UserData/Java400/ext/, ele também será incluído no caminho de classe padrão dos diretórios estendidos Java que é acessível em todo o sistema operacional.

As configurações de login JAAS são definidas no documento de segurança da interface de programação de aplicativos (API) de configuração do WebSphere Application Server. Clique em Segurança > Segurança Global. Em Java Authentication and Authorization Service, clique em Logins do Aplicativo. As seguintes configurações de login do JAAS estão disponíveis:

ClientContainer
Define uma configuração de login e uma implementação de LoginModule que é semelhante aquela configuração WSLogin, mas impinge os requisitos do contêiner do cliente do WebSphere Application Server. Para obter mais informações, consulte Configurações da Entrada de Configuração para Java Authentication and Authorization Service.
DefaultPrincipalMapping,
Define um módulo LoginModule especial que geralmente é usado pelos conectores Java EE para mapear uma identidade do usuário do WebSphere Application Server autenticada para um conjunto de dados de autenticação de usuário (ID e senha do usuário) para o enterprise information system (EIS) de backend especificado. Para obter mais informações sobre o Java EE Connector e o módulo DefaultMappingModule, consulte a seção de segurança do Java EE.
WSLogin
Defina uma configuração de login e uma implementação de LoginModule que os aplicativos podem utilizar em geral.

Uma nova configuração de login do JAAS pode ser incluída e modificada utilizando o console administrativo. As alterações são salvas no documento de segurança no nível da célula e estão disponíveis para todos os servidores de aplicativos gerenciados. É necessário reiniciar o servidor de aplicativos para que as alterações tenham efeito no tempo de execução.

Atenção: Não remova nem exclua as configurações de login do JAAS predefinidas (como ClientContainer, WSLogin e DefaultPrincipalMapping). Excluí-las ou removê-las pode fazer com que outros aplicativos corporativos falhem.

Procedimento

  1. Exclua uma Configuração de Login do JAAS
    1. Clique em Segurança > Segurança Global.
    2. Em Java Authentication and Authorization Service, clique em Logins do Aplicativo. É exibido o painel Configuração de Login do Aplicativo.
    3. Selecione a caixa de opções das configurações de login a excluir e clique em Excluir.
  2. Crie uma nova configuração de login do JAAS.
    1. Clique em Segurança > Segurança Global.
    2. Em Java Authentication and Authorization Service, clique em Logins do Aplicativo.
    3. Clique em Novo. É exibido o painel Configuração de Login do Aplicativo.
    4. Especifique o nome do alias da nova configuração de login do JAAS e clique em Aplicar. Este valor é o nome da configuração de login transmitida na implementação javax.security.auth.login.LoginContext para criar um novo contexto LoginContext.

      Clique em Aplicar para salvar as alterações e incluir o nome do nó extra que precede o nome do alias original. Clicar em OK não salva as novas alterações no arquivo security.xml.

    5. Em Propriedades Adicionais, clique em Módulos de Login do JAAS.
    6. Clique em Novo.
    7. Especifique o nome da classe do Módulo. Especifique o módulo LoginModule de proxy do WebSphere Application Server devido à limitação de visibilidade do carregador de classes.
    8. Especifique a implementação de LoginModule como a propriedade delegada do módulo LoginModule Proxy. O nome de classe LoginModule de proxy do WebSphere Application Server é com.ibm.ws.security.common.auth.module.proxy.WSLoginModuleProxy.
    9. Selecione Estratégia de Autenticação na lista e clique em Aplicar.
    10. Em Propriedades Adicionais, clique em Propriedades Personalizadas. O painel Propriedades Personalizadas é exibido para o LoginModule selecionado.
    11. Crie uma nova propriedade com o nome delegate e o valor da implementação do LoginModule real. É possível especificar outras propriedades como debug com o valor true. Estas propriedades são transmitidas para a classe LoginModule como opções para o método initialize da instância de LoginModule.
    12. Clique em Salvar.

      Para uma instalação do WebSphere Application Server, Network Deployment, assegure-se de que uma operação de sincronização do arquivo seja executada para propagar as mudanças a outros nós.

    Diversos locais estão com a estrutura de diretório do WebSphere Application Server onde é possível colocar um módulo de login JAAS. A lista a seguir fornece os locais para o login do JAAS na ordem da recomendação:
    • Em um arquivo EAR (Enterprise Archive) para um aplicativo específico do Java EE (Java Platform, Enterprise Edition).

      Se você colocar o módulo de login no arquivo EAR, o módulo de login ficará acessível apenas pelo aplicativo específico.

    • Na biblioteca compartilhada do WebSphere Application Server.

      Se você colocar o módulo de login na biblioteca compartilhada, será necessário especificar quais aplicativos podem acessar o módulo. Para obter informações adicionais sobre bibliotecas compartilhadas, consulte o artigo Gerenciando Biblioteca Compartilhadas.

    • No diretório de extensões Java.

      Se você colocar o módulo de login do JAAS no diretório de extensões Java, o módulo de login ficará disponível para todos os aplicativos.

      [z/OS]Esse local não é recomendado para o WebSphere Application Server para z/OS ou o WebSphere Business Integration Server Foundation.

      [IBM i]Coloque o arquivo de classe no diretório /QIBM/UserData/Java400/ext para incluí-lo no caminho de classe para os diretórios estendidos Java. Além disso, conceda a autoridade *PUBLIC *RX para o arquivo. Entretanto, se você incluir o arquivo no diretório /QIBM/UserData/Java400/ext/, ele também é incluído no caminho de classe padrão dos diretórios estendidos Java que é acessível em todo o sistema operacional

    Embora o diretório de extensões Java forneça maior disponibilidade para o módulo de login, coloque o módulo de login em um arquivo EAR de aplicativos. Se outros aplicativos precisarem de acesso ao mesmo módulo de login, considere o uso de bibliotecas compartilhadas.

  3. Altere o arquivo de texto corrido.

    [AIX Solaris HP-UX Linux Windows][z/OS]O WebSphere Application Server suporta o formato de configuração de login JAAS padrão, que é um arquivo de texto simples, fornecido pela implementação padrão do JAAS. Entretanto, não é fornecida uma ferramenta que edite arquivos de texto corrido para esse formato. É possível definir a configuração de login do JAAS no arquivo de texto plano, que está localizado no arquivo app_server_root/properties/wsjaas.conf. Qualquer erro de sintaxe pode causar a análise incorreta do arquivo de texto corrido da configuração de login do JAAS. Esse problema pode fazer com que outros aplicativos falhem.

    [IBM i]O WebSphere Application Server suporta o formato de configuração de login JAAS padrão, que é um arquivo de texto simples, fornecido pela implementação padrão do JAAS. Entretanto, não é fornecida uma ferramenta que edite arquivos de texto corrido para esse formato. É possível definir a configuração de login do JAAS no arquivo profile_root/properties/wsjaas.conf. Qualquer erro de sintaxe pode causar a análise incorreta do arquivo de texto corrido da configuração de login do JAAS. Esse problema pode fazer com que outros aplicativos falhem.

    [AIX Solaris HP-UX Linux Windows][z/OS]Os programas clientes Java que utilizam o JAAS (Java Authentication and Authorization Service) para autenticação devem ser chamados com o arquivo de configuração JAAS especificado. Esse arquivo de configuração é configurado no arquivo app_server_root/bin/launchClient.bat como:
    set JAAS_LOGIN_CONFIG=-Djava.security.auth.login.config=%install_root%\properties\wsjaas_client.conf
    Se o arquivo launchClient.bat não for utilizado para chamar o programa cliente Java, verifique se o arquivo de configuração JAAS apropriado foi transmitido para o Java virtual machine com o sinalizador -Djava.security.auth.login.config.

    [IBM i]Os programas clientes Java que utilizam o JAAS para autenticação devem ser chamados com o arquivo de configuração de JAAS especificado. Esse arquivo de configuração é configurado no script Qshell launchClient. Se você não utilizar o script launchClient para chamar o programa cliente Java, verifique se o arquivo de configuração JAAS apropriado foi transmitido para o Java virtual machine utilizando o sinalizador -Djava.security.auth.login.config.

Resultados

Uma nova configuração de login do JAAS é criada ou uma antiga configuração de login do JAAS é removida. Um aplicativo corporativo pode utilizar uma nova configuração de login do JAAS criada sem reiniciar o processo do servidor de aplicativos.

[AIX Solaris HP-UX Linux Windows][z/OS]No entanto, as novas configurações de login do JAAS definidas no arquivo app_server_root/properties/wsjaas.conf não são atualizadas automaticamente. Inicie os servidores de aplicativos novamente para validar as alterações. Essas configurações de login do JAAS são específicas para um nó particular e não estão disponíveis para outros servidores de aplicativos em execução em outros nós.

[IBM i]No entanto, as novas configurações de login do JAAS definidas no arquivo profile_root/properties/wsjaas.conf não são atualizadas automaticamente. Inicie os servidores de aplicativos novamente para validar as alterações. Essas configurações de login do JAAS são específicas para um nó particular e não estão disponíveis para outros servidores de aplicativos em execução em outros nós.

O que Fazer Depois

Crie novas configurações de login do JAAS que sejam utilizadas por aplicativos corporativos para desempenhar a autenticação customizada. Utilize essas novas configurações de login do JAAS definidas para executar o login programático.

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_j2clogin
Nome do arquivo: tsec_j2clogin.html