Chapitre 12. Référence à l'administration de la sécurité
12.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 12.1. RealmDirect
Code | RealmDirect
|
Class | org.jboss.as.security.RealmDirectLoginModule
|
Description |
Une implémentation du module de connexion en interface directe avec le domaine de la sécurité. Ce module de connexion permet à toutes les interactions avec le backing store d'être déléguées au domaine, supprimant ainsi la nécessité de définitions en duplicata ou synchronisées. Utilisé pour les appels d'accès distant et l'interface de gestion.
|
Tableau 12.2. Options du module RealmDirect
Option | Type | Par défaut | Description |
---|---|---|---|
realm |
chaîne
| ApplicationRealm
|
Nom de domaine souhaité.
|
Tableau 12.3. 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 EAP agit en tant que client. Il ne doit jamais servir sous forme de domaine de sécurité pour l'authentification serveur.
|
Tableau 12.4. Options de module 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 celui-ci.
|
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 12.5. Remoting
Code | Remoting
|
Class | org.jboss.as.security.remoting.RemotingLoginModule
|
Description |
Le module de connexion est utilisé pour vérifier si la demande actuellement authentifiée est une demande reçue via une connexion d'accès distant et, si c'est le cas, l'identité qui aura été créée pendant le processus d'authentification à accès distant sera utilisée et associée à la demande en cours. Si la demande n'est pas parvenue via une connexion d'accès distant, ce module ne fera rien et permettra à la connexion JAAS de continuer vers le module suivant.
|
Tableau 12.6. Options de Modules à accès distant
Option | Type | Par défaut | Description |
---|---|---|---|
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.
|
principalClass
|
Un nom de classe complet.
|
aucun
|
Une classe d'implémentation de
Principal contenant un constructeur qui prend les arguments du String comme nom de principal.
|
unauthenticatedIdentity
|
Un nom de principal.
|
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 pourra accéder qu'aux méthodes EJB ou EJB non sécurisées associées à la contrainte de
unchecked permission .
|
Tableau 12.7. 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 12.8. 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 12.9. 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 12.10. Options de module CertificateRoles
Option | Type | Par défaut | Description |
---|---|---|---|
rolesProperties
| 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
username=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 |
defaultRolesProperties
| 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
rolesProperties
|
Tableau 12.11. 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 12.12. Database
Module Options
Option | Type | Par défaut | Description |
---|---|---|---|
digestCallback
| Un nom de classe complet |
aucun
|
Le nom de classe de l'implémentation
DigestCallback qui inclut le contenu pre/post digest comme les valeurs salt pour hacher le mot de passe donné. Utilisé uniquement si l'hashStoreAlgorithm est spécifié.
|
dsJndiName
| Ressource JNDI |
aucun
|
Le nom de la ressource JNDI qui store les informations d'authentification. Cette option est requise.
|
hashAlgorithm
| String |
Utiliser des mots de passe en texte brut
|
L'algorithme digest du message utilisé pour hâcher les mots de passe. Les algorithmes pris en charge dépendent du fournisseur de sécurité Java, mais
MD5 , SHA-1 , et SHA-256 sont pris en charge.
|
hashCharset
| String |
Le codage par défaut de la plateforme
|
Le nom du charset (jeu de caractères)/codification à utiliser pour convertir la chaîne de mot de passe en tableau d'octets. Inclut tous les noms pris en charge par Java.
|
hashEncoding
| String |
Base64
|
Indique le format de code de chaîne à utiliser.
|
ignorePasswordCase
| booléen |
false
|
Signe qui indique si la comparaison de mot de passe doit ignorer le cas.
|
inputValidator
| Un nom de classe complet |
aucun
|
L'instance de l'implémentation de InputValidator utilisée pour valider le nom d'utilisateur et le mot de passe fournis par le client.
|
principalsQuery
| énoncé SQL préparé | select Password from Principals where PrincipalID=?
|
La requête SQL préparée pour obtenir les informations sur le principal.
|
rolesQuery
| énoncé SQL préparé |
aucun
|
Enoncé SQL préparé en vue d'obtenir les informations concernant les rôles. Il 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 ou CallerPrincipal .
|
storeDigestCallback
| Un nom de classe complet |
aucun
|
Le nom de classe de l'implémentation
DigestCallback qui inclut le contenu pre/post digest comme les valeurs salt pour hacher le mot de passe du store/attendu. Utilisé uniquement si hashStorePassword ou hashUserPassword est sur true et si hashAlgorithm est spécifié.
|
suspendResume
| booléen |
true
|
Indique si une transaction JTA existante doit être suspendue pendant les opérations de base de données.
|
throwValidatorError
| booléen |
false
|
Indique si les erreurs de validation soivent être exposées ou non aux clients
|
transactionManagerJndiName
| Ressource JNDI |
java:/TransactionManager
|
Le nom JNDI de la source du gestionnaire de transactions utilisé par le module de connexion.
|
Tableau 12.13. 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 12.14. Options de module DatabaseCertificate
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 préparé | 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 ou CallerPrincipal .
|
suspendResume
| true ou false
| true
|
Indique si une transaction JTA existante doit être suspendue pendant les opérations de base de données.
|
Tableau 12.15. 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 12.16. Options de module Identity
Option | Type | Par défaut | Description |
---|---|---|---|
principal
| String | guest
|
Le nom à utiliser pour le principal.
|
roles
| liste de strings séparée par des virgules |
aucun
|
Une liste de rôles séparés par des virgules qui seront assignés au sujet.
|
Tableau 12.17. 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 12.18. 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
| 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
| 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
| chaîne |
|
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 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 recherche des rôles d'utilisateur. Cela diffère de
rolesCtxDN car le contexte de recherche de rôles d'utilisateur peut être unique pour chaque utilisateur.
|
roleAttributeID
| attribut | roles
|
Nom de l'attribut qui contient les rôles d'utilisateur.
|
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 .
|
roleNameAttributeID
| attribut | name
|
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 .
|
allownEmptyPasswords
| true ou false
| false
|
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 12.19. 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 les 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 12.20. 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.
|
bindCredential
| string, parfois crypté |
aucun
|
Consulter le JBoss EAP Security Guide pour obtenir plus d'informations.
|
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 .
|
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 |
aucun
|
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}) . Une alternative correspondant au userDN authentifié serait (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 contient le roleNameATtributeID. Si la valeur est false , le DN ne contient pas 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. Cette option peut à la fois être utilisée pour usernameBeginString et usernameEndString.
|
usernameBeginString
|
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
|
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 | name
|
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 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
| 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
| 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.
|
allownEmptyPasswords
| true ou false
| false
|
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.
|
referralUserAttributeIDToCheck
|
attribut
|
aucun
|
Si vous n'utilisez pas de renvois, cette option peut être ignorée. Lorsque vous utilisez des références, cette option indique le nom d'attribut qui contient les utilisateurs définis pour un certain rôle (par exemple,
member ), si l'objet rôle est à l'intérieur du référentiel. Les utilisateurs sont vérifiés par le contenu de cet attribut de nom. Si cette option n'est pas définie, le contrôle échouera à chaque fois, alors les objets role ne peuvent pas être stockés dans un arbre de référence.
|
Tableau 12.21. 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 12.22. 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 | none
|
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 .
|
Note
rolesProperties
est requise pour le RoleMapping.
Tableau 12.23. RunAs
Code | RunAs
|
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'un rôle run as soient mis en place.
|
Tableau 12.24. Options RunAs
Option | Type | Par défaut | Description |
---|---|---|---|
roleName
| nom de rôle | nobody
|
Le nom de rôle à utiliser comme rôle
run as pendant la phase de connexion.
|
principalName
| nom de principal | nobody
|
Le nom de principal à utiliser comme principal
run as pendant la phase de connexion. S'il n'est pas spécifié, on utilisera la valeur par défaut nobody .
|
principalClass
| Un nom de classe complet. |
aucun
|
Une classe d'implémentation de
Principal contenant un constructeur qui prend les arguments du String comme nom de principal.
|
Tableau 12.25. 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
Le module Simple
n'a pas d'options.
Tableau 12.26. 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 12.27. Options de module ConfiguredIdentity
Option | Type | Par défaut | Description |
---|---|---|---|
username
| chaîne | aucun | Le nom d'utilisateur pour l'authentification. |
password
| string encodé | "" |
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. La valeur par défaut correspond à une chaîne vide.
|
principal
| Nom d'un principal | none
|
Le principal qui sera associé avec n'importe quel sujet authentifié dans le module.
|
Tableau 12.28. 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 12.29. Options de module SecureIdentity
Option | Type | Par défaut | Description |
---|---|---|---|
username
| chaîne | aucun | Le nom d'utilisateur pour l'authentification. |
password
| string encodé | "" |
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. La valeur par défaut correspond à une chaîne vide.
|
managedConnectionFactoryName
| Ressource JCA | aucun |
Le nom de la fabrique de connexions JCA à utiliser pour votre source de données.
|
Tableau 12.30. 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 les mots de passe pour l'authentification. Aucune autorisation (correspondance de rôle) n'est fournie. Ce module convient seulement pour les tests.
|
Tableau 12.31. 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 avec
module-option . le name de module-option et les attributs de value se réfèrent à un nom d'utlisateur et à un mot de passe. Il est inclus pour les essais uniquement et n'est pas approprié pour un environnement de production.
|
Tableau 12.32. LdapUsers
Code | LdapUsers
|
Class | org.jboss.security.auth.spi.LdapUsersLoginModule
|
Description |
Le module
LdapUsers est remplacé par les modules ExtendedLDAP et AdvancedLdap .
|
Tableau 12.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/7/docs/jre/api/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 12.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 sur
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 TGT 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
| 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 12.35. SPNEGO
Code | SPNEGO
|
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 12.36. Options de module SPNEGO
Option | Type | Par défaut | Description |
---|---|---|---|
serverSecurityDomain
| string
| null .
|
Définit le domaine utilisé pour extraire l'identité du service de serveur par le biais du module de connexion kerberos. Cette propriété doit être définie.
|
removeRealmFromPrincipal
| boolean
| false
|
Indique si le domaine Kerberos doit être retiré du principal avant de continuer.
|
usernamePasswordDomain
| string
| null
|
Indique un autre domaine de sécurité de la configuration qui doit être utilisée comme journalisation d'échec quand Kerberos échoue.
|
Tableau 12.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 12.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.
|
java.naming.provider.url
| string
|
aucun
|
L'URI du serveur de répertoires.
|
baseCtxDN
|
DN 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
|
Valeur de 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 .
|
referralUserAttributeIDToCheck
|
attribut
|
aucun
|
Si vous n'utilisez pas de renvois, cette option peut être ignorée. Lorsque vous utilisez des références, cette option indique le nom d'attribut qui contient les utilisateurs définis pour un certain rôle (par exemple,
member ), si l'objet rôle est à l'intérieur du référentiel. Les utilisateurs sont vérifiés par le contenu de cet attribut de nom. Si cette option n'est pas définie, le contrôle échouera à chaque fois, alors les objets role ne peuvent pas être stockés dans un arbre de référence.
|
Tableau 12.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 12.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 12.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
username=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 sera 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
|
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
|
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 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 javax.security.auth.spi.LoginModule
. Reportez-vous à la documentation de l'API pour plus d'informations sur la création d'un module d'authentification personnalisé.