Apêndice A. Referência

A.1. Módulos de Autenticação Incluídos

Os seguintes módulos de autenticação estão incluídos no JBoss Enterprise Application Plataform. Algumas dessas autorizações de manuseio como também de autenticação. Isto inclui normalmente a palavra Role com o nome Code.
Quando você configurar esses módulos, use o valor Code ou o nome completo (pacote qualificado) para referir-se ao módulo.

Tabela A.1. Client

Código
Client
Classe
org.jboss.security.ClientLoginModule
Descrição
O módulo de login é designado a estabelecer credenciais e a identidade do chamador quando o JBoss Enterprise Application Plataform estiver agindo como cliente. Isto nunca deve ser usado como parte de um security domain usado na autenticação do servidor atual.

Tabela A.2. Opções de Módulo do Cliente

Opções Tipo Default Descrição
multi-threaded
true ou false
false
Configure para verdadeiro caso cada thread possua o próprio storage credencial e principal. Configure para falso para indicar que todos os threads na MV compartilham a mesma identidade e credencial.
password-stacking
useFirstPass ou false
false
Configure para useFirstPass para indicar que este módulo de login deve buscar por informações stored no LoginContext para uso como a identidade. Esta opção pode ser usada quando empilhando outros módulos de login com este.
>restore-login-identity
true ou false
false
Configure para verdadeiro caso a identidade e credencial vistos no início do método login() devem ser restaurados após o método logout() ser invocado.

Tabela A.3. Certificate

Código
Certificate
Classe
org.jboss.security.auth.spi.BaseCertLoginModule
Descrição
Este módulo de login é designado a autenticar os usuários baseados no X509 Certificates. Um caso de usuário sobre isto é a autenticação CLIENT-CERT de um aplicativo da web.

Tabela A.4. Opções do Módulo Certificate

Opções Tipo Default Descrição
securityDomain
faixa
nenhum
Nome do security domain que possui a configuração JSSE para o truststore que contém os certificados trusted.
verifier
Classe
nenhum
Nome de clouds para uso em importações. org.jboss.security.auth.certs.X509CertificateVerifier

Tabela A.5. CertificateUsers

Código
CertificateUsers
Classe
org.jboss.security.auth.spi.UsersRolesLoginModule
Descrição
Isto usa os recursos das propriedades. O primeiro mapeia os nomes dos usuários para senhas e o segundo mapeia os nomes do usuário para funções.

Tabela A.6. Opções de Módulo CertificateUsers

Opções Tipo Default Descrição
unauthenticatedIdentity
Sequência
nenhum
Define o nome principal que deve ser determinado para solicitações que não contém informação da autenticação. Isto pode permitir que servlets não protegidos invocarem métodos nos EJBs que não requerem uma função específica. Tal principal não possui funções associadas e pode apenas acessar tanto métodos EJB ou EJBs que são associados com uma restrição unchecked permission.
password-stacking
useFirstPass ou false
false
Configure para useFirstPass para indicar que esse módulo de login deve buscar pela informação stored no LoginContext para uso como identidade. Esta opção pode ser usada quando empilhando outros módulos com este.
hashAlgorithm Sequência
nenhum
O nome do algoritmo java.security.MessageDigest para efetuar o hash da senha. Não há default para isto, de forma que esta opção deve ser configurada explicitamente para habilitação do hash. Quando o hashAlgoritm for especificado, a senha de texto obtido do CallbackHandler obtém o hash antes de ser passada ao UsernamePasswordLoginModule.validatePassword como argumento inputPassword. O expectedPassword stored no arquivo users.properties deve possuir hash comparáveis. Refira-se ao http://docs.oracle.com/javase/6/docs/api/java/security/MessageDigest.html para informações sobre o java.security.MessageDigest e algoritmos que essa classe suporta.
hashEncoding
base64 ou hex
base64
O formato desta sequência para a senha com hash, caso o hashAlgorithm seja também configurado.
hashCharSet
Sequência
A codificação default configurada no ambiente do contêiner.
A codificação usada para converter a senha de texto limpo para um byte array.
usersProperties
O caminho de arquivo inteiramente qualificado e nome do arquivo ou recurso de propriedades.
users.properties
O arquivo contendo os mapeamentos entre os usuários e senhas. Cada propriedade no arquivo possui o formato username=password.
rolesProperties
O caminho de arquivo inteiramente qualificado e nome do arquivo ou recurso de propriedades.
roles.properties
O arquivo contendo os mapeamentos entre os usuários e funções. Cada propriedade do arquivo possui o formato username=role1,role2,...,roleN.
ignorePasswordCase
true ou false
false
Se é que a comparação da senha deve ignorar o caso. Isto é útil para a codificação de senha com hash onde o caso da senha com hash não é significante.
principalClass
O nome da classe inteiramente qualificado.
nenhum
A classe de implementação Principal que contém um condutor que leva um argumento de Sequência para o nome principal.
roleGroupSeparator
Um caractere único
. (um período único)
O caractere usado para separar o nome do usuário a partir do nome do grupo de função no arquivo rolesGroup.
defaultUsersProperties
faixa
defaultUsers.properties
O nome do recurso ou arquivo de retrocedência caso o arquivo usersProperties não possa ser encontrado.
defaultRolesProperties
faixa
defaultRoles.properties
O nome do recurso ou arquivo de retrocedência caso o arquivo rolesProperties não possa ser encontrado.
hashUserPassword
true ou false
true
Se é que efetuar o hash na senha inserida pelo usuário, quando o hashAlgorithm for especificado. O default é true.
hashStorePassword
true ou false
true
Se é que a senha do store retornada do getUsersPassword() deve possuir o hash, quando o hashAlgorithm for especificado.
digestCallback
O nome da classe inteiramente qualificado.
nenhum
O nome da classe da implementação org.jboss.crypto.digest.DigestCallback que inclui o conteúdo de resumo pré ou pós tal como valores salt. Isto é apenas usado caso o hashAlgorithm seja especificado.
storeDigestCallback
O nome da classe inteiramente qualificado.
nenhum
O nome da classe da implementação org.jboss.crypto.digest.DigestCallback que inclui o conteúdo de resumo pré/pós como salts para o hashing da senha stored. Isto é apenas usado caso o hashStorePassword for verdadeiro e o hashAlgorithm for especificado.
callback.option.STRING
Diversos nenhum
Todas as opções pré-fixadas com callback.option. são passadas para o método DigestCallback.init(Map). O nome do usuário inserido é sempre passado através da opção javax.security.auth.login.name e a senha de entrada/store é passada através da opção javax.security.auth.login.password ao digestCallback ou storeDigestCallback.

Tabela A.7. CertificateRoles

Código
CertificateRoles
Classe
org.jboss.security.auth.spi.CertRolesLoginModule
Descrição
O módulo de login estende o módulo de login do certificado para adicionar as capacidades de mapeamento de função a partir do arquivo de propriedades. Isto leva tudo de mesmas opções como o módulo de login do Certificado e adiciona as seguintes opções:

Tabela A.8. CertificateRoles Module Options

Opções Tipo Default Descrição
rolesProperties
Sequência
roles.properties
O nome do recurso ou arquivo contendo as funções para determinação de cada usuário. O arquivo de propriedades de função no formato username=role1,role2 onde o nome do usuário é o DN do certificado, escapando qualquer sinal de = (igual) e caracteres com espaço. A seguinte amostra está no formato correto:
CN\=unit-tests-client,\ OU\=Red\ Hat\ Inc.,\ O\=Red\ Hat\ Inc.,\ ST\=North\ Carolina,\ C\=US=JBossAdmin
defaultRolesProperties
Sequência
defaultRoles.properties
O nome do recurso ou arquivo de retrocedência caso o arquivo rolesProperties não possa ser encontrado.
roleGroupSeparator
Um caractere único
. (um período único)
Qual caractere de uso conforme o separador de grupo de função no arquivo roleProperties.

Tabela A.9. Database

Código Database
Classe
org.jboss.security.auth.spi.DatabaseServerLoginModule
Descrição
O módulo de login baseado no JDBC que suporta o mapeamento de função e autenticação. Isto é baseado em duas tabelas lógicas, com as seguintes definições:
  • Principals: PrincipalID (text), Password (text)
  • Roles: PrincipalID (text), Role (text), RoleGroup (text)

Tabela A.10. Database Module Options

Opções Tipo Default Descrição
dsJndiName
Recurso JNDI
nenhum
O nome do storing do recurso JNDI da informação de autenticação. Esta opção é requerida.
principalsQuery
Uma declaração SQL preparada
select Password from Principals where PrincipalID=?
A fila SQL preparada para obtenção da informação sobre o principal.
rolesQuery
Uma declaração SQL preparada
select Role, RoleGroup from Roles where PrincipalID=?
A fila SQL preparada para obtenção da informação sobre as funções. Isto deve ser equivalente ao select Role, RoleGroup from Roles where PrincipalID=?, onde Role (Função) é o nome da Função e o valor de coluna RoleGroup deve sempre ser tanto Roles com letra maiúscula R ou CallerPrincipal.

Tabela A.11. DatabaseCertificate

Código
DatabaseCertificate
Classe
org.jboss.security.auth.spi.DatabaseCertLoginModule
Descrição
O módulo de login estende o módulo de login do Certificado para adicionar as capacidades de mapeamento de função a partir da tabela da fonte de dados. Isto possui as mesmas opções, além das opções adicionais:

Tabela A.12. Opções de Módulo DatabaseCertificate

Opções Tipo Default Descrição
dsJndiName
Recurso JNDI
O nome do storing do recurso JNDI da informação de autenticação. Esta opção é requerida.
rolesQuery
Uma declaração SQL preparada
select Role,RoleGroup from Roles where PrincipalID=?
A declaração preparada SQL a ser executada em ordem das funções a serem mapeadas. Isto deve ser equivalente ao select Role, RoleGroup from Roles where PrincipalID=?, onde Role (Função) é o nome da Função e o valor de coluna RoleGroup deve sempre ser tanto Roles com letra maiúscula R ou CallerPrincipal.
suspendResume
true ou false
true
Se é que a transação JTA existente deve ser suspendida durante as operações de fonte de dados.

Tabela A.13. Identity

Código
Identity
Classe
org.jboss.security.auth.spi.IdentityLoginModule
Descrição
Associa o principal especificado nas opções de módulo com qualquer sujeito autenticado em relação ao módulo. O tipo de classe Principal usado é org.jboss.security.SimplePrincipal.. Caso nenhuma opção seja especificada, um principal com o nome de guest será usado.

Tabela A.14. Opções de Módulo Identity

Opções Tipo Default Descrição
principal
Sequência
guest
O nome a ser usado pelo principal.
roles
A lista de vírgula separada das sequências
nenhum
A lista de vírgula delimitada das funções a serem determinadas ao sujeito.

Tabela A.15. Ldap

Código
Ldap
Classe
org.jboss.security.auth.spi.LdapLoginModule
Descrição
Autentica em relação ao servidor LDAP, quando o nome do usuário e senha forem stored num servidor LDAP que é acessível usando um provedor JNDI LDAP. Muitas das opções não são requeridas, uma vez que elas são determinadas pelo provedor LDAP ou o ambiente.

Tabela A.16. Opções do Módulo Ldap

Opções Tipo Default Descrição
java.naming.factory.initial
nome da classe
com.sun.jndi.ldap.LdapCtxFactory
O nome da classe de implementação InitialContextFactory.
java.naming.provider.url
ldap:// URL
nenhum
URL para o servidor LDAP.
java.naming.security.authentication
none, simple, or the name of a SASL mechanism
simple
O nível de segurança para uso para efetuar o bind no servidor LDAP.
java.naming.security.protocol
O protocolo de transporte
Caso não especificado, determinado pelo provedor.
O protocolo de transporte para uso do acesso de segurança, tal como o SSL.
java.naming.security.principal
Sequência
nenhum
O nome do principal para autenticação do chamador para o serviço. Isto é construído a partir de outras propriedades descritas abaixo.
java.naming.security.credentials
O tipo de credencial
nenhum
O tipo de credencial usado pelo esquema de autenticação. Alguns exemplos, incluindo a senha com hash, senha de texto limpo, chave ou certificado. Caso a propriedade não estiver especificada, o comportamento é determinado pelo provedor do serviço.
principalDNPrefix
Sequência
nenhum
O prefixo adicionado para o nome do usuário para formar o DN. Você pode solicitar o nome do usuário e construir o DN inteiramente qualificado usando o principalDNPrefix e principalDNSuffix.
principalDNSuffix
faixa
O sufixo adicionado para o nome do usuário para formar o DN. Você pode solicitar o nome do usuário e construir o DN inteiramente qualificado usando o principalDNPrefix e principalDNSuffix.
useObjectCredential
true ou false
falso
Se é que o credencial deve ser obtido como um Objeto Opaco usando o tipo org.jboss.security.auth.callback.ObjectCallback de Callback ao invés de uma senha char[] usando um JAAS PasswordCallback. Isto permite a passagem de informação de credencial non-char[] ao servidor LDAP.
rolesCtxDN
Um DN inteiramente qualificado
nenhum
O DN inteiramente qualificado para o contexto para busca das funções do usuário.
userRolesCtxDNAttributeName
Atributo
nenhum
O atributo no objeto do usuário que contém o DN para o contexto para pesquisa das funções do usuário. Isto difere-se do rolesCtxDN no que se refere ao contexto de busca das funções do usuário, que poderão ser únicas para cada usuário.
rolesAttributeID
Atributo
roles
Nome do atributo contendo funções do usuário.
rolesAttributeIsDN
true ou false
false
Se é que o roleAttributeID contém o DN inteiramente qualificado do objeto da função. Caso seja falso, o nome da função é obtida do valor do atributo roleNameAttributeId do nome do contexto. Certos esquemas do diretório, tais como o Microsoft Active Directory, requerem que este atributo seja configurado para true.
rolesNameAttributeID
Atributo
group
O nome do atributo com o contexto roleCtxDN que contém o nome da função. Caso a propriedade roleAttributeIsDN seja configurada para true, esta propriedade será usada para buscar o atributo do nome do objeto de função.
uidAttributeID
Atributo
uid
O nome do atributo no UserRolesAttributeDN que corresponde à ID do usuário. Isto é usado para localizar as funções do usuário.
matchOnUserDN
true ou false
false
Se é que a busca das funções do usuário devem coincidir com o DN inteiramente distinguido do usuário ou apenas nome do usuário. Caso seja true, o DN completo de usuário é usado como valor de combinação. Caso seja false, apenas o nome do usuário é usado para combinar o valor em referência ao atributo uidAttributeName.
allowEmptyPasswords
true ou false
true
Se é que permitir as senhas vazias. A maioria dos servidores LDAP tratam senhas vazias com tentativas de login anônimas. Configure isto para falso, com o objetivo de rejeitar senhas vazias.

Tabela A.17. LdapExtended

Código
LdapExtended
Classe
org.jboss.security.auth.spi.LdapExtLoginModule
Descrição
Uma implementação de módulo de login que usa buscas para localizar o usuário bind e funções associadas. A fila das funções segue recursivamente os DNs para navegar a uma estrutura de função hierárquica. Isto usa as mesmas opções java.naming como o módulo Ldap e usa as seguintes opções ao invés de outras opções do módulo Ldap.
A autenticação acontece em duas etapas:
  1. Um bind inicial ao do servidor LDAP é realizado usando as opções bindCredential e bindDN. O bindDN é um usuário LDAP com a habilidade de buscar ambas as árvores baseCtxDN e rolesCtxDN para o usuário e funções. O DN do usuário para autenticação é requerido usando o filtro especificado pelo atributo baseFilter.
  2. O DN do usuário resultante é autenticado pelo binding para o servidor LDAP usando o Dn do usuário como o Context.SECURITY_PRINCIPAL do ambiente InitialLdapContext. A propriedade Context.SECURITY_CREDENTIALS é configurada à senha de Sequência obtida pelo manuseador da chamada de retorno.

Tabela A.18. Opções de Módulo LdapExtended

Opções Tipo Default Descrição
baseCtxDN
Um DN inteiramente qualificado
nenhum
O DN fixado do contexto de nível superior para iniciar a busca do usuário.
bindDN
Um DN inteiramente qualificado
nenhum
O DN usado para efetuar o bind no servidor LDAP para as solicitações de funções e dos usuários. Este DN precisa ler e buscar permissões nos valores baseCtxDN e rolesCtxDN.
bindCredential
Uma sequência, opcionalmente criptografada
nenhum
A senha para o bindDN. Ela pode ser criptografada caso o jaasSecurityDomain seja especificado.
jaasSecurityDomain
JMX ObjectName
nenhum
O JMX ObjectName do JaasSecurityDomain de uso para descriptografar o bindCredential. A forma criptografada da senha é o formato retornado pelo método JaasSecurityDomain.encrypt64(byte[]).
baseFilter
Sequência do filtro LDAP
nenhum
O filtro de busca para localizar o contexto do usuário para autenticação. O nome do usuário ou userDN obtido da chamada de retorno do módulo de login é substituído no filtro em qualquer local onde uma expressão {0} for usada. Uma amostra comum de busca do filtro é (uid={0}).
rolesCtxDN
DN inteiramente qualificado
nenhum
O DN fixado do contexto de busca para as funções do usuário. Este não é o DN onde as funções atuais se encontram, mas o DN onde os objetos contendo as funções do usuário estão. Por exemplo, num servidor Microsoft Active Directory, este é o DN onde a conta do usuário se encontra.
roleFilter
Sequência do filtro LDAP
A busca do filtro usada para localizar as funções associadas com o usuário de autenticação. O nome do usuário de entrada ou userDN obtido pela chamada de retorno do módulo de login é substituído no filtro em qualquer local onde a expressão {0} for usada. O uderDN autenticado é substituído no filtro em qualquer lugar onde um {1} for usado. Uma amostra da busca do filtro que combina com o nome do usuário de entrada é (member={0}). Uma alternativa que combina com o userDN autenticado é o (member={1}).
roleAttributeIsDN
true ou false
false
Se é que o roleAttributeID contém o DN inteiramente qualificado do objeto da função. Caso seja falso, o nome da função é obtida do valor do atributo roleNameAttributeId do nome do contexto. Certos esquemas do diretório, tais como o Microsoft Active Directory, requerem que este atributo seja configurado para true.
defaultRole
Nome da função
nenhum
A função incluída para todos os usuários autenticados.
parseRoleNameFromDN
true ou false
false
O sinalizador indicando se o DN retornado por uma fila contém o roleNameAttributeID. Caso configurado para true, o DN é checado pelo roleNameATtributeID. Caso configurado para false, o DN não é checado pelo roleNameAttributeID. Este sinalizador pode melhorar o desempenho das filas LDAP.
parseUsername
true ou false
false
Um sinalizador indicando se o DN deve ser pesquisado pelo nome do usuário. Caso configurado para true, o DN pelo nome do usuário. Caso configurado para false o DN pelo nome do usuário. Esta opção é usada juntamente com o usernameBeginString e usernameEndString.
usernameBeginString
uma sequência
nenhum
Define a sequência que está prestes a ser removida a partir do início do DN para revelar o nome do usuário. Esta opção é usada juntamente com o usernameEndString.
usernameEndString
uma sequência
nenhum
Define a sequência que está prestes a ser removida a partir do final do DN para revelar o nome do usuário. Esta opção é usada juntamente com o usernameBeginString.
roleNameAttributeID
Atributo
group
O nome do atributo com o contexto roleCtxDN que contém o nome da função. Caso a propriedade roleAttributeIsDN seja configurada para true, esta propriedade será usada para buscar o atributo do nome do objeto de função.
distinguishedNameAttribute
Atributo
distinguishedName
O nome do atributo na entrada do usuário que contém o DN do usuário. Isto deve ser necessário caso o próprio DN do usuário conter caracteres especiais (barra invertida, por exemplo) que previne o mapeamento do usuário correto. Caso o atributo não existir, o DN de entrada será usado.
roleRecursion
O número
0
Os números de níveis de recursão de busca da função serão inferiores ao do contexto de combinação. Desabilite a recursão configurando-a para 0.
searchTimeLimit
O número
10000 (10 segundos)
O intervalo em milésimos de segundos para buscas do usuário e funções.
searchScope
Um dos: OBJECT_SCOPE, ONELEVEL_SCOPE, SUBTREE_SCOPE
SUBTREE_SCOPE
O escopo de busca para uso.
allowEmptyPasswords
true ou false
true
Se é que permitir as senhas vazias. A maioria dos servidores LDAP tratam senhas vazias com tentativas de login anônimas. Configure isto para falso, com o objetivo de rejeitar senhas vazias.

Tabela A.19. RoleMapping

Código
RoleMapping
Classe
org.jboss.security.auth.spi.RoleMappingLoginModule
Descrição
Mapeia a função que é o resultado final do processo de autenticação a uma função declarativa. Este módulo deve ser sinalizado como optional quando você adicioná-lo ao security domain.

Tabela A.20. Opções de Módulo RoleMapping

Opções Tipo Default Descrição
rolesProperties
O caminho de arquivo inteiramente qualificado e nome do arquivo ou recurso de propriedades.
roles.properties
O caminho do arquivo inteiramente qualificado e nome do arquivo de propriedades ou recurso que mapeia funções para substituição das funções. O formato é original_role=role1,role2,role3.
replaceRole
true ou false
false
Se é que adicionar às funções atuais ou substituir as funções atuais pelas mapeadas. Isto é substituído caso configurado para true.

Tabela A.21. RunAs

Código
RunAs
Classe
Class: org.jboss.security.auth.spi.RunAsLoginModule
Descrição
O módulo ajudante que envia uma função run as à pilha para a duração da fase de login da autenticação e tira a função run as da pilha tanto na fase de confirmação ou anulação. Este módulo de login fornece uma função para os demais módulos que devem acessar os recursos de segurança com o objetivo de executar suas autenticações, tais como o módulo de login que acessa o EJB de segurança. O RunAsLoginModule deve ser configurado antes dos módulos de login que requerem a função run as a ser estabelecida.

Tabela A.22. Opções RunAs

Opções Tipo Default Descrição
roleName
Nome da função
nobody
O nome da função de uso como a função run as durante a fase de login.

Tabela A.23. Simple

Código
Simple
Classe
org.jboss.security.auth.spi.SimpleServerLoginModule
Descrição
O módulo para montagem rápida de segurança para propósitos de testes. Ele implementa o seguinte algoritmo simples:
  • Caso a senha seja nula, autentique o usuário e determine uma identidade do guest e a função do guest.
  • Do contrário, caso a segurança seja igual à do usuário, determine uma identidade igual á do nome do usuário e ambas funções de admin e guest.
  • Do contrário, a autenticação falhará.
Opções de Módulo Simple

O módulo Simple não possui opções.

Tabela A.24. ConfiguredIdentity

Código
ConfiguredIdentity
Classe
org.picketbox.datasource.security.ConfiguredIdentityLoginModule
Descrição
Associa o principal especificado nas opções do módulo com qualquer sujeito autenticado em referência ao módulo. O tipo de classe Principal usada é org.jboss.security.SimplePrincipal.

Tabela A.25. Opções de Módulo ConfiguredIdentity

Opções Tipo Default Descrição
principal
Nome do principal.
guest
O principal que será associado com qualquer sujeito autenticado em referência ao módulo.

Tabela A.26. SecureIdentity

Código
SecureIdentity
Classe
org.picketbox.datasource.security.SecureIdentityLoginModule
Descrição
Este módulo é fornecido para propósitos de legacia. Isto permite você criptografar a senha e então usar a senha criptografada com um principal estatístico. Caso o seu aplicativo usar SecureIdentity, considere o uso de um mecanismo de vault da senha.

Tabela A.27. Opções do Módulo SecureIdentity

Opções Tipo Default Descrição
username
faixa nenhum O nome do usuário para autenticação.
password
sequência criptografada nenhum
A senha de uso para autenticação. Para criptografar a senha, use o módulo diretamente na linha de comando.
java org.picketbox.datasource.security.SecureIdentityLoginModule password_to_encrypt
Copie o resultado deste comando no campo do valor da opção do módulo.
managedConnectionFactoryName
Recurso JCA nenhum
O nome da conexão JCA para a fonte de dados.

Tabela A.28. PropertiesUsers

Código
PropertiesUsers
Classe
org.jboss.security.auth.spi.PropertiesUsersLoginModule
Descrição
Usa o arquivo das propriedades para aplicar o store dos nomes do usuário e senhas para autenticação. Nenhuma autorização (mapeamento de função) é fornecido. Este módulo é apenas apropriado para testes.

Tabela A.29. Opções de Módulo PropertiesUsers

Opções Tipo Default Descrição
properties
O caminho e nome do arquivo inteiramente qualificado do arquivo ou recurso das propriedades Java. nenhum
O arquivo da propriedade contendo os nomes do usuário e senhas de texto limpo a serem usados para a autenticação.

Tabela A.30. SimpleUsers

Código
SimpleUsers
Classe
org.jboss.security.auth.spi.SimpleUsersLoginModule
Descrição
O módulo de login efetua o store do nome do usuário e senha de texto limpo no arquivo de propriedades Java. Isto está incluído para testes apenas e não é apropriado para um ambiente de produção.

Tabela A.31. Opções do Módulo SimpleUsers

Opções Tipo Default Descrição
username
faixa nenhum O nome de usuário para uso da autenticação.
password
faixa nenhum A senha de texto limpo para uso da autenticação.

Tabela A.32. LdapUsers

Código
LdapUsers
Classe
org.jboss.security.auth.spi.LdapUsersLoginModule
Descrição
O módulo LdapUsers é substituído pelos módulos ExtendedLDAP e AdvancedLdap.

Tabela A.33. Kerberos

Código
Kerberos
Classe
com.sun.security.auth.module.Krb5LoginModule
Descrição
Executa a autenticação de login do Kerberos, usando GSSAPI. Este módulo faz parte do framework de segurança a partir do API fornecido pelo Sun Microsystems. Maiores informações podem ser encontradas no http://docs.oracle.com/javase/1.4.2/docs/guide/security/jaas/spec/com/sun/security/auth/module/Krb5LoginModule.html. Este módulo precisa ser emparelhado com outro módulo que manuseia o mapeamento de funções e autenticação.

Tabela A.34. Opções de Módulo Kerberos

Opções Tipo Default Descrição
storekey
true ou false
falso
Se é que ou não adicionar o KerberosKey aos credenciais privados do sujeito.
doNotPrompt
true ou false
falso
Caso configurado para true, não haverá solicitação de senha ao usuário.
useTicketCache
Valor Booliano de true ou false
.
falso
Caso true, o GTG é obtido a partir do cache do tíquete. Caso false, o cache do tíquete não será usado.
ticketcache
Um arquivo ou recurso representando um cache de tíquete Kerberos.
O default depende do sistema operacional em que você está utilizando.
  • Red Hat Enterprise Linux / Solaris: /tmp/krb5cc_uid, usando o valor UID numérico do sistema operacional.
  • Microsoft Windows Server: usa o Local Security Authority (LSA) API para encontrar o ticketcache.
A localização do cache do tíquete do cache.
useKeyTab
true ou false
falso Se é que obter a chave principal a partir de um arquivo de tabela de chave.
keytab
O arquivo ou recurso representando o Kerberos keytab.
a localização do arquivo de configuração Kerberos do sistema operacional ou /home/user/krb5.keytab
A localização do arquivo da tabela da chave.
principal
Sequência nenhum
O nome do principal. Isto pode ser tanto um nome de usuário ou um nome de serviço tal como host/testserver.acme.com. Use isto ao invés de obter o principal a partir da tabela chave ou quando a tabela chave conter mais de um principal.
useFirstPass
true ou false
falso
Se é que recuperar o nome do usuário e senha a partir do estado compartilhado do módulo, usando o javax.security.auth.login.name e javax.security.auth.login.password como chaves. Caso a autenticação falhar, nenhuma nova tentativa é realizada.
tryFirstPass
true ou false
falso
O mesmo ao do useFirstPass, mas se a autenticação falhar, o módulo usa o CallbackHandler para recuperar uma nova senha e nome do usuário. Caso uma segunda autenticação falhar, a falha é relatada ao aplicativo de chamada.
storePass
true ou false
falso
Se é que realizar o store no nome do usuário e senha no estado compartilhado do módulo. Isto não acontece caso as chaves já existirem no estado compartilhado ou se a autenticação falhar.
clearPass
true ou false
falso
Defina isto para true para limpar o nome do usuário e senha do estado compartilhado após ambas as fases de autenticação forem completadas.

Tabela A.35. SPNEGOUsers

Código
SPNEGOUsers
Classe
org.jboss.security.negotiation.spnego.SPNEGOLoginModule
Descrição
Permite a autenticação SPNEGO ao servidor Microsoft Active Directory ou de outro ambiente que suporta o SPNEGO. O SPNEGO pode levar as credenciais do Kerberos. Este módulo precisa ser emparelhado com outro módulo que manuseia o mapeamento de função e autenticação.

Tabela A.36. Opções de Módulo SPNEGO

Opções Tipo Default Descrição
storeKey
true ou false
false
Se é que ou não aplicar o store na chave.
useKeyTab
true ou false
false
Se é que usar uma tabela de chave.
principal
Sequência representando o principal para a autenticação Kerberos.
nenhum
O nome do principal para autenticação.
keyTab
O arquivo ou recurso de representação da keytab.
none
A localização da tabela da chave.
doNotPrompt
true ou false
false
Se é que solicitar a senha.
debug
true ou false
false
Se é que gravar as mensagens mais verbosas para propósitos de depuração.

Tabela A.37. AdvancedLdap

Código AdvancedLdap
Classe
org.jboss.security.negotiation.AdvancedLdapLoginModule
Descrição
O módulo que fornece funcionalidade adicional, tal como SASL e uso do JAAS security domain.

Tabela A.38. Opções de Módulo AdvancedLdap

Opções Tipo Default Descrição
bindAuthentication
faixa
nenhum
O tipo de autenticação SASL para uso do binding para o servidor do diretório.
jassSecurityDomain
string
nenhum
O nome do JAAS security domain para uso.
java.naming.provider.url
string
nenhum
O URI do servidor do diretório.
baseCtxDN
O Distinguished Name (DN - Nome Distinguido) inteiramente qualificado.
nenhum
O nome distinguido para uso como base para as pesquisas.
baseFilter
A sequência representando um filtro de busca LDAP.
nenhum
O filtro para uso para diminuir os resultados de busca.
roleAttributeID
Uma sequência representando um atributo LDAP.
nenhum
O atributo LDAP que contém os nomes das funções de autorização.
roleAttributeIsDN
true ou false
false
Se é que o atributo da função é um Distinguished Name (DN - Nome Distinguido).
roleNameAttributeID
A sequência representando um atributo LDAP.
nenhum
O atributo contido com o RoleAttributeId que contém o atributo de função atual.
recurseRoles
true ou false
false
Se é que buscar de recursivamente o RoleAttributeId para funções.

Tabela A.39. AdvancedADLdap

Código AdvancedADLdap
Classe
org.jboss.security.negotiation.AdvancedADLoginModule
Descrição
Este módulo estende o módulo de login AdvancedLdap e adiciona parâmetros extra que são relevantes ao Microsoft Active Directory.

Tabela A.40. UsersRoles

Código UsersRoles
Classe
org.jboss.security.auth.spi.UsersRolesLoginModul
Descrição
O módulo de login simples que suporta usuários múltiplos e funções de usuários stored em dois arquivos de propriedades diferentes.

Tabela A.41. Opções de Módulo UsersRoles

Opções Tipo Default Descrição
usersProperties
Caminho a um arquivo ou recurso.
users.properties
O arquivo ou recurso que contém os mapeamentos do usuário-à-senha. O formato do arquivo é user=hashed-password
rolesProperties
Caminho a um arquivo ou recurso.
roles.properties
O arquivo ou recurso que contém os mapeamentos do usuário-à-função. O formato do arquivo é username=role1,role2,role3
password-stacking
useFirstPass ou false
false
O valor do useFirstPass indica que este módulo de login deve primeiramente observar a informação stored no LoginContext para a identidade. Esta opção pode ser usada quando empilhando outros módulos de login com este.
hashAlgorithm
A sequência representando um algoritmo hashing da senha.
none
O nome do algoritmo java.security.MessageDigest para efetuar o hash na senha. Não há default de forma que esta opção deve ser explicitamente configurada para habilitar o hashing. Quando o hashAlgorithm for especificado, a senha de texto limpo obtido a partir do CallbackHandler contém hash antes de ser passado ao UsernamePasswordLoginModule.validatePassword como um argumento inputPassword. A senha stored no arquivo users.properties deve ser um hash comparável.
hashEncoding
base64 ou hex
base64
O formato da sequência para a senha com hash, caso o hashAlgoritmo for também configurado.
hashCharset
Sequência
A codificação default determinada no ambiente do período de execução do contêiner.
A codificação usada para converter a senha de texto limpo para um byte array.
unauthenticatedIdentity
O nome principal
nenhum
Define o nome principal determinado para solicitações que não contém informação de autenticação. Isto pode permitir que servlets não protegidos invoquem métodos nos EJBs que não solicitem uma função específica. Tal principal não possui funções associadas e podem apenas acessar métodos EJB e EJBs que são associados com a restrição unchecked permission.
Módulos de Autenticação Personalizados

Os módulos de autenticação são implementações do org.jboss.security.LoginModule. Refira-se à documentação API para maiores informações sobre a criação de um módulo de autenticação personalizado.