Plusieurs thèmes sont associés à l’activation de l’accès à un référentiel CRX :
Les éléments de base sont les suivants :
Comptes d’utilisateur CRX authentifie l’accès en identifiant et en vérifiant un utilisateur (par l’intermédiaire de cette personne ou d’une autre application) en fonction des détails contenus dans le compte d’utilisateur.
Dans CRX, chaque compte utilisateur est un nœud dans l’espace de travail. Un compte utilisateur CRX possède les propriétés suivantes :
Il représente un utilisateur de CRX.
Il contient un nom d’utilisateur et un mot de passe.
S’applique à cet espace de travail.
Il ne peut pas avoir de sous-utilisateurs. Pour les droits d’accès hiérarchiques, vous devez utiliser les groupes.
Vous pouvez spécifier des droits d’accès pour le compte d’utilisateur.
En revanche, pour simplifier la gestion, il est recommandé (dans la plupart des cas) d’affecter des droits d’accès aux comptes de groupe. L’affectation de droits d’accès à chaque personne devient très rapidement difficile à gérer (à l’exception de certains utilisateurs ou utilisatrices système lorsqu’il n’y a qu’une ou deux instances).
Comptes de groupe Les comptes de groupe sont des ensembles d’utilisateurs et/ou d’autres groupes. Ils sont utilisés pour simplifier la gestion, car toute modification des droits d’accès affectés à un groupe est appliquée automatiquement à tous les utilisateurs de ce groupe. Un utilisateur ne doit appartenir à aucun groupe, mais appartient souvent à plusieurs.
Dans CRX, un groupe possède les propriétés suivantes :
Droits d’accès CRX utilise des droits d’accès pour contrôler l’accès à des zones spécifiques du référentiel.
Cette opération est effectuée en affectant des autorisations pour autoriser ou refuser l’accès à une ressource (nœud ou chemin d’accès) dans le référentiel. Lorsque différentes autorisations peuvent être affectées, les droits d’accès doivent être évalués afin de déterminer la combinaison qui s’applique à la demande actuelle.
CRX permet de configurer les droits d’accès pour des comptes utilisateur et des comptes de groupe. Les mêmes principes de base de l'évaluation sont alors appliqués aux deux.
Mise en oeuvre de CRX contrôle d’accès tel que défini par JSR-283.
L’installation standard du référentiel CRX est configurée de manière à utiliser des listes de contrôle d’accès dépendant des ressources. Il s’agit d’une implémentation possible du contrôle d’accès JSR-283 et de l’une des implémentations présentes avec Jackrabbit.
CRX utilise deux concepts clés lors de l’évaluation des droits d’accès :
Une entité de sécurité est une entité qui transfère des droits d’accès. Les entités incluent :
Un compte d’utilisateur
Un compte de groupe
Si un compte utilisateur appartient à un ou à plusieurs groupes, il est également associé à chacune de ces entités de groupe.
Un sujet est utilisé pour représenter la source de la demande.
Il est utilisé pour centraliser les droits d’accès applicables pour cette demande. Ceux-ci proviennent de :
l’entité de sécurité de l’utilisateur ;
Les droits affectés directement au compte utilisateur
toutes les entités de sécurité des groupes associés à cet utilisateur.
Tous les droits affectés aux groupes auxquels appartient l’utilisateur
Le résultat est ensuite utilisé pour autoriser ou refuser l’accès à la ressource demandée.
Dans CRX, le sujet dépend de :
La liste des droits d'accès applicables au sujet est construite à partir :
Lorsque CRX gère la demande, il compare la demande d’accès du sujet à la liste de contrôle d’accès sur le noeud du référentiel :
Ainsi, si Linda demande de mettre à jour le nœud /features
dans la structure de référentiel suivante :
Les droits d’accès dans CRX sont évalués comme suit :
Les entités d’utilisateur ont toujours la priorité sur les entités de groupe, indépendamment des éléments suivants :
Pour une entité de sécurité donnée, il existe (au plus) 1 entrée de refus et 1 entrée d’autorisation sur un nœud donné. La mise en œuvre efface toujours les entrées redondantes et s’assure que les mêmes autorisations ne figurent pas à la fois dans les entrées d’autorisation et de refus.
Ce processus d’évaluation est adapté au contrôle d’accès dépendant des ressources d’une installation CRX standard.
En prenant deux exemples dans lesquels l’utilisateur aUser
est membre du aGroup
:
+ parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ grandChildNode
Dans le cas ci-dessus :
aUser
ne dispose pas d’une autorisation en écriture sur grandChildNode
. + parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ ace: aUser - deny - write
+ grandChildNode
Dans ce cas :
aUser
ne dispose pas d’une autorisation en écriture sur grandChildNode
.aUser
est redondante.Les droits d’accès provenant de plusieurs entités de groupe sont évalués en fonction de leur ordre, à la fois dans la hiérarchie et dans une seule liste de contrôle d’accès.
Le tableau ci-dessous contient des recommandations et bonnes pratiques :
Recommandation... | Raison... |
Utilisez des groupes | Évitez d’affecter des droits d’accès utilisateur par utilisateur. Il existe plusieurs raisons à cela :
|
Soyez positif | Utilisez toujours des instructions Autoriser pour spécifier les droits d’accès de l’entité de groupe (dans la mesure du possible). Évitez d’utiliser une instruction Refuser. Les entités de groupe sont évaluées dans l’ordre, dans la hiérarchie et dans la liste de contrôle d’accès unique. |
Restez simple | Il s’avèrera payant d’investir du temps et de réfléchir lors de la configuration d’une nouvelle installation. L’application d’une structure claire simplifie la maintenance et l’administration au jour le jour, ce qui garantit que vos collègues actuels et leurs successeurs peuvent comprendre facilement ce qui est mis en œuvre. |
Testez | Utilisez une installation de test pour vous exercer et vous assurer que vous comprenez les relations entre les différents utilisateurs et groupes. |
Utilisateurs/groupes par défaut | Mettez toujours à jour les utilisateurs et les groupes par défaut immédiatement après l’installation afin d’éviter tout problème de sécurité. |
Une boîte de dialogue standard est utilisée pour l’administration des utilisateurs.
Vous devez être connecté à l’espace de travail approprié, puis vous pouvez accéder à la boîte de dialogue à partir des deux éléments suivants :
Propriétés
UserID
Nom abrégé du compte, utilisé lors de l’accès à CRX.
Principal Name
Nom entier du compte.
Password
Nécessaire lors de l’accès à CRX avec ce compte.
ntlmhash
Affecté automatiquement pour chaque nouveau compte et mis à jour lorsque le mot de passe est modifié.
Vous pouvez ajouter de nouvelles propriétés en définissant un nom, un type et une valeur. Cliquez sur Enregistrer (symbole de coche verte) pour chaque nouvelle propriété.
Appartenance à un groupe
Tous les groupes auxquels appartient le compte s’affichent. La colonne Hérité indique l’appartenance héritée en raison de l’appartenance à un autre groupe.
Si vous cliquez sur un ID de groupe (le cas échéant), l’Administration des groupes s’affiche pour ce groupe.
Emprunteurs d’identité
La fonction Emprunter l’identité permet à un utilisateur ou une utilisatrice de travailler sous le nom d’un(e) autre.
Cela signifie qu’un compte utilisateur peut spécifier d’autres comptes (utilisateur ou groupe) compatibles avec son compte. En d’autres termes, si l’utilisateur B est autorisé à emprunter l’identité de l’utilisateur A, l’utilisateur B peut agir à l’aide des détails du compte utilisateur (dont l’ID, le nom et les droits d’accès) de l’utilisateur A.
Cela permet aux comptes d’emprunteur d’identité d’effectuer des tâches comme s’ils utilisaient le compte qu’ils empruntaient ; par exemple, lors d’une absence ou pour partager une charge excessive à court terme.
Si un compte emprunte l’identité d’un autre compte, il est très difficile de s’en rendre compte. Les fichiers journaux ne contiennent pas d’informations sur le fait que l’emprunt de l’identité s’est produit lors des événements. Ainsi, si l’utilisateur B emprunte l’identité de l’utilisateur A, tous les événements sembleront avoir été effectués par l’utilisateur A personnellement.
Ouvrez le Administration des utilisateurs boîte de dialogue.
Cliquez sur Créer un utilisateur.
Vous pouvez ensuite saisir les Propriétés :
Cliquez sur Enregistrer (symbole de coche verte).
La boîte de dialogue sera développée afin que vous puissiez :
Une perte de performances peut parfois être constatée lors de l’enregistrement de nouveaux utilisateurs dans des installations comportant un grand nombre des deux :
Cela supprime le noeud de cette entité du référentiel.
Les entrées de droit d’accès ne sont pas supprimées. Cela permet de s’assurer de l’intégrité de l’historique.
Vous pouvez définir Propriétés pour les comptes nouveaux ou existants :
Les propriétés existantes peuvent être supprimées avec le symbole de la corbeille.
A l'exception du mot de passe, les propriétés ne peuvent pas être modifiées, elles doivent être supprimées et recréées.
Le Mot de passe est une propriété spéciale qui peut être modifiée en cliquant sur la propriété Modifier le mot de passe lien.
Vous pouvez également modifier le mot de passe de votre propre compte utilisateur à partir du Sécurité dans l’Explorateur CRX.
Vous pouvez définir des personnalisateurs pour les comptes nouveaux ou existants :
Ouvrez le Administration des utilisateurs pour le compte approprié.
Indiquez le compte à emprunter pour emprunter l’identité de ce compte.
Vous pouvez utiliser Parcourir… pour sélectionner un compte existant.
Cliquez sur Enregistrer (symbole de coche verte) pour la nouvelle propriété.
Une boîte de dialogue standard est utilisée pour Administration des groupes.
Vous devez être connecté à l’espace de travail approprié, puis vous pouvez accéder à la boîte de dialogue à partir des deux éléments suivants :
Propriétés
GroupID
Nom abrégé du compte de groupe.
Principal Name
Nom textuel entier pour le compte de groupe.
Vous pouvez ajouter de nouvelles propriétés en définissant un nom, un type et une valeur. Cliquez sur Enregistrer (symbole de coche verte) pour chaque nouvelle propriété.
Members
Vous pouvez ajouter des utilisateurs, ou d’autres groupes, en tant que membres de ce groupe.
Appartenance à un groupe
Tous les groupes auxquels appartient le compte s’affichent. La colonne Hérité indique l’appartenance héritée en raison de l’appartenance à un autre groupe.
Si vous cliquez sur un ID de groupe, la boîte de dialogue pour ce groupe s’affiche.
Membres
Répertorie tous les comptes (utilisateurs et/ou groupes) qui sont membres du groupe actuel.
Le Hérité indique l’appartenance héritée suite à l’appartenance à un autre groupe.
Lorsque le rôle Propriétaire, Éditeur ou Observateur est attribué à un utilisateur sur n’importe quel dossier de ressources, un nouveau groupe est créé. Le nom du groupe utilise le format mac-default-<foldername>
pour chaque dossier sur lequel les rôles sont définis.
Ouvrez le Administration des groupes boîte de dialogue.
Cliquez sur Créer un groupe.
Vous pouvez ensuite saisir les Propriétés :
Cliquez sur Enregistrer (symbole de coche verte).
La boîte de dialogue sera développée afin que vous puissiez :
Cela supprime le noeud de cette entité du référentiel.
Les entrées de droit d’accès ne sont pas supprimées. Cela permet de s’assurer de l’intégrité de l’historique.
Vous pouvez définir des Propriétés pour les comptes nouveaux ou existants :
Les propriétés existantes peuvent être supprimées avec le symbole de la corbeille.
Vous pouvez ajouter des membres au groupe actuel :
Ouvrez le Administration des groupes pour le compte approprié.
Soit :
Cliquez sur Enregistrer (symbole de coche verte) pour la nouvelle propriété.
Vous pouvez également supprimer un membre existant avec le symbole de la corbeille.
Grâce à l’onglet Contrôle d’accès de CRXDE Lite, vous pouvez définir des stratégies de contrôle d’accès et affecter les autorisations associées.
Par exemple, pour Chemin d’accès actuel, sélectionnez la ressource nécessaire dans le volet de gauche, l’onglet Contrôle d’accès dans le volet inférieur droit :
Les stratégies sont classées en fonction des éléments suivants :
Stratégies de contrôle d’accès applicables
Ces stratégies peuvent être appliquées.
Ce sont les stratégies disponibles pour créer une stratégie locale. Une fois que vous avez sélectionné et ajouté une stratégie applicable, elle devient une stratégie locale.
Stratégies de contrôle d’accès locales
Il s’agit des stratégies de contrôle d’accès que vous avez appliquées. Vous pouvez les mettre à jour, les trier ou les supprimer.
La stratégie locale remplace toutes les stratégies héritées du parent.
Stratégies de contrôle d’accès actuelles
Ce sont les stratégies de contrôle d’accès désormais en vigueur pour toutes les demandes d’accès. Elles affichent les stratégies agrégées dérivées des stratégies locales et des stratégies héritées du parent.
Les stratégies peuvent être sélectionnées pour les éléments suivants :
Chemin d’accès actuel
Comme dans l’exemple ci-dessus, sélectionnez une ressource dans le référentiel. Les stratégies de ce « chemin d’accès actuel » s’affichent.
Référentiel
Sélectionne le contrôle d’accès au niveau du référentiel. Par exemple, lors de la définition de l’autorisation jcr:namespaceManagement
, qui n’est appropriée que pour le référentiel, et non pour le nœud.
Entité de sécurité
Entité de sécurité enregistrée dans le référentiel.
Vous pouvez saisir le nom de l’entité de sécurité ou cliquer sur l’icône à droite du champ pour afficher la boîte de dialogue Sélectionner une entité de sécurité.
Cela permet de rechercher un utilisateur ou un groupe. Sélectionnez l’entité de sécurité nécessaire dans la liste qui s’affiche, puis cliquez sur OK pour reprendre la valeur dans la zone de dialogue précédente.
Pour simplifier la gestion, nous vous recommandons d’attribuer des droits d’accès aux comptes de groupe, et non à des comptes d’utilisateurs individuels.
Il est plus facile de gérer quelques groupes que de nombreux comptes d’utilisateurs.
Les autorisations ci-dessous peuvent être sélectionnées lors de l’ajout d’une entrée de contrôle d’accès (pour plus d’informations, voir API de sécurité) :
Nom de l’autorisation | Qui contrôle l’autorisation pour... |
---|---|
jcr:read |
Récupérer un nœud et lire ses propriétés et leurs valeurs |
rep:write |
Il s’agit d’une autorisation agrégée spécifique à jackrabbit de jcr:write et jcr:nodeTypeManagement. |
jcr:all |
Il s’agit d’une autorisation agrégée qui contient tous les autres privilèges prédéfinis. |
Avancé | |
crx:replicate |
Effectuer la réplication d’un nœud |
jcr:addChildNodes |
Créer les nœuds enfants d’un nœud |
jcr:lifecycleManagement |
Effectuer des opérations de cycle de vie sur un nœud |
jcr:lockManagement |
Verrouiller et déverrouiller un nœud ; actualiser un verrou |
jcr:modifyAccessControl |
Modifier les stratégies de contrôle d’accès d’un nœud |
jcr:modifyProperties |
Créer, modifier et supprimer les propriétés d’un nœud |
jcr:namespaceManagement |
Enregistrer, annuler l’enregistrement et modifier les définitions d’espace de noms |
jcr:nodeTypeDefinitionManagement |
Importer des définitions de type de nœud dans le référentiel |
jcr:nodeTypeManagement |
Ajouter et supprimer des types de nœuds mixin et modifier le type de nœud principal d’un nœud Cela inclut également les appels de Node.addNode et les méthodes d’importation XML, dans lesquels le type mixin ou principal du nouveau nœud est spécifié explicitement. |
jcr:readAccessControl |
Lire la stratégie de contrôle d’accès d’un nœud |
jcr:removeChildNodes |
Supprimer les nœuds enfants d’un nœud |
jcr:removeNode |
Supprimer un nœud |
jcr:retentionManagement |
Effectuer des opérations de gestion de la rétention sur un nœud |
jcr:versionManagement |
Exécuter des opérations de contrôle de version sur un nœud |
jcr:workspaceManagement |
Créer et supprimer des espaces de travail via l’API JCR |
jcr:write |
Il s’agit d’une autorisation agrégée qui contient : - jcr:modifyProperties - jcr:addChildNodes - jcr:removeNode - jcr:removeChildNodes |
rep:privilegeManagement |
Enregistrer la nouvelle autorisation |
Vous pouvez également enregistrer de nouvelles autorisations :
Dans la barre d’outils, sélectionnez Outils, puis Autorisations pour afficher les autorisations actuellement enregistrées.
Utilisez l’icône Enregistrer l’autorisation (+) pour afficher la boîte de dialogue et définir une nouvelle autorisation.
Cliquez sur OK pour enregistrer. L’autorisation peut maintenant être sélectionnée.
Sélectionnez votre ressource et ouvrez l’onglet Contrôle d’accès.
Pour ajouter une stratégie de contrôle d’accès locale, cliquez sur l’icône + à droite de la liste Stratégie de contrôle d’accès applicable :
Une nouvelle entrée s’affiche sous Stratégies de contrôle d’accès locales :
Cliquez sur l’icône + pour ajouter une nouvelle entrée :
Actuellement, une solution de contournement est nécessaire pour spécifier une chaîne vide.
À cet effet, vous devez utiliser "".
Définissez votre stratégie de contrôle d’accès et cliquez sur OK pour l’enregistrer. Votre nouvelle stratégie :
CRX valide votre sélection pour une entité de sécurité donnée, il existe (au plus) 1 entrée de refus et 1 entrée d’autorisation sur un nœud donné. La mise en œuvre efface toujours les entrées redondantes et s’assure que les mêmes autorisations ne figurent pas à la fois dans les entrées d’autorisation et de refus.
L’ordre dans la liste indique l’ordre dans lequel les stratégies sont appliquées.
Dans le tableau Stratégies de contrôle d’accès locales, sélectionnez l’entrée souhaitée et faites-la glisser vers la nouvelle position dans le tableau.
Les modifications sont affichées dans les tableaux pour les stratégies de contrôle d’accès locales et actuelles.
Dans la barre d’outils de CRXDE Lite, sélectionnez Outils, puis Tester le contrôle d’accès.
Une nouvelle boîte de dialogue s’affiche dans le volet supérieur droit. Sélectionnez le chemin d’accès et/ou l’entité de sécurité à tester.
Cliquez sur Test pour afficher les résultats de votre sélection :