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
- 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.
- 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:
- Expanda Segurança > Segurança Global.
- Expanda Serviços de autenticação e autorização Java > Logins de aplicativo
- Selecione Novo.
- Forneça a configuração do JAAS a um alias.
- Clique em Aplicar.
- Selecione os Módulos de Login JAAS
- Selecione Novo.
- Digite o Nome da Classe do Módulo do módulo de login
customizado da validação de confiança implementada pelo usuário.
- Clique em Aplicar.
- Digite o Nome da Classe do Módulo
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule
- 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.
- Clique em Salvar.
Esta configuração do JAAS é então utilizada pelo aplicativo para executar
uma Asserção de Identidade.
- 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.