L’activation de l’accès à un référentiel CRX comprend plusieurs rubriques :
Droits d’accès : concepts se rapportant à leur définition et à leur évaluation
Administration des utilisateurs : gestion des comptes individuels utilisés pour l’accès
Administration des groupes : simplifiez la gestion des utilisateurs en formant des groupes
Gestion des droits d’accès : définition des stratégies qui contrôlent comment ces utilisateurs et ces groupes peuvent accéder à des ressources
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 cette personne ou une autre application) en fonction des 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).
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 :
Il représente un groupe d’utilisateurs avec des droits d’accès communs. Par exemple, des créateurs ou des développeurs.
Il s’applique à cet espace de travail.
Il peut comporter des membres, qui peuvent être des utilisateurs individuels ou des groupes.
Il est possible de hiérarchiser les groupes grâce aux relations des membres. Vous ne pouvez pas placer de groupes directement sous un autre groupe dans le référentiel.
Vous pouvez définir les droits d’accès pour tous les membres d’un groupe.
Droits d’accès CRX utilise les 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, 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 :
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. Ils proviennent de :
Entité de sécurité de l’utilisateur
Les droits que vous attribuez directement au compte utilisateur.
Toutes les entités de groupe associées à cet utilisateur
Tous les droits affecté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 :
Si Linda demande la mise à jour de la variable /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.
En prenant 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’a pas d’autorisation d’écriture sur grandChildNode
. + parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ ace: aUser - deny - write
+ grandChildNode
Dans ce cas :
aUser
n’a pas d’autorisation d’écriture sur grandChildNode
.
Le second ACE pour 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... |
Utilisation de groupes | Évitez d’affecter des droits d’accès utilisateur par utilisateur. Il existe plusieurs raisons à cela :
|
Soyez positif | Utilisez toujours les 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 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. |
Restez simple | Le fait d’investir du temps et de réfléchir lors de la configuration d’une nouvelle installation sera payant. 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
ID utilisateur Nom abrégé du compte, utilisé lors de l’accès à CRX.
Nom de l’entité de sécurité Nom entier 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 Cela affiche tous les groupes auxquels le compte appartient. 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é :
Avec la boîte de dialogue Administration des utilisateurs, ouvrez la liste de tous les comptes.
Parcourez l’arborescence.
Cliquez sur le compte nécessaire pour l’ouvrir afin de le modifier.
Apportez une modification, puis cliquez sur Enregistrer (symbole de coche verte) pour cette entrée.
Cliquez sur Fermer pour terminer ou sur Liste pour revenir à la liste de tous les comptes utilisateur.
Avec la boîte de dialogue Administration des utilisateurs, ouvrez la liste de tous les comptes.
Parcourez l’arborescence.
Sélectionnez le compte nécessaire et cliquez sur Supprimer un utilisateur. Le compte est supprimé immédiatement.
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
ID de groupe Nom abrégé du compte de groupe.
Nom de l’entité de sécurité 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é.
Membres Vous pouvez ajouter des utilisateurs, ou d’autres groupes, en tant que membres de ce groupe.
Appartenance à un groupe Cela affiche tous les groupes auxquels appartient le compte de groupe actuel. 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 correspondante.
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 suivant : mac-default-<foldername>
pour chaque dossier sur 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 :
Avec la boîte de dialogue Administration des groupes, ouvrez la liste de tous les comptes.
Parcourez l’arborescence.
Cliquez sur le compte nécessaire pour l’ouvrir afin de le modifier.
Apportez une modification, puis cliquez sur Enregistrer (symbole de coche verte) pour cette entrée.
Cliquez sur Fermer pour terminer ou sur Liste pour revenir à la liste de tous les comptes de groupe.
Avec la boîte de dialogue Administration des groupes, ouvrez la liste de tous les comptes.
Parcourez l’arborescence.
Sélectionnez le compte nécessaire et cliquez sur Supprimer un groupe. Le compte est supprimé immédiatement.
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 le Contrôle d’accès de 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 applicable 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 Ce sont les 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 de niveau de référentiel. Par exemple, lors de la définition de la variable
jcr:namespaceManagement
, qui n’est pertinent que pour le référentiel, et non pour un noeud.
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, 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 agrégé spécifique à jackrabbit de jcr:write et jcr:nodeTypeManagement. |
jcr:all |
Il s’agit d’un privilège agrégé qui contient tous les autres privilèges prédéfinis. |
Avancé | |
crx:replicate |
Effectuez la réplication d’un noeud. |
jcr:addChildNodes |
Créez les 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 ; actualiser 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 |
Enregistrez, annulez l’enregistrement et modifiez les définitions d’espace de noms. |
jcr:nodeTypeDefinitionManagement |
Importez des définitions de type de noeud dans le référentiel. |
jcr:nodeTypeManagement |
Ajoutez et supprimez des types de noeuds 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 |
Exécutez 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 agrégé qui contient : - jcr:modifyProperties - jcr:addChildNodes - jcr:removeNode - jcr:removeChildNodes |
rep:privilegeManagement |
Enregistrez le 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 le tableau Stratégies de contrôle d’accès locales, cliquez sur l’icône rouge (-) à droite de l’entrée.
L’entrée est supprimée dans les tableaux des 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 :