Integrando com a Segurança do WAS Usando um Interceptor Customizado

Esta seção descreve como criar um interceptor de SSO para integração com a segurança do WebSphere Application Server (WAS).

Antes de Iniciar

O Interceptor de Formulário de SSO autentica os usuários na página de login baseado em formulário. Segue um exemplo de como criar um interceptor de SSO customizado. O interceptor customizado usa uma classe de interceptor customizado.

A classe de interceptor acessa o WAS para obter credenciais de usuário autenticado. Após essas credenciais serem obtidas, elas são armazenadas em cache. Os logins subsequentes usam as credenciais em cache.

Pré-requisito: um usuário deve ser configurado no WAS com as credenciais de usuário LDAP.
Nota: Você deve tornar o domínio LDAP do Build Forge que contém os usuários do WAS o servidor LDAP "padrão". Para fazer isso, vá para esse domínio LDAP do Build Forge e selecione "Tornar Padrão".

Protegendo o Serviço de Autorização (AuthServlet)

O Build Forge normalmente executa seus serviços como um aplicativo no servidor de aplicativos Apache Tomcat fornecido.

Sobre Esta Tarefa

As instruções a seguir configuram o Build Forge para usar o WAS em vez do Tomcat. Siga as instruções na seção Usando o WebSphere Application Server, em vez do Apache Tomcat, com uma exceção: o arquivo rbf-services.war contém um arquivo denominado web.xml que você precisa extrair e modificar para incluir uma restrição de segurança. Antes de instalar esse aplicativo no WAS, o arquivo war precisará ser regenerado após a modificação para usar a versão protegida desse arquivo.

Para fazer isso, siga estas instruções:

Procedimento

  1. Navegue para o diretório que contém o arquivo rbf-services.war (o diretório webapps na raiz do servidor Tomcat). Copie esse arquivo em um local temporário, como C:\rbf.
  2. Expanda o arquivo WAR. Na linha de comando, execute o comando: %IBM_JAVA_HOME%\jar –xvf rbf-services.war para expandir o conteúdo do arquivo war.
    Nota: Java deve estar disponível e a variável de ambiente IBM_JAVA_HOME já deve ter sido criada.
  3. Salve o arquivo rbf-services.war para recuperação posterior:
    1. Windows: copy rbf-services.war rbf-services.war.bak
    2. UNIX ou Linux: cp rbf-services.war rbf-services.war.bak
  4. Localize o arquivo web.xml no diretório WEB-INF (dos arquivos expandidos do arquivo war). Edite esse arquivo para incluir um contexto de segurança. Por exemplo, inclua as seguintes linhas no final do arquivo log antes da tag </web-app>:
    <security-constraint id="SecurityConstraint_1">
             <web-resource-collection id="WebResourceCollection_1">
                <web-resource-name>/*</web-resource-name>
                <url-pattern>/AuthServlet/*</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
                <http-method>PUT</http-method>
                <http-method>DELETE</http-method>
             </web-resource-collection>
             <auth-constraint id="AuthConstraint_1">
                <description>myconstraint:+:</description>
                <role-name>User</role-name>
             </auth-constraint>
             <user-data-constraint id="UserDataConstraint_1">
                <transport-guarantee>NONE</transport-guarantee>
             </user-data-constraint>
          </security-constraint>
          <login-config id="LoginConfig_1">
             <auth-method>BASIC</auth-method>
             <realm-name>full-qualified-domain</realm-name>
          </login-config>
          <security-role id="SecurityRole_1">
             <role-name>User</role-name>
          </security-role>
    Nota: O <auth-method> pode ser qualquer método de autenticação J2EE suportado pelo WAS. O método de autenticação mais comum é FORM, que requer parâmetros adicionais de configuração. Consulte a documentação do WebSphere para obter instruções sobre como configurar o FORM em seu aplicativo.
  5. Na linha de comando, gere novamente o arquivo war (chamado do mesmo diretório para o qual foi extraído) executando o seguinte comando:
    %IBM_JAVA_HOME%\jar –cvf  rbf-services.war

    Agora você tem uma nova versão de rbf-services que foi modificada para proteger o AuthServlet com as restrições do J2EE. Conclua as instruções de instalação para executar com o WAS e instale esta versão do rbf-services.war via Aplicativos->Instalar Novo Aplicativo. Certifique-se de que o Build Forge não esteja sendo executado durante a configuração do WAS.

    Depois que isso estiver instalado, acesse Aplicativos->Aplicativos Corporativos. Clique no nome do aplicativo para configurá-lo. Em Propriedades Detalhadas, clique no link Função de segurança para mapeamento de usuário/grupo. Selecione a caixa de opção Todos Autenticados para Usuário. Depois de fazer essa alteração, certifique-se de salvar na configuração principal.

    A Segurança do Aplicativo também precisa ser ativada no WAS. Para fazer isso, acesse Segurança->Administração, aplicativos e infraestrutura segura. Certifique-se de que Ativar segurança do aplicativo esteja marcado.

    Nesse ponto, reinicie o servidor WAS e, em seguida, reinicie o servidor Build Forge.
    Nota: O rbf-services agora deve ser iniciado como parte do processo de inicialização do WAS, de modo que o WAS precisa ser reiniciado antes do Build Forge.

Criando uma Nova Configuração SSO

Crie uma nova configuração SSO para usar o interceptor.

Procedimento

  1. No console do Build Forge, acesse Administração->Segurança->SSO.
  2. Clique em Incluir Configuração SSO.
  3. Defina as propriedades da configuração.
    • Nome - Digite um nome para essa configuração.
    • Classe Java - Digite com.buildforge.services.server.sso.was.WebSphereSSOInterceptor
    • Ativo - Selecione Sim.
  4. Clique em Salvar.
  5. Mova essa configuração para aparecer como primeira da lista. No menu à esquerda do nome de configuração, selecione Mover para Cima.

Mapeando Usuários LDAP ou um Grupo LDAP para Usuários Locais

Mapeie usuários LDAP ou um grupo LDAP para usuários locais, como o usuário raiz local.

Sobre Esta Tarefa

Após criar um interceptor SSO do WebSphere, é possível configurar o interceptor para:
  • Mapear os usuários LDAP para usuários locais, incluindo o raiz
  • Mapear um grupo LDAP para um usuário local, como o raiz

Para configurar um mapeamento, defina um ambiente e depois faça referência a esse ambiente no interceptor.

Definindo um Ambiente

Procedimento

  1. No console do Build Forge, clique em Ambientes.
  2. Especifique um nome para o ambiente e clique em Salvar Ambiente.
  3. Para mapear usuários LDAP para usuários locais, defina e salve as seguintes variáveis:
    1. Defina ldap_user_list_mapping para LDAP_user1|local_user1;LDAP_user2|local_user2;LDAP_user3|local_user3
    2. Defina ldap_realm_name para LDAP_domain_name
    Por exemplo, suponha que o seguinte ambiente está definido:
    	ldap_user_list_mapping = user1|root;user2|root;user3|root
    	ldap_realm_name = bluepages.ibm.com:389

    Nesse caso, LDAP user1, user2 e user3 são todos mapeados para o usuário raiz local.

  4. Para mapear membros de um grupo LDAP específico para um usuário local, defina e salve as seguintes variáveis:
    1. Defina ldap_group_name_mapping para LDAP_group|local_user
    2. Defina ldap_realm_name para LDAP_domain_name
    Nota: Se você usar ambos os tipos de mapeamento, o mapeamento do usuário tem precedência sobre o mapeamento do grupo.
    Para um exemplo de um mapeamento de grupo, suponha que o seguinte ambiente esteja definido:
    	ldap_group_name_mapping = cn=bf_admin,ou=memberlist,ou=ibmgroups,o=ibm.com|root
    	ldap_realm_name = bluepages.ibm.com:389

    Nesse caso, os usuários que são membros do grupo LDAP cn=bf_admin,ou=memberlist,ou=ibmgroups,o=ibm.com são mapeados para o usuário raiz local.

Referenciando o Ambiente

Procedimento

  1. No console do Build Forge, clique em Administração->Segurança->SSO.
  2. Clique no nome do interceptor SSO do WebSphere.
  3. Defina a propriedade Ambiente para a configuração do ambiente que você acabou de definir.
  4. Clique em Salvar.
  5. Mova essa configuração para aparecer como primeira da lista. No menu à esquerda do nome de configuração, selecione Mover para Cima.

Executando o Interceptor Customizado de SSO

Agora é possível efetuar login usando suas novas configurações.

Sobre Esta Tarefa

Esse interceptor de SSO customizado agora permitirá que técnicas de segurança do WAS autentiquem o usuário, por meio de um pedido AuthServlet a ser transmitido ao Build Forge como um usuário.

Procedimento

  1. Abra o navegador da Web. Digite o endereço http://localhost.
  2. Em vez do formulário de login do Build Forge, você agora verá uma página de autenticação. Digite as credenciais do usuário e pressione Enter.
  3. Após a autenticação, observe que o login deve ocorrer automaticamente.
  4. Após o logout, ele exibirá a página jsp padrão, em vez do formulário de login. Logins subsequentes serão automáticos se o usuário ainda estiver autenticado.

Revertendo para SSO Baseado em Formulário

É possível reverter para usar o formulário de login do SSO.

Sobre Esta Tarefa

Para reconfigurar os sistemas para usar o Login de Formulário, no WAS, é necessário desinstalar rbf-services e reinstalar o arquivo rbf-services.war original. No Build Forge, assegure-se de que o interceptor de SSO baseado em formulário esteja ativado e listado como o primeiro item. Desative o interceptor customizado do WAS. WAS e Build precisam ser reiniciados para que essas mudanças entrem em vigor.

Procedimento

  1. Desinstale rbf-services e reinstale o arquivo rbf-services.war original.
  2. No Build Forge, assegure-se de que o interceptor de SSO por formulário esteja ativado e listado como o primeiro item (consulte "Configurações de Segurança de SSO do Build Forge", descrito anteriormente).
  3. Desative o interceptor customizado do WAS.
  4. Reinicie o WAS.
  5. Reinicie o Build Forge.

Feedback