Chapitre 6. Sécurité
- Authentification
- Autorisation
- Rule Package Signing
6.1. Authentification Copier lienLien copié sur presse-papiers!
Important
jboss-brms.war/WEB-INF/components.xml
. La configuration par défaut possède plusieurs options «dé-commenter», mais voici un aperçu des paramètres de configuration :
<security:identity authenticate-method="#{authenticator.authenticate}" jaas-config-name="jmx-console"/> <component name="org.jboss.seam.security.roleBasedPermissionResolver"> <property name="enableRoleBasedAuthorization">false</property> </component>
<security:identity authenticate-method="#{authenticator.authenticate}" jaas-config-name="jmx-console"/>
<component name="org.jboss.seam.security.roleBasedPermissionResolver">
<property name="enableRoleBasedAuthorization">false</property>
</component>
Note
components.xml
a changé dans BRMS 5.2. Dans BRMS 5.1 et dans les versions précédentes, le fichier ressemble à ceci :
<security:identity authenticate-method="#{authenticator.authenticate}" jaas-config-name="jmx-console"/> <security:role-based-permission-resolver enable-role-based-authorization="false"/>
<security:identity authenticate-method="#{authenticator.authenticate}" jaas-config-name="jmx-console"/>
<security:role-based-permission-resolver enable-role-based-authorization="false"/>
Important
jmx-console
. Red Hat recommande de modifier cette politique pour l'adapter à votre environnement précis.
- Modifier le module de login de JBoss qu'il faut dans le serveur d'applications.
- Configurer la plateforme JBoss Enterprise BRMS à utiliser pour ce module.
Note
Avertissement
Important
BRMS Permissions
. Une fois que l'autorisation basée-rôles est activée, seuls les utilisateurs disposant de privilèges d'administrateur pourront exécuter plusieurs tâches administratives, y compris la gestion des rôles d'utilisateur. (Ceci est expliqué plus en détail dans Section 6.2, « Authorisation
».)
6.1.1. Authentication Example: UserRolesLoginModule Copier lienLien copié sur presse-papiers!
org.jboss.security.auth.spi.UsersRolesLoginModule
qui donne accès à un ensemble de comptes d'utilisateurs dans les fichiers props/brms-users.properties
et props/brms-roles.properties
.
Procédure 6.1. Exemple d'authentication : UserRolesLoginModule
Veillez à ce que le système d'authentification soit configuré correctement
Ce module de login utilise deux fichiers pour stocker le nom de login, le mot de passe, et les rôles assignés à chaque utilisateur. Créer les fichiersbrms-users.properties
etbrms-roles.properties
dans le répertoirejboss-as-web/server/PROFILE/conf/props/
, puis spécifier au moins un utilisateur dansbrms-users.properties
en utilisant le format :username=password
. (le fichierbrms-roles.properties
peut rester vide.)Fermeture
Fermer le serveur d'applications avant de procéder à ces changements.Configurer le module de login de JBoss
Pour configurer les modules de login de JBoss, ouvrirjboss-as-web/server/PROFILE/conf/login-config.xml
dans un éditeur de texte. Il s'agit d'un fichier XML qui contient un élément<policy>
avec plusieurs éléments enfant<application-policy>
. Chaque élément d'<application-policy>
définit un plan d'authentification différent. Ajouter l'extrait XML suivant de<application-policy>
en tant que nouvel enfant de l'élément<policy>
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurer la platform BRMS pour utiliser le Module de login
Ouvrir le fichierjboss-as-web/server/PROFILE/deploy/JBoss-BRMS.war/WEB-INF/components.xml
. Il contient un élément<components>
ayant plusieurs éléments enfant, y compris<security:identity>
.Dé-commentez les éléments<security:identity>
existants pour empêcher les conflits. Ajouter l'élément<security:identity>
suivant :<security:identity authenticate- method="#{authenticator.authenticate}" jaas-config-name="brms"/>
<security:identity authenticate- method="#{authenticator.authenticate}" jaas-config-name="brms"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La propriété jaas-config-name doit être la même que application-policy. Si la propriété application-policy a été modifiée dans l'étape précédente, modifier la propriété jaas-config-name ici pour la faire correspondre.Démarrage à nouveau
Démarrer le serveur d'applications à nouveau.
6.1.2. Exemple d'authentification : LDAP Copier lienLien copié sur presse-papiers!
Procédure 6.2. Second exemple d'authentification : LDAP
Veillez à ce que le serveur LDAP soit configuré correctement
Vérifier que les paramètres de configuration du pare-feu et du réseau n'empêchent pas la communication entre le serveur d'applications et le serveur LDAP.Fermeture
Fermer le serveur d'applications avant de procéder à ces changements.Configurer le module de login de JBoss
Pour configurer les modules de login de JBoss, ouvrirjboss-as-web/server/PROFILE/conf/login-config.xml
dans un éditeur de texte. Il s'agit d'un fichier XML qui contient un élément<policy>
avec plusieurs éléments enfant<application-policy>
. Chaque élément d'<application-policy>
définit un plan d'authentification différent. Ajouter l'extrait XML suivant de<application-policy>
en tant que nouvel enfant de l'élément<policy>
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Mettre à jour les valeurs de ce fichier de configuration avec celles qui sont appropriées pour votre serveur LDAP.Configurer la platform BRMS pour utiliser le Module de login
Ouvrir le fichierjboss-as-web/server/PROFILE/deploy/jboss-brms.war/WEB-INF/components.xml
. Il contient un élément<components>
ayant plusieurs éléments enfants, y compris<security:identity>
.Dé-commentez les éléments<security:identity>
existants pour empêcher les conflits. Ajouter l'élément<security:identity>
suivant :<security:identity authenticate-method="#{authenticator.authenticate}" jaas-config-name="brms"/>
<security:identity authenticate-method="#{authenticator.authenticate}" jaas-config-name="brms"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La propriété jaas-config-name doit être la même que application-policy. Si la propriété application-policy a été modifiée dans l'étape précédente, modifier la propriété jaas-config-name ici pour la faire correspondre.Démarrage à nouveau
Démarrer le serveur d'applications à nouveau.
Note
6.2. Authorisation
Copier lienLien copié sur presse-papiers!
Figure 6.1. Gestion des permissions d'utilisateur
Procédure 6.3. Activer l'autorisation basée-rôle
Assigner des privilèges d'administrateur à un utilisateur
Avant d'activer une autorisation basée-rôle, il faut assigner à au moins un utilisateur de confiance le rôle d'administrateur.Voir Procédure 6.5, « Gestion des permissions d'utilisateur » pour obtenir davantage d'informations.Fermeture
Fermer le serveur d'applications avant de procéder à ces changements.Ouvrir
components.xml
Ouvrir le fichierjboss-as-web/server/PROFILE/deploy/jboss-brms.war/WEB-INF/components.xml
dans un éditeur de texte.Chercher l'élément
<property name="enableRoleBasedAuthorization">
Dans le fichier par défaut,components.xml
, cet élément XML est l'enfant de<components>
.<component name="org.jboss.seam.security.roleBasedPermissionResolver"> <property name="enableRoleBasedAuthorization">false</property> </component>
<component name="org.jboss.seam.security.roleBasedPermissionResolver"> <property name="enableRoleBasedAuthorization">false</property> </component>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note
Chercher l'XML suivant dans les versions 5.1 et versions précédentes<security:role-based-permission-resolver enable-role-based-authorization="false"/>
<security:role-based-permission-resolver enable-role-based-authorization="false"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Mettre à jour la valeur de l'attribut à «True».
Mettre à jour la valeur de la propriété enable-role-based-authorization àtrue
et sauvegarder le fichier.<component name="org.jboss.seam.security.roleBasedPermissionResolver"> <property name="enableRoleBasedAuthorization">true</property> </component>
<component name="org.jboss.seam.security.roleBasedPermissionResolver"> <property name="enableRoleBasedAuthorization">true</property> </component>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note
Chercher l'XML suivant dans les versions 5.1 et versions précédentes<security:role-based-permission-resolver enable-role-based-authorization="true"/>
<security:role-based-permission-resolver enable-role-based-authorization="true"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrage à nouveau
Démarrer le serveur d'applications à nouveau.
Procédure 6.4. Ajouter un nouvel utilisateur BRMS
Sélectionner les informations sur les permissions
Sélectionner Administration à partir du menu de navigation, puis sélectionner User Permissions. (Permissions Utilisateur)Ajouter le mappage d'utilisateur
Cliquer sur le bouton(Créer un nouveau mappage d'utilisateur). Saisir le nom d'utilisateur dans la boîte de dialogue, et cliquer sur .Note
Le nom d'utilisateur indiqué pour le rôle doit correspondre à un nom d'utilisateur du service d'authentification ou il ne fonctionnera pas.Ajouter les permissions
Voir Procédure 6.5, « Gestion des permissions d'utilisateur » pour obtenir davantage d'informations.
Procédure 6.5. Gestion des permissions d'utilisateur
Sélectionner les permissions d'utilisateur
Sélectionner Administration à partir du menu de navigation, puis sélectionner User Permissions. (Permissions Utilisateur)Sélectionner l'utilisateur
Sélectionner Open qui se trouve à côté du nom d'utilisateur.Figure 6.2. Détails Permissions
Assigner des permissions à l'utilisateur
Cliquer sur l'icône pour ajouter des permissions, et sélectionner les permissions qui conviennent à partir du menu déroulant de Permission type. Appuyez sur OK pour confirmer.Figure 6.3. Modifier les permissions d'utilisateur
Retirer les permissions d'utilisateur
Cliquez sur l'icône moins à côté de la permission supprimée, puis cliquez sur OK pour confirmer.
- admin
- analyst
- package
Note
Note
Important
La permission d'administrateur de package donne un contrôle total sur un package particulier, y compris le droit de la déployer. La permission d' Administrateur de package ne donne aucun droit administratif à aucune partie de la plateforme JBoss Enterprise BRMS.
Le développeur de package permet aux utilisateurs de créer et de modifier des items à l'intérieur du package spécifié. Cela inclut la possibilité de créer et de mener des tests, mais n'inclut pas le droit de déployer le package.
La permission de package lecture-seule ressemble à la permission analyste lecture-seule, mais donne accès à un package, à la place d'une catégorie.
6.3.
Rule Package Signing Copier lienLien copié sur presse-papiers!
Important
keytool
est utilisée pour créer une clé privée et un certificat numérique publique correspondant. Les packages signés avec une clé privée peuvent uniquement être vérifiés avec le certificat correspondant. La clé privée est stockée dans un fichier appelé keystore et est utilisée par le serveur pour signer automatiquement chaque paquet. Le certificat public est mis à la disposition de chaque application client dans un keystore appelé un truststore. Le certificat du truststore est utilisé pour vérifier l'authenticité des paquets signés. Les packages de règles qui sont endommagés ou modifiés au cours du téléchargement seront rejetés par le client parce que la signature ne correspondra n'est plus au certificat.
- Créer un clé de signature privée et un certificat digital public correspondant.
- Rendez la clé de signature privée et le certificat digital disponibles dans le serveur dans les keystores.
- Configurer le serveur pour qu'il utilise les keystores.
Procédure 6.6. Configurer Rule Package Signing
Créer un Keystore privé
Utiliser la commandekeytool
pour créer le keystore privé :keytool -genkey -alias ALIAS -keyalg RSA -keystore PRIVATE.keystore
keytool -genkey -alias ALIAS -keyalg RSA -keystore PRIVATE.keystore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Le paramètre-alias
indique le nom utilisé pour relier les entités reliées dans le keystore. Utiliser le même alias pour chacune de ces étapes. L'alias n'est pas sensible à la casse. Le paramètre-keystore
fournit le nom du fichier qui sera créé pour contenir la clé privée.keytool
vous invitera à vous identifier et à fournir deux mots de passe. Le premier mot de passe, le keystore password, sécurise le keystore. Le second mot de passe, le mot de passe clé, sécurise la clé qui est en cours de création.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer un Certificat digital
Utiliser la commandekeytool
pour créer un certificat digital :keytool -export -alias ALIAS -file CERTIFICATE.crt -keystore PRIVATE.keystore
keytool -export -alias ALIAS -file CERTIFICATE.crt -keystore PRIVATE.keystore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utiliser le même alias et le même keystore que pour l'étape précédente. Le paramètre-file
est le nom de fichier du nouveau certificat qui va être créé. Le paramètre-keystore
fournit le nom de fichier du keystore privé.Saisir le mot de passe du keystore quand vous y êtes invité.keytool -export -alias BRMSKey -file BRMSKey.crt -keystore PrivateBRMS.keystore
[localhost ]$ keytool -export -alias BRMSKey -file BRMSKey.crt -keystore PrivateBRMS.keystore Enter keystore password: Certificate stored in file <BRMSKey.crt>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Importer le Certificat digital dans le Truststore
Utiliser la commandekeytool
pour importer le certificat digital dans un keystore :keytool -import -alias ALIAS -file CERTIFICATE.crt -keystore PUBLIC.keystore
keytool -import -alias ALIAS -file CERTIFICATE.crt -keystore PUBLIC.keystore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cela va créer un nouveau keystore, le truststore, qui contient le certificat digital. Le truststore rend le certificat digital disponible aux applications clients.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Déplacer le keystore privé dans une location sécurisée
Le keystore sécurisé a besoin d'être gardé dans une location sécurisée à laquelle le serveur de la plateforme JBoss Enterprise BRMS peut accéder. Il pourrait s'agir de la même machine ou d'une location de réseau sécurisée qui est disponible pour cette machine.Important
La plateforme JBoss Enterprise BRMS Platform n'est pas en mesure de fournir des informations d'identification aux ressources de réseau. Si le keystore privé se trouve dans une location de réseau sécurisée, alors toute procédure d'authentification devra avoir lieu pour le compte du serveur JBoss Enterprise BRMS, pour rendre le keystore privé disponible. Par exemple, le système d'exploitation peut authentifier et monter un fichier partagé qui contient le keystore privé comme répertoire local auquel le serveur de JBoss Enterprise BRMS Platform peut accéder.Déplacer le Truststore vers une location publique
Le truststore a besoin d'être accessible aux applications client. Cela est possible en mettant le truststore sur un réseau en commun ou en l'hébergeant sur un webserveur.Définir les propriétés de sérialisation de Drools.
Les propriétés système de sérialisation de Drools ont besoin d'être configurées sur le serveur. Il s'agit des propriétés qui stockent des informations requises pour accéder aux keystores. Comme JBoss Enterprise BRMS Platform contient également des composants, les propriétés de truststore et du keystore privé devront être définies sur le serveur.Consulter Section 6.3.1, « Définir les propriétés de sérialisation » pour obtenir des détails sur l'endroit où définir les propriétés.Les propriétés qui sont besoin d'être définies sont les suivantes :drools.serialization.sign
- indique si la signature est activée. Doit être défini surtrue
.drools.serialization.private.keyStoreURL
- URL où le keystore privé se situedrools.serialization.private.keyStorePwd
- le mot de passe du keystoredrools.serialization.private.keyAlias
- alias utilisé pour créer le keystoredrools.serialization.private.keyPwd
- le mot de passe clédrools.serialization.public.keyStoreURL
- URL où se situe le truststoredrools.serialization.public.keyStorePwd
- le mot de passe pour le truststore
Encrypter les informations d'identification du keystore
Le mot de passe du keystore est actuellement stocké en texte ordinaire.Consulter https://access.redhat.com/kb/docs/DOC-47247 pour obtenir des instructions pour masquer les informations d'authentification du keystore.
- Consulter le Guide d'utilisateur de BRMS pour obtenir des instructions sur la façon de configurer les Rule Packages signés.
6.3.1. Définir les propriétés de sérialisation Copier lienLien copié sur presse-papiers!
- JBoss Properties Service
- Pour configurer les propriétés de JBoss Properties Service, ajouter la configuration de beans gérés suivante au fichier
/server/PROFILE/deploy/properties-service.xml
, en remplaçant les valeurs d'exemple par celles qui conviennent pour votre système.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - jboss-brm.war properties file
- Pour configurer les propriétés du fichier de propriétés jboss-brms.war properties, ajouter le code suivant au fichier
jboss-brms.war/WEB-INF/classes/preferences.properties
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow