Customizando um Login de Aplicativo para Executar uma Asserção de Identidade Usando JAAS

Utilizando a estrutura de login do JAAS (Java™ Authentication and Authorization Service), é possível criar uma configuração de login do JAAS que pode ser utilizada para desempenhar o login para uma asserção de identidade.

Antes de Iniciar

É possível permitir que um aplicativo ou um provedor do sistema execute uma asserção de identidade com validação de confiança. Para isso, utilize a estrutura de login JAAS, em que a validação de confiança é realizada em um módulo de login e a criação da credencial é realizada em outro módulo. Os dois módulos de login customizados permitem criar uma configuração de login JAAS que pode ser utilizada para executar um login para uma asserção de identidade.
São requeridos dois módulos de login customizados:
Módulo de login de associação confiável implementada pelo usuário (validação confiável)
O módulo de login de associação confiável implementada pelo usuário executa qualquer verificação confiável requerida pelo usuário. Quando a confiança é verificada, o status de verificação de confiança e a identidade de login devem ser colocados em um mapa no estado de compartilhamento do módulo de login para que o módulo de login de criação da credencial possa usar as informações. Este mapa deve ser armazenado na propriedade:

com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state
      (que consiste em)

com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trusted
      (que é configurado como true se confiável e false se não confiável)

com.ibm.wsspi.security.common.auth.module.IdenityAssertionLoginModule.principal
       (que contém o proprietário da identidade)

com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certificates
       (que contém o certificado da identidade)

Módulo de Login de Asserção de Identidade (Criação da Credencial)
O com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule executa a criação da credencial. Este módulo depende das informações do estado de confiança que estão no estado compartilhado do contexto de login. Este módulo de login é protegido pelas permissões de tempo de execução de segurança do Java 2 para:
  • com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.initialize
  • com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.login
O módulo de login de asserção de identidade procura pelas informações de confiança na propriedade de estado compartilhado, com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state, que contêm o status de confiança e a identidade para o login e devem incluir:

com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trusted
       (quando for true indica confiável e quando for false não confiável)

com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.principal
       (que contém o proprietário da identidade para login, se estiver utilizando um proprietário)

com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certificates
       (que contém uma matriz de uma cadeia de certificados que contém a identidade para efetuar login,
        se estiver utilizando um certificado)

Uma WSLoginFailedException é retornada se o estado, confiança, ou as informações de identidade estiverem faltando. O módulo de login então executa um login da identidade e o assunto conterá a nova identidade

Procedimento

  1. Delegue a validação de confiança para um ponto do plugue implementado pelo usuário. A validação de confiança deve ser realizada em um módulo de login customizado. Este módulo de login customizado deve executar qualquer validação de confiança requerida e, em seguida, configurar as informações de confiança e de identidade no estado compartilhado a ser transmitido para o módulo de login de asserção de identidade. Um mapa é requerido na chave do estado compartilhado, com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state. Se o estado estiver ausente, uma WSLoginFailedException será emitida por IdentityAssertionLoginModule. Este mapa deve incluir:
    • Uma chave de confiança denominada com.ibm.wsspi.secuirty.common.auth.module.IdentityAssertionLoginModule.trust. Se a chave for configurada como true, a confiança deve ser estabelecida. Se a chave for configurada como false, nenhuma confiança deve ser estabelecida. Se a chave de confiança não for configurada como true, o IdentityAssertionLoginModule emitirá uma WSLoginFailedException.
    • • Uma chave de identidade é configurada: Um java.security.Principal pode ser configurado na chave com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.principal.
    • Ou um java.security.cert.X509Certificate[] pode ser configurado na chave com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certficates
    Se um proprietário e um certificado forem fornecidos, o proprietário será utilizado e um aviso será emitido.
  2. Crie uma nova configuração do JAAS para os logins do aplicativo A configuração do JAAS conterá o módulo de login customizado de validação de confiança implementado pelo usuário e o IdentityAssertionLoginModule. Em seguida, para configurar uma configuração de login do aplicativo, execute o seguinte no console administrativo:
    1. Expanda Segurança > Segurança Global.
    2. Expanda Serviços de autenticação e autorização Java > Logins de aplicativo
    3. Selecione Novo.
    4. Forneça a configuração do JAAS a um alias.
    5. Clique em Aplicar.
    6. Selecione os Módulos de Login JAAS
    7. Selecione Novo.
    8. Digite o Nome da Classe do Módulo do módulo de login customizado da validação de confiança implementada pelo usuário.
    9. Clique em Aplicar.
    10. Digite o Nome da Classe do Módulo com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule
    11. Certifique-se de que as classes Nome da Classe do Módulo estejam na ordem correta. O módulo de login de validação de confiança implementada pelo usuário deve ser a primeira e o IdentityAssertionLoginModule deve ser a segunda classe na lista.
    12. Clique em Salvar.
    Esta configuração do JAAS é então utilizada pelo aplicativo para executar uma Asserção de Identidade.
  3. Execute a asserção de identidade programável. Um programa agora pode usar a configuração de login do JAAS para executar uma asserção de identidade programática. O programa aplicativo pode criar um contexto de login para a configuração do JAAS criada na etapa 2 e, em seguida, efetuar login nesse contexto de login com a identidade para a qual é declarada. Se o login for bem-sucedido, esta identidade pode ser configurada no processo atualmente em execução. Segue um exemplo de quanto código seria operado:
    MyCallbackHandler handler = new MyCallbackHandler(new MyPrincipal(“Joe”));
    LoginContext lc = new LoginContext(“MyAppLoginConfig”, handler);
    lc.login();  //assume successful
    Subject s = lc.getSubject();
    WSSubject.setRunAsSubject(s);
    // De agora em diante, a identidade runas será “Joe”

Resultados

Utilizando a estrutura de login do JAAS e dois módulos de login implementados pelo usuário, você pode criar uma configuração de login do JAAS que pode ser utilizada para executar o login para uma asserção de identidade.

Í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_cust_identity_assert
Nome do arquivo: tsec_cust_identity_assert.html