L’activation de l’accès à un référentiel CRX comprend plusieurs rubriques :
Les éléments de base sont les suivants :
User ComptesCRX authentifie l'accès en identifiant et en vérifiant un utilisateur (par cette personne, ou une autre application) selon les détails contenus dans le compte utilisateur.
Dans CRX, chaque compte utilisateur est un nœud dans l’espace de travail. Un compte d’utilisateur CRX possède les propriétés suivantes :
Il représente un seul utilisateur de CRX.
Il comporte un nom d’utilisateur et un mot de passe.
Il s’applique à cet espace de travail.
Il ne peut pas avoir de sous-utilisateurs. Pour les droits d’accès hiérarchisés, vous devez utiliser des groupes.
Vous pouvez spécifier des droits d’accès pour le compte 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 utilisateur devient très rapidement difficile à gérer (à l’exception de certains utilisateurs système lorsqu’il n’y a qu’une ou deux instances).
Les comptes de groupe Les comptes de groupe sont des collections 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 même utilisateur n’est pas tenu de faire partie d’un groupe, mais il appartient souvent à plusieurs.
Dans CRX, un groupe possède les propriétés suivantes :
Access RightsCRX utilise Access Rights 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, ils 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 ensuite appliqués aux deux.
CRX met en œuvre le contrôle d’accès défini par la spécification 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 mise en œuvre possible du contrôle d’accès JSR-283 et l’une des mises en œuvre 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 comportent les éléments suivants :
Un compte 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. Ils proviennent de :
Principal utilisateur
Droits que vous attribuez directement au compte d’utilisateur.
Tous les groupes principaux associés à cet utilisateur
Tous les droits attribués à l’un des groupes auxquels l’utilisateur appartient.
Le résultat est ensuite utilisé pour autoriser ou refuser l’accès à la ressource demandée.
Dans CRX, le sujet dépend des éléments suivants :
La liste des droits d’accès applicables au sujet est créée à partir :
Lorsque CRX traite la demande, il compare la demande d’accès du sujet à la liste de contrôle d’accès sur le nœud du référentiel :
Ainsi, si Linda demande de mettre à jour le noeud /features
dans la structure de référentiel suivante :
Dans CRX, les droits d’accès sont évalués comme suit :
Les entités de l’utilisateur prévalent toujours sur les entités de groupe indépendamment de :
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.
Prenons deux exemples où l'utilisateur aUser
est membre du groupe aGroup
:
+ parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ grandChildNode
Dans le cas ci-dessus :
aUser
n’est pas autorisée à écrire sur grandChildNode
le site. + parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ ace: aUser - deny - write
+ grandChildNode
Dans ce cas :
aUser
n’est pas autorisée à écrire sur grandChildNode
le site.aUser
est redondant.Les droits d’accès de plusieurs entités de groupe sont évalués en fonction de leur ordre dans la hiérarchie et dans une liste de contrôle d’accès unique.
Le tableau ci-dessous contient des recommandations et les meilleures pratiques :
Recommandation... | Raison... |
Utiliser des groupes | Evitez d’attribuer des droits d’accès utilisateur par utilisateur. Il y a plusieurs raisons à cela :
|
Être positif | Utilisez toujours les instructions Allow pour spécifier les droits d'accès de l'entité de sécurité du groupe (dans la mesure du possible). Évitez d’utiliser une instruction Deny. 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. |
Conserver simple | Investir du temps et réfléchir lors de la configuration d'une nouvelle installation sera bien payé. 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/ou leurs successeurs peuvent comprendre facilement ce qui est mis en œuvre. |
Test | 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 accéder à la boîte de dialogue à partir du :
Propriétés
UserID
Nom court du compte, utilisé lors de l’accès à CRX.
Nom principal
Nom complet du compte.
Mot de passe
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), Administration des groupes s’affiche pour ce groupe.
Emprunteurs d’identité
La fonctionnalité Emprunter l’identité permet à un utilisateur de travailler au nom d’un 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’emprunteurs d’identité d’exécuter des tâches comme s’ils utilisaient le compte dont ils empruntent l’identité. 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. Par conséquent, si l’utilisateur B emprunte l’identité de l’utilisateur A, tous les événements semblent avoir été exécutés personnellement par l’utilisateur A.
Ouvrez la boîte de dialogue Administration des utilisateurs.
Cliquez sur Créer un utilisateur.
Vous pouvez alors saisir les propriétés :
Cliquez sur le bouton Enregistrer (symbole de coche verte).
La boîte de dialogue est développée afin que vous puissiez :
Une perte de performances peut parfois être observée lors de l’enregistrement de nouveaux utilisateurs dans des installations comportant un nombre élevé :
Le nœud pour cette entité de sécurité est supprimé 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 de nouveaux comptes ou des comptes existants :
Les propriétés existantes peuvent être supprimées en cliquant sur le symbole de corbeille.
À 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 le lien Modifier le mot de passe.
Vous pouvez également modifier le mot de passe de votre propre compte utilisateur dans le menu Sécurité dans CRX Explorer.
Vous pouvez définir des emprunteurs d’identité pour de nouveaux comptes ou des comptes existants :
Ouvrez la boîte de dialogue Administration des utilisateurs pour le compte approprié.
Spécifiez le compte qui doit avoir l’autorisation d’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 l’administration des groupes.
Vous devez être connecté à l’espace de travail approprié, puis accéder à la boîte de dialogue à partir du :
Propriétés
GroupID
Nom court du compte de groupe.
Nom principal
Nom de texte complet 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é.
Membres
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.
Cliquez sur un ID de groupe pour ouvrir la boîte de dialogue de ce groupe.
Membres
Répertorie tous les comptes (utilisateurs et/ou groupes) qui sont membres du groupe actuel.
La colonne Hérité indique l’appartenance héritée en raison de 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 est au format mac-default-<foldername>
pour chaque dossier dans lequel les rôles sont définis.
Ouvrez la boîte de dialogue Administration des groupes.
Cliquez sur Créer un groupe.
Vous pouvez alors saisir les propriétés :
Cliquez sur le bouton Enregistrer (symbole de coche verte).
La boîte de dialogue est développée afin que vous puissiez :
Le nœud pour cette entité de sécurité est supprimé 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 de nouveaux comptes ou des comptes existants :
Les propriétés existantes peuvent être supprimées en cliquant sur le symbole de corbeille.
Vous pouvez ajouter des membres au groupe actuel :
Ouvrez la boîte de dialogue Administration des groupes pour le compte approprié.
Ou :
Cliquez sur Enregistrer (symbole de coche verte) pour la nouvelle propriété.
Ou supprimez un membre existant en cliquant sur le symbole de corbeille.
Avec l'onglet Contrôle d'accès du CRXDE Lite, vous pouvez définir les stratégies de contrôle d'accès et attribuer les privilèges associés.
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 de 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 efficaces
Il s’agit des stratégies de contrôle d'accès 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 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, non pour le nœud.
Principal
Entité principale 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, il est recommandé d’affecter des droits d’accès à des comptes de groupe et non à des comptes utilisateur individuels.
Il est plus facile de gérer quelques groupes, plutôt que de nombreux comptes utilisateur.
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 du privilège | Qui contrôle le privilège de... |
---|---|
jcr:read |
Récupérez un noeud et lisez ses propriétés et leurs valeurs. |
rep:write |
Il s'agit d'un privilège d'agrégat spécifique à jackrabbit de jcr:write et jcr:nodeTypeManagement. |
jcr:all |
Il s'agit d'un privilège d'agrégat qui contient tous les autres privilèges prédéfinis. |
Avancé | |
crx:replicate |
Effectuez la réplication d’un noeud. |
jcr:addChildNodes |
Créez des noeuds enfants d’un noeud. |
jcr:lifecycleManagement |
Effectuez des opérations de cycle de vie sur un noeud. |
jcr:lockManagement |
verrouiller et déverrouiller un noeud ; actualisez un verrou. |
jcr:modifyAccessControl |
Modifiez les stratégies de contrôle d'accès d’un noeud. |
jcr:modifyProperties |
Créez, modifiez et supprimez les propriétés d’un noeud. |
jcr:namespaceManagement |
Enregistrer, annuler l'inscription et modifier les définitions d'espace de nommage. |
jcr:nodeTypeDefinitionManagement |
Importez des définitions de type de noeud dans le référentiel. |
jcr:nodeTypeManagement |
Ajoutez et supprimez les types de noeud de mixin et modifiez le type de noeud Principal d’un noeud. 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 |
Lisez la stratégie de contrôle d'accès d’un noeud. |
jcr:removeChildNodes |
Supprimez les noeuds enfants d’un noeud. |
jcr:removeNode |
Supprimez un noeud. |
jcr:retentionManagement |
Effectuez des opérations de gestion de la rétention sur un noeud. |
jcr:versionManagement |
Effectuez des opérations de contrôle de version sur un noeud. |
jcr:workspaceManagement |
Création et suppression d’espaces de travail via l’API JCR. |
jcr:write |
Il s’agit d’un privilège d’agrégat qui contient : - jcr:modifyProperties - jcr:addChildNodes - jcr:removeNode - jcr:removeChildNodes |
rep:privilegeManagement |
Enregistrez un nouveau privilège. |
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. La 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 :