Chapitre 11. Référence Administration Sécurité
11.1. Modules d'authentification inclus
Role
dans le nom de Code
Code
ou le nom complet (package) pour vous référer au module.
Modules d'authentification
Tableau 11.1. Client
Code | Client
|
Class | org.jboss.security.ClientLoginModule
|
Description |
Ce module de connexion est conçu pour établir l'identité de l'appelant et les informations d'identification lorsque JBoss Enterprise Application Platform agit en tant que client. Il ne doit jamais servir sous forme de domaine de sécurité pour l'authentification serveur.
|
Tableau 11.2. Options de Modules Client
Option | Type | Par défaut | Description |
---|---|---|---|
multi-threaded | true ou false
| false
|
Définir la valeur sur true si chaque thread possède son propre stockage d'informations d'identification et principal. La valeur false pour indiquer que tous les threads de la machine virtuelle partagent la même identité et informations d'identification.
|
password-stacking
| useFirstPass ou false
| false
|
Définir la valeur sur useFirstPass pour indiquer que ce module de connexion doive rechercher les informations stockées dans le LoginContext à utiliser comme identité. Cette option peut être utilisée lorsque vous empilez les autres modules de connexion avec.
|
>restore-login-identity
| true ou false
| false
|
Définir sur true si l'identité et les informations d'identification du début le la méthode login() doivent être restaurées une fois que la méthode logout() est invoquée.
|
Tableau 11.3. Certificate
Code | Certificate
|
Class | org.jboss.security.auth.spi.BaseCertLoginModule
|
Description |
Ce module de connexion est conçu pour authentifier les utilisateurs basés sur des
X509 Certificates . Un cas d'utilisation pour ceci est l'authentification CLIENT-CERT d'une application web.
|
Tableau 11.4. Options de module Certificate
Option | Type | Par défaut | Description |
---|---|---|---|
securityDomain
| chaîne |
aucun
|
Nom du domaine de sécurité qui possède la configuration JSSE du truststore qui contient les certificats approuvés.
|
verifier
| Class |
aucun
|
Le nom de classe du org.jboss.security.auth.certs.X509CertificateVerifier à utiliser pour vérifier le certificat de connexion.
|
Tableau 11.5. CertificateUsers
Code | CertificateUsers
|
Class | org.jboss.security.auth.spi.UsersRolesLoginModule
|
Description |
Utilise deux ressources de propriété. La première mappe les noms d'utilisateur aux mots de passe, et la seconde mappe les noms d'utilisateurs aux rôles.
|
Tableau 11.6. Options de module CertificateUsers
Option | Type | Par défaut | Description |
---|---|---|---|
unauthenticatedIdentity
| Une chaîne |
aucun
|
Définit le nom principal devant être affecté aux demandes qui ne contiennent aucune information d'authentification. Cela peut permettre à des servlets non protégés d'appeler des méthodes sur EJB ne nécessitant pas un rôle spécifique. Un tel principal ne possédera aucun rôle associé et ne ne pourra accéder qu'aux méthodes EJB ou EJB non sécurisées associées à la contrainte de
permission non contrôlée .
|
password-stacking
| useFirstPass ou false
| false
|
Définir la valeur sur
useFirstPass pour indiquer que ce module de connexion doive rechercher les informations stockées dans le LoginContext à utiliser comme identité. Cette option peut être utilisée lorsque vous empilez les autres modules de connexion avec celui-ci.
|
hashAlgorithm | Une chaîne |
aucun
|
Le nom de l'algorithme
java.security.MessageDigest à utiliser pour hacher le mot de passe. Il n'y a pas de valeur par défaut pour cette option, donc vous devez la définir explicitement pour permettre le hachage. Quand hashAlgorithm est spécifié, le mot de passe en texte clair obtenu de CallbackHandler sera haché avant de passer à UsernamePasswordLoginModule.validatePassword comme argument d'inputPassword. Le expectedPassword stocké dans le fichier users.properties doit être haché de façon similaire. Voir http://docs.oracle.com/javase/6/docs/api/java/security/MessageDigest.html pour obtenir des informations sur java.security.MessageDigest
|
hashEncoding
| base64 ou hex
| base64
|
Le format du string du mot de passe haché, si
hashAlgorithm est défini également.
|
hashCharSet
| Une chaîne |
Le codage par défaut défini dans l'environnement du conteneur.
|
Le codage utilisé pour convertir le mot de passe de texte en clair en un tableau d'octets.
|
usersProperties
|
Le chemin d'accès complet et le nom d'une ressource ou d'un fichier de propriétés
| users.properties
|
Le fichier qui contient les mappages entre les utilisateurs et les mots de passe. Chaque propriété du fichier a le format
username=password .
|
rolesProperties
| Le chemin d'accès complet et le nom d'une ressource ou d'un fichier de propriétés | roles.properties
|
Le fichier qui contient les mappages entre les utilisateurs et les rôles. Chaque propriété du fichier a le format
username=role1,role2,...,roleN
|
ignorePasswordCase
| true ou false
| false
|
Si la comparaison de mot de passe doit ignorer la casse. Ceci est utile pour le codage de mots de passe hachés quand le mot de passe haché n'est pas significatif.
|
principalClass
| Un nom de classe complet. |
aucun
|
Une classe d'implémentation de
Principal contenant un constructeur qui prend l'argument du String comme nom de principal.
|
roleGroupSeparator
|
Un seul caractère
| . (un seul point)
|
Le caractère utilisé pour séparer le nom d'utilisateur du nom de groupe de rôle dans le fichier
rolesGroup .
|
defaultUsersProperties
| chaîne | defaultUsers.properties
|
Nom de la ressource ou du fichier où se replier si le fichier usersProperties est introuvable.
|
defaultRolesProperties
| chaîne | defaultRoles.properties
|
Nom de la ressource ou du fichier où se replier si le fichier
rolesProperties est introuvable.
|
hashUserPassword
| true ou false
| true
|
Indique si on doit hacher le mot de passe entré par l'utilisateur, lorsqu'
hashAlgorithm est indiqué. La valeur par défaut est true .
|
hashStorePassword
| true ou false
| true
|
Indique le mot de passe de store retourné quand le
getUsersPassword() doit être haché, quand hashAlgorithm est spécifié.
|
digestCallback
| Un nom de classe complet. |
aucun
|
Le nom de classe de l'implémentation
org.jboss.crypto.digest.DigestCallback qui inclut le contenu pre/post digest comme les valeurs salt. Utilisé uniquement si l'hashAlgorithm est spécifié.
|
storeDigestCallback
| Un nom de classe complet. |
aucun
|
Le nom de classe de l'implémentation
org.jboss.crypto.digest.DigestCallback qui inclut le contenu pre/post digest comme les valeurs salt pour hacher le mot de passe du store. Utilisé uniquement si l'hashStoreAlgorithm est sur true et si hashAlgorithm est spécifié.
|
callback.option.STRING
| Divers | aucun |
Toutes les options ayant comme préfixe
callback.option. sont passées à la méthode DigestCallback.init(Map) . Le nom d'utilisateur entré est toujours passé par l'option javax.security.auth.login.name , et le mot de passe input/store password est passé par l'option javax.security.auth.login.password au digestCallback ou au storeDigestCallback .
|
Tableau 11.7. CertificateRoles
Code | CertificateRoles
|
Class | org.jboss.security.auth.spi.CertRolesLoginModule
|
Description |
Ce module de connexion étend le module de connexion de certificat pour ajouter des fonctions de mappage de rôle à partir d'un fichier de propriétés. Il prend les mêmes options que le module de connexion du certificat et ajoute les options suivantes.
|
Tableau 11.8. Options de module CertificateRoles
Option | Type | Par défaut | Description |
---|---|---|---|
rolesProperties
| Une chaîne | roles.properties
|
Le nom de la ressource ou du fichier contenant les rôles à attribuer à chaque utilisateur. Le fichier de propriétés de rôle doit être dans sous format nom d'utilisateur=role1,role2, où le nom d'utilisateur est le nom unique du certificat, sans signe égal ou espace blanc. L'exemple suivant est dans le bon format :
CN\=unit-tests-client,\ OU\=Red\ Hat\ Inc.,\ O\=Red\ Hat\ Inc.,\ ST\=North\ Carolina,\ C\=US=JBossAdmin |
defaultRolesProperties
| Une chaîne | defaultRoles.properties
|
Nom de la ressource ou du fichier où se replier si le fichier
rolesProperties est introuvable.
|
roleGroupSeparator
| Un seul caractère | . (un seul point)
|
Le caractère à utiliser comme séparateur de groupe rôle dans le fichier de
roleProperties
|
Tableau 11.9. Database
Code | Database |
Class | org.jboss.security.auth.spi.DatabaseServerLoginModule
|
Description |
Un module de connexion basé-JDBC supportant le mappage de rôle et l'authentification. Basé sur deux tables logiques, avec les définitions suivantes.
|
Tableau 11.10. Database
Module Options
Option | Type | Par défaut | Description |
---|---|---|---|
dsJndiName
| Ressource JNDI |
aucun
|
Le nom de la ressource JNDI qui store les informations d'authentification. Cette option est requise.
|
principalsQuery
| Énoncé SQL | select Password from Principals where PrincipalID=?
|
La requête SQL préparée pour obtenir les informations sur le principal.
|
rolesQuery
| Énoncé SQL | select Role, RoleGroup from Roles where PrincipalID=?
|
Enoncé SQL préparé en vue d'exécuter pour mapper les rôles. Doit être équivalent à
select Role, RoleGroup from Roles where PrincipalID=? , avec Role comme nom de rôle et la valeur de la colonne RoleGroup doit toujours être Roles . avec un R majuscule.
|
Tableau 11.11. DatabaseCertificate
Code | DatabaseCertificate
|
Class | org.jboss.security.auth.spi.DatabaseCertLoginModule
|
Description |
Ce module de connexion étend le module de connexion de certificat pour ajouter des fonctions de mappage de rôle d'une table de bases de données. Il possède les mêmes options mais aussi ces options supplémentaires :
|
Tableau 11.12. DatabaseCertificate
Module Options
Option | Type | Par défaut | Description |
---|---|---|---|
dsJndiName
| Ressource JNDI |
|
Le nom de la ressource JNDI qui store les informations d'authentification. Cette option est requise.
|
rolesQuery
| Énoncé SQL | select Role,RoleGroup from Roles where PrincipalID=?
|
Enoncé SQL préparé en vue d'exécuter pour mapper les rôles. Doit être équivalent à
select Role, RoleGroup from Roles where PrincipalID=? , avec Role comme nom de rôle et la valeur de la colonne RoleGroup doit toujours être Roles . avec un R majuscule.
|
suspendResume
| true ou false
| true
|
Indique si une transaction JTA existante doit être suspendue pendant les opérations de base de données.
|
Tableau 11.13. Identity
Code | Identity
|
Class | org.jboss.security.auth.spi.IdentityLoginModule
|
Description |
Associe le principal spécifié dans les options de module avec n'importe quel sujet authentifié dans le module. Le type de classe de principal utilisée est
org.jboss.security.SimplePrincipal. . Si aucune option de principal n'est spécifiée, on utilisera un principal ayant pour nom guest .
|
Tableau 11.14. Options de module Identity
Option | Type | Par défaut | Description |
---|---|---|---|
principal
| Une chaîne | guest
|
Le nom à utiliser pour le principal.
|
roles
| Une liste de strings séparée par des virgules |
aucun
|
Une liste de rôles séparée par des virgules qui sera assignée au sujet.
|
Tableau 11.15. Ldap
Code | Ldap
|
Class | org.jboss.security.auth.spi.LdapLoginModule
|
Description |
Authentifie sur un serveur LDAP, lorsque le nom d'utilisateur et le mot de passe sont stockés dans un serveur LDAP qui est accessible à l'aide d'un fournisseur LDAP JNDI. Bon nombre des options ne sont pas requises, car elles sont déterminées par le fournisseur LDAP ou l'environnement.
|
Tableau 11.16. Options de module Ldap
Option | Type | Par défaut | Description |
---|---|---|---|
java.naming.factory.initial
| class name | com.sun.jndi.ldap.LdapCtxFactory
|
Nom de classe de l'implémentation
InitialContextFactory .
|
java.naming.provider.url
| ldap:// URL
|
aucun
|
URL pour le serveur LDAP
|
java.naming.security.authentication
| none , simple , ou le nom d'un mécanisme SASL
| simple
|
Le niveau de sécurité à utiliser pour la liaison avec le serveur LDAP.
|
java.naming.security.protocol
| Protocole de transport |
Si non spécifié, déterminé par le fournisseur.
|
Le protocole de transport à utiliser pour l'accès sécurisé, comme SSL.
|
java.naming.security.principal
| Une chaîne |
aucun
|
Le nom du principal permettant d'authentifier l'appelant vers le service. Il est construit à partir des autres propriétés décrites ci-dessous.
|
java.naming.security.credentials
| Un type d'information d'identification |
aucun
|
Le type d'information d'identification utilisée par le schéma d'authentification. Exemples : mot de passe haché, mot de passe de texte clair, clé ou certificat. Si cette propriété n'est pas spécifiée, le comportement est déterminé par le fournisseur de service.
|
principalDNPrefix
| Une chaîne |
aucun
|
Préfixe ajouté au nom d'utilisateur pour former le DN de l'utilisateur. Vous pouvez demander à l'utilisateur un nom d'utilisateur et créer le nom de domaine DN complet en utilisant
principalDNPrefix et principalDNSuffix .
|
principalDNSuffix
| chaîne |
|
Suffixe ajouté au nom d'utilisateur pour former le DN de l'utilisateur. Vous pouvez demander à l'utilisateur un nom d'utilisateur et créer le nom de domaine DN complet en utilisant
principalDNPrefix et principalDNSuffix .
|
useObjectCredential
| true ou false
|
false
|
Si les informations d'identification doivent être obtenues sous forme d'objet opaque à l'aide du type de Callback
org.jboss.security.auth.callback.ObjectCallback plutôt que comme mot de passe char[] utilisant un JAAS PasswordCallback. Cela permet de passer les informations d'identification non-char[] au serveur Ldap.
|
rolesCtxDN
| DN complet |
aucun
|
Le DN complet pour le contexte à chercher pour les rôles d'utilisateur.
|
userRolesCtxDNAttributeName
|
Attribut
|
aucun
|
L'attribut dans l'objet utilisateur qui contient le nom unique DN pour que le contexte rechercher des rôles d'utilisateur. Cela diffère de
rolesCtxDN dans ce contexte de recherche car les rôles d'un utilisateur peuvent être uniques pour chaque utilisateur.
|
rolesAttributeID
| Attribut | roles
|
Nom de l'attribut qui contient les rôles d'utilisateur.
|
rolesAttributeIsDN
| true ou false
| false
|
Indique si le
roleAttributeID contient le nom de domaine complet d'un objet de rôle. Si false, le nom de rôle est tiré de la valeur de l'attribut roleNameAttributeId du nom de contexte. Certains schémas de répertoire, tel que Active Directory, requièrent que cet attribut soit défini à true .
|
rolesNameAttributeID
| Attribut | group
|
Nom de l'attribut du contexte de
roleCtxDN qui contient le nom de rôle. Si la propriété roleAttributeIsDN est définie sur true , cette propriété sera utilisée pour rechercher l'attribut de nom de l'objet rôle.
|
uidAttributeID
| Attribut | uid
|
Nom de l'attribut qui contient le
UserRolesAttributeDN correspondant à l'ID d'utilisateur. Utilisé pour localiser les rôles d'utilisateur.
|
matchOnUserDN
| true ou false
| false
|
Si la recherche de rôles d'utilisateur doit correspondre au DN de l'utilisateur entièrement distinct ou au nom d'utilisateur uniquement. Si
true , l'userDN complet sera utilisé comme valeur de correspondance. Si false , seul le nom d'utilisateur sera utilisé comme valeur de correspondance pour l'attribut UserRolesAttributeDN .
|
allowEmptyPasswords
| true ou false
| true
|
Indique si on doit autoriser les mots de passe vides. La plupart des serveurs LDAP traitent les mots de passe vides comme des tentatives de connexion anonymes. Pour rejeter les mots de passe vides, définir à false.
|
Tableau 11.17. LdapExtended
Code | LdapExtended
|
Class | org.jboss.security.auth.spi.LdapExtLoginModule
|
Description |
Une autre implémentation de module de connexion LDAP qui utilise les recherches pour localiser l'utilisateur de liaisons et rôles associés. La requête de rôles suit récursivement les noms de domaines DN pour naviguer dans une structure de rôles hiérarchique. Il utilise les mêmes options
java.naming que le module Ldap, et utilise les options suivantes à la place des autres options du module Ldap.
L'authentification a lieu en 2 étapes :
|
Tableau 11.18. Options de module LdapExtended
Option | Type | Par défaut | Description |
---|---|---|---|
baseCtxDN
| DN complet |
aucun
|
Le DN fixe de contexte de niveau supérieur pour commencer la recherche utilisateur.
|
bindDN
| DN complet |
aucun
|
Le DN utilisé pour la liaison au serveur LDAP pour les requêtes d'utilisateurs et de rôles. Ce nom unique a besoin d'autorisations de lecture et de recherche pour les valeurs
baseCtxDN et rolesCtxDN .
|
bindCredential
| Un string, parfois crypté |
aucun
|
Le mot de passe pour le
bindDN . Peut être crypté si le jaasSecurityDomain est spécifié.
|
jaasSecurityDomain
| JMX ObjectName |
aucun
|
L'
ObjectName JMX du JaasSecurityDomain à utiliser pour décrypter les bindCredential . La forme cryptée du mot de passe correspond au format retourné par la méthode JaasSecurityDomain.encrypt64(byte[]) .
|
baseFilter
| String de filtre LDAP |
aucun
|
Un filtre de recherche permettant de localiser le contexte de l'utilisateur à authentifier. L'entrée username ou userDN obtenue à partir du rappel de module de connexion est substitué dans le filtre à chaque fois qu'une expression
{0} est utilisée. Un exemple de filtre de recherche est (uid={0}) .
|
rolesCtxDN
| DN complet |
aucun
|
Le DN fixe du contexte pour rechercher des rôles d'utilisateur. Ce n'est pas le DN où les rôles se trouvent, mais le DN où les objets contenant les rôles d'utilisateur se trouvent. Par exemple, dans un serveur Active Directory de Microsoft, c'est le DN où le compte d'utilisateur se trouve.
|
roleFilter
| String de filtre LDAP |
|
Un filtre de recherche permettant de localiser les rôles associés à l'utilisateur authentifié. L'entrée user ou userDN obtenue à partir du rappel de module de connexion est substitué dans le filtre à chaque fois qu'une expression
{0} est utilisée. L'utilisateurDN (userDN) authentifié sera substitué dans le filtre à chaque fois qu'un {1} est utilisé. Un exemple de filtre de recherche qui correspond au nom d'utilisateur d'entrée serait (member={0}) . Un autre correspondant au userDN authentifié pourrait être (member={1}) .
|
roleAttributeIsDN | true ou false
| false
|
Indique si le
roleAttributeID contient le nom de domaine complet d'un objet de rôle. Si false, le nom de rôle est tiré de la valeur de l'attribut roleNameAttributeId du nom de contexte. Certains schémas de répertoire, tel que Active Directory, requièrent que cet attribut soit défini à true .
|
defaultRole
|
Un nom de rôle.
|
aucun
|
Un rôle inclus pour tous les utilisateurs authentifiés
|
parseRoleNameFromDN
| true ou false
| false
|
Un indicateur qui signale si le DN retourné par une requête contient le roleNameAttributeID. Si la valeur est
true , le DN est vérifié pour le roleNameATtributeID. Si la valeur est false , le DN n'est pas coché pour le roleNameAttributeID. Cet indicateur peut améliorer les performances des requêtes LDAP.
|
parseUsername
| true ou false
| false
|
Un indicateur qui signale si le DN doit être vérifié niveau nom d'utilisateur. Si la valeur est
true , le DN est vérifié niveau nom d'utilisateur. Si la valeur est false , le DN n'est pas vérifié au niveau nom d'utilisateur. Cet option peut à la fois être utilisée pour usernameBeginString et usernameEndString.
|
usernameBeginString
|
une chaîne
|
aucun
|
Définit le string qui doit être supprimé au début du DN pour révéler le nom d'utilisateur. Cette option est utilisée avec
usernameEndString .
|
usernameEndString
|
une chaîne
|
aucun
|
Définit le string qui doit être supprimé à la fin du DN pour révéler le nom d'utilisateur. Cette option est utilisée avec
userBeginString .
|
roleNameAttributeID
| Attribut | group
|
Nom de l'attribut du contexte de
roleCtxDN qui contient le nom de rôle. Si la propriété roleAttributeIsDN est définie sur true , cette propriété sera utilisée pour rechercher l'attribut de nom de l'objet rôle.
|
distinguishedNameAttribute
| Attribut | distinguishedName
|
Le nom de l'attribut dans l'entrée de l'utilisateur qui contient le nom unique de l'utilisateur. Ceci peut être nécessaire si le DN de l'utilisateur lui-même contient des caractères spéciaux (barre oblique inverse par exemple) qui empêchent le mappage de l'utilisateur. Si l'attribut n'existe pas, le DN de l'entrée sera utilisé.
|
roleRecursion
| Un entier relatif | 0
|
Le nombre de niveaux de récursivité de la recherche de rôle dans un contexte de correspondance donné. Désactiver la récursivité en attribuant le paramètre
0 .
|
searchTimeLimit
| Un entier relatif | 10000 (10 seconds)
|
Timeout en millisecondes pour les recherches utilisateur/rôle.
|
searchScope
|
Un parmi :
OBJECT_SCOPE, ONELEVEL_SCOPE, SUBTREE_SCOPE
| SUBTREE_SCOPE
|
Étendue à utiliser.
|
allowEmptyPasswords
| true ou false
| true
|
Indique si on doit autoriser les mots de passe vides. La plupart des serveurs LDAP traitent les mots de passe vides comme des tentatives de connexion anonymes. Pour rejeter les mots de passe vides, définir à false.
|
Tableau 11.19. RoleMapping
Code | RoleMapping
|
Class | org.jboss.security.auth.spi.RoleMappingLoginModule
|
Description |
Mappe un rôle qui est le résultat final du processus d'authentification de manière déclarative. Ce module doit être marqué comme étant
optionnel quand vous y ajoutez le domaine de sécurité.
|
Tableau 11.20. Options de module RoleMapping
Option | Type | Par défaut | Description |
---|---|---|---|
rolesProperties
| Le chemin d'accès complet et le nom d'une ressource ou d'un fichier de propriétés | roles.properties
|
Nom de la ressource ou du fichier de propriétés qui mappe les rôles aux rôles de remplacement. Le format est
original_role=role1,role2,role3
|
replaceRole
| true ou false
| false
|
Indique si on doit ajouter les rôles en cours, ou les remplacer par les rôles mappés. Sont remplacés si définis sur
true .
|
Tableau 11.21. RunAs
Code | RunAs
|
Class | Class: org.jboss.security.auth.spi.RunAsLoginModule
|
Description |
Un module d'assistance qui pousse un rôle
run as dans la pile pour la durée de la phase d'authentification de la connexion, et qui extrait le rôle run as de la pile soit dans la phase commit ou abort. Ce module de connexion fournit un rôle pour les autres modules de connexion qui doivent accéder aux ressources sécurisées afin d'effectuer leur authentification, par exemple un module de connexion qui accède à un EJB sécurisé. RunAsLoginModule doit être configuré avant que les modules de connexion qui ont besoin d'une rôle run as soient mis en place.
|
Tableau 11.22. Options RunAs
Option | Type | Par défaut | Description |
---|---|---|---|
roleName
| Un nom de rôle. | nobody
|
Le nom de rôle à utiliser comme rôle
run as pendant la phase de connexion.
|
Tableau 11.23. Simple
Code | Simple
|
Class | org.jboss.security.auth.spi.SimpleServerLoginModule
|
Description |
Module d'installation rapide de sécurité pour les tests. Implémente ce simple algorithme :
|
Simple
Module Options
Le module Simple
n'a pas d'options.
Tableau 11.24. ConfiguredIdentity
Code | ConfiguredIdentity
|
Class | org.picketbox.datasource.security.ConfiguredIdentityLoginModule
|
Description |
Associe le principal spécifié dans les options du module avec n'importe quel sujet authentifié dans le module. Le type de classe du Principal classe est
org.jboss.security.SimplePrincipal .
|
Tableau 11.25. ConfiguredIdentity
Module Options
Option | Type | Par défaut | Description |
---|---|---|---|
principal
| Nom d'un principal. | guest
|
Le principal qui sera associé avec n'importe quel sujet authentifié dans le module.
|
Tableau 11.26. SecureIdentity
Code | SecureIdentity
|
Class | org.picketbox.datasource.security.SecureIdentityLoginModule
|
Description |
Ce module est fourni à des fins d'héritage. Il permet de crypter un mot de passe et ensuite d'utiliser le mot de passe crypté avec un principal statique. Si votre application utilise
SecureIdentity , envisager plutôt d'utiliser un mécanisme d'archivage sécurisé de mot de passe.
|
Tableau 11.27. Options de module SecureIdentity
Option | Type | Par défaut | Description |
---|---|---|---|
username
| chaîne | aucun | Le nom d'utilisateur pour l'authentification. |
password
| string encodé | aucun |
Le mot de passe à utiliser pour l'authentification. Pour crypter le mot de passe, utilisez le module directement dans la ligne de commande.
Coller le résultat de cette commande dans le champ d'option de module.
|
managedConnectionFactoryName
| Une ressource JCA | aucun |
Le nom de la fabrique de connexions JCA à utiliser pour votre source de données.
|
Tableau 11.28. PropertiesUsers
Code | PropertiesUsers
|
Class | org.jboss.security.auth.spi.PropertiesUsersLoginModule
|
Description |
Utilise un fichier de propriétés pour stocker les noms d'utilisateur et mots de passe pour l'authentification. Aucune autorisation (correspondance de rôle) n'est fournie. Ce module convient seulement pour les tests.
|
Tableau 11.29. Options de module PropertiesUsers
Option | Type | Par défaut | Description |
---|---|---|---|
properties
| Le chemin d'accès complet et le nom d'une ressource ou d'un fichier de propriétés Java. | aucun |
Le fichier de propriétés contenant les noms d'utilisateur et mots de passe en texte clair à utiliser pour l'authentification.
|
Tableau 11.30. SimpleUsers
Code | SimpleUsers
|
Class | org.jboss.security.auth.spi.SimpleUsersLoginModule
|
Description |
Ce module de connexion stocke le nom d'utilisateur et le mot de passe en texte clair dans un fichier de propriétés de Java. Il est inclus pour les essais uniquement et n'est pas approprié pour un environnement de production.
|
Tableau 11.31. Options de module SimpleUsers
Option | Type | Par défaut | Description |
---|---|---|---|
username
| chaîne | aucun | Le nom d'utilisateur pour l'authentification. |
password
| chaîne | aucun | Le nom d'utilisateur en texte clair pour l'authentification. |
Tableau 11.32. LdapUsers
Code | LdapUsers
|
Class | org.jboss.security.auth.spi.LdapUsersLoginModule
|
Description |
Le module
LdapUsers est remplacé par les modules ExtendedLDAP et AdvancedLdap .
|
Tableau 11.33. Kerberos
Code | Kerberos
|
Class | com.sun.security.auth.module.Krb5LoginModule
|
Description |
Effectue l'authentification de connexion Kerberos avec GSSAPI. Ce module fait partie de la structure de sécurité de l'API fourni par Sun Microsystems. Vous trouverez des informations à ce sujet dans http://docs.oracle.com/javase/1.4.2/docs/guide/security/jaas/spec/com/sun/security/auth/module/Krb5LoginModule.html. Ce module devra être mis en correspondance avec un autre module qui gère les mappages d'authentification et de rôles.
|
Tableau 11.34. Options de module Kerberos
Option | Type | Par défaut | Description |
---|---|---|---|
storekey
| true ou false
| false |
Indique si on doit ajouter
KerberosKey dans les informations d'authentification privées du sujet.
|
doNotPrompt
| true ou false
| false |
Si défini à
true , l'utilisateur n'aura pas besoin de mot de passe.
|
useTicketCache
|
Valeur booléenne de
. true ou false
| false |
Si défini à
true , le GTG sera obtenu à partir du cache du ticket. Si défini sur false , le cache du ticket ne sera pas utilisé.
|
ticketcache
| Un fichier ou une ressource qui représente un cache de ticket Kerberos. |
La valeur par défaut dépend du système d'exploitation que vous utilisez.
| Emplacement du ticketcache. |
useKeyTab
| true ou false
| false | Indique si on doit obtenir la clé du principal à partir d'un keytab. |
keytab
| Un fichier ou une ressource représentant un onglet de clé Kerberos. |
l'emplacement du fichier de configuration Kerberos du système d'exploitation, ou
/home/user/krb5.keytab
| Emplacement du fichier keytab. |
principal
| Une chaîne | aucun |
Le nom du principal. Cela peut être un simple nom d'utilisateur ou un nom de service tel que
host/testserver.acme.com . Utiliser cela au lieu d'obtenir le principal d'un fichier keytab, ou lorsque le fichier keytab contient plus d'un principal.
|
useFirstPass
| true ou false
| false |
Indique si on doit extraire le nom d'utilisateur et le mot de passe de l'état partagé du module à l'aide de
javax.security.auth.login.name et de javax.security.auth.login.password comme clés. Si l'authentification échoue, il n'y aura pas de nouvelle tentative.
|
tryFirstPass
| true ou false
| false |
Identique à
useFirstPass , mais si l'authentification échoue, le module utilise le CallbackHandler pour récupérer un nouveau nom d'utilisateur et mot de passe. Si la seconde authentification échoue, l'échec sera signalé à l'application appelante.
|
storePass
| true ou false
| false |
Indique si on doit stocker le nom d'utilisateur et le mot de passe de l'état partagé du module. N'a pas lieu si les clés existent déjà dans l'état partagé, ou si l'authentification a échoué.
|
clearPass
| true ou false
| false |
Définir à
true pour supprimer le nom de l'utilisateur et le mot de passe de l'état partagé une fois que les deux phases d'authentification sont terminées.
|
Tableau 11.35. SPNEGOUsers
Code | SPNEGOUsers
|
Class | org.jboss.security.negotiation.spnego.SPNEGOLoginModule
|
Description |
Effectue l'authentification de connexion SPNEGO vers un serveur Microsoft Active Directory ou autre environnement qui supporte SPNEGO. SPNEGO peut également transporter les informations d'identification de Kerberos. Ce module a besoin de fonctionner en parallèle à un autre module qui gère l'authentification et le mappage des rôles.
|
Tableau 11.36. Options de module SPNEGO
Option | Type | Par défaut | Description |
---|---|---|---|
storeKey
| true ou false
| false
|
Indique si on doit stocker la clé ou non.
|
useKeyTab
| true ou false
| false
|
Indique si on doit utiliser un keytab.
|
principal
|
String représentant un principal d'authentification.
|
aucun
|
Le nom du principal pour l'authentification.
|
keyTab
|
Un fichier ou une ressource représentant un keytab.
| none
|
L'emplacement d'un keytab.
|
doNotPrompt
| true ou false
| false
|
Si on doit demander un mot de passe.
|
debug
| true ou false
| false
|
Indique si on doit enregistrer plus de messages verbeux pour pouvoir déboguer.
|
Tableau 11.37. AdvancedLdap
Code | AdvancedLdap |
Class | org.jboss.security.negotiation.AdvancedLdapLoginModule
|
Description |
Module qui fournit davantage de fonctionnalité, comme SASL et l'utilisation d'un domaine de sécurité JAAS.
|
Tableau 11.38. Options de module AdvancedLdap
Option | Type | Par défaut | Description |
---|---|---|---|
bindAuthentication
|
chaîne
|
aucun
|
Le type d'authentification SASL à utiliser pour se lier au serveur de répertoires.
|
jassSecurityDomain
| string
|
aucun
|
Le nom du domaine de sécurité JAAS à utiliser.
|
java.naming.provider.url
| string
|
aucun
|
L'URI du serveur de répertoires.
|
baseCtxDN
|
DN (Nom Distinctif) complet
|
aucun
|
Le nom distinctif à utiliser comme base pour les recherches.
|
baseFilter
|
Chaîne représentant un filtre de recherche LDAP
|
aucun
|
Le filtre à utiliser pour réduire les résultats des recherches.
|
roleAttributeID
|
Chaîne représentant un attribut LDAP
|
aucun
|
L'attribut LDAP qui contient les noms des rôles d'autorisation.
|
roleAttributeIsDN
| true ou false
| false
|
Indique si l'attribut de rôle est un Nom Distinctif (DN).
|
roleNameAttributeID
|
Chaîne représentant un attribut LDAP
|
aucun
|
L'attribut contenu dans
RoleAttributeId qui contient lui-même l'attribut de rôle.
|
recurseRoles
| true ou false
| false
|
Indique si on doit chercher récursivement des rôles dans
RoleAttributeId .
|
Tableau 11.39. AdvancedADLdap
Code | AdvancedADLdap |
Class | org.jboss.security.negotiation.AdvancedADLoginModule
|
Description |
Ce module étend le module de connexion
AdvancedLdap , et ajoute des paramètres supplémentaires utiles au répertoire Microsoft Active DIrectory.
|
Tableau 11.40. UsersRoles
Code | UsersRoles |
Class | org.jboss.security.auth.spi.UsersRolesLoginModul
|
Description |
Un module de connexion supportant des utilisateurs multiples et des rôles utilisateur stockés dans deux fichiers de propriétés différents.
|
Tableau 11.41. Options de module UsersRoles
Option | Type | Par défaut | Description |
---|---|---|---|
usersProperties
|
Chemin d'accès à un fichier ou à une ressource.
| users.properties
|
Fichier ou ressource qui contient les mappages d'utilisateur aux mots de passe. Le format du fichier est
user=hashed-password
|
rolesProperties
|
Chemin d'accès à un fichier ou à une ressource.
| roles.properties
|
Fichier ou ressource qui contient les mappages d'utilisateur aux rôles. Le format du fichier est
username=role1,role2,role3
|
password-stacking
| useFirstPass ou false
| false
|
La valeur de
useFirstPass indique si ce module de connexion doit tout d'abord rechercher les informations stockées dans le LoginContext à utiliser comme identité. Cette option peut être utilisée lorsque vous empilez les autres modules de connexion avec celui-ci.
|
hashAlgorithm
|
Chaîne représentant un algorithme de hachage de mot de passe.
| none
|
Le nom de l'algorithme
java.security.MessageDigest à utiliser pour hacher le mot de passe. Il n'y a pas de valeur par défaut pour cette option, donc vous devez la définir explicitement pour permettre le hachage. Quand hashAlgorithm est spécifié, le mot de passe en texte clair obtenu de CallbackHandler isera haché avant d'être passé à UsernamePasswordLoginModule.validatePassword comme argument inputPassword . Le mot de passe stocké dans le fichier users.properties doit être haché de façon similaire.
|
hashEncoding
| base64 ou hex
| base64
|
Le format du string du mot de passe haché, si hashAlgorithm est défini également.
|
hashCharset
|
Une chaîne
|
Le codage par défaut défini dans l'environnement runtime du conteneur.
|
Le codage utilisé pour convertir le mot de passe de texte en clair en un tableau d'octets.
|
unauthenticatedIdentity
|
Un nom de principal
|
aucun
|
Définit le nom principal affecté aux demandes qui ne contiennent aucune information d'authentification. Cela peut permettre à des servlets non protégés d'appeler des méthodes sur EJB ne nécessitant pas un rôle spécifique. Un tel principal ne possédera aucun rôle associé et ne ne pourra accéder qu'aux méthodes EJB ou EJB non sécurisées associées à la contrainte de
permission non contrôlée .
|
Les modules d'authentification sont des implémentations de org.jboss.security.LoginModule
. Consulter la documentation de l'API pour obtenir plus d'informations sur la façon de créer un module d'authentification personnalisé.