Définition de groupes de relations
Si plusieurs relations sont requises pour octroyer à un utilisateur l'accès à certaines ressources, vous pouvez utiliser la fonction de construction de RelationGroup. Toutefois, une relation répond généralement à la plupart des conditions de ce scénario. Les groupes de relations contiennent des conditions ouvertes qui sont les conditions d'appartenance au groupe de relations. Si vous avez besoin de définir des groupes de relations, vous devez pour cela définir les informations relatives au groupe de relations dans votre fichier XML, ou modifier le fichier defaultAccessControlPolicies.xml.
<RelationGroup Name="aValue" OwnerID="Root Organization">
<RelationCondition>
<profile>
Relationship Chain Open Condition XML
</profile>;
</RelationCondition>;
</RelationGroup>;Chaînes de relations
Chaque groupe de relations est composé d'une ou plusieurs conditions ouvertes RELATIONSHIP_CHAIN, regroupées par les éléments andListCondition ou orListCondition. Une chaîne de relations est une série d'une ou plusieurs relations. La longueur d'une chaîne de relations est déterminée par le nombre de relations qui la compose. Pour déterminer la longueur de la chaîne de relation, comptez le nombre d'entrées <parmeter name= "X" value="Y"> dans la représentation XML de la chaîne de relation. Vous trouverez ci-dessous un exemple de chaîne de relations d'une longueur égale à 1.
<openCondition name="RELATIONSHIP_CHAIN">
<parameter name="RELATIONSHIP" value="aValue"/>
</openCondition>;- aValue
- Chaîne représentant la relation entre l'utilisateur et la ressource. Cette chaîne doit être l'une des relations vérifiées dans la méthode
fulfillsde la ressource.Lorsqu'une chaîne de relations possède une longueur égale à 2 ou plus, il s'agit d'une série de deux relations. La première entrée<parmeter name= "X" value="Y">indique une relation entre un utilisateur et une entité organisationnelle. La dernière entrée<parmeter name= "X" value="Y">indique une relation entre cette entité organisationnelle et la ressource. Les entrées intermédiaires<parmeter name= "X" value="Y">figurant dans la chaîne représentent des relations entre des organisations. Vous trouverez ci-dessous un exemple de chaîne de relations d'une longueur égale à 2.<openCondition name=RELATIONSHIP_CHAIN"> <parameter name="aValue1" value="aValue2"/> <parameter name="RELATIONSHIP" value="aValue3"/> </openCondition>;
- aValue1
- Les valeurs possibles sont
HIERARCHYetROLE.HIERARCHYindique qu'il existe une relation hiérarchique entre l'utilisateur et l'entité organisationnelle dans la hiérarchie des membres.ROLEindique que l'utilisateur joue un rôle dans l'entité organisationnelle. Si la valeur deaValue1est HIERARCHY, les valeurs possibles deaValue2incluentchild. La valeur enfant renvoie à l'entité organisationnelle dont l'utilisateur est un enfant direct dans la hiérarchie des membres. Si la valeur deaValue1estaValue2, les valeurs possibles incluent toutes les entrées valides dans la colonne NAME de la table ROLE, qui renvoient à toutes les entités organisationnelles pour lesquelles l'utilisateur actuel joue ce rôle. - aValue3
- Chaîne représentant la relation entre une ou plusieurs entités organisationnelles extraites à partir de l'évaluation du premier paramètre et de la ressource. Cette valeur correspond au paramètre de relation de la méthode
fulfills()sur la ressource protégeable. Si plusieurs entités organisationnelles ont été renvoyées par le paramètre d'évaluationaValue1, cette partie de la chaîneRELATIONSHIP_CHAINest satisfaite si au moins l'une de ces entités organisationnelles exécute la relation indiquée par le paramètreaValue2.
Pour plus d'informations sur la définition de relations, reportez-vous à la rubrique Définition de relations.
Définition de groupes de relations à chaîne unique
two. <RelationGroup Name="MemberOf->;BuyerOrganizationEntity" OwnerID="RootOrganization">
<RelationCondition>
<profile>
<openCondition name="RELATIONSHIP_CHAIN">
<parameter name="HIERARCHY" value="child"/>
<parameter name="RELATIONSHIP" value="BuyingOrganizationalEntity"/>
</openCondition>
</profile>
<RelationCondition>
<RelationGroup>La chaîne de relations possède une longueur égale à two, car elle est composée de deux relations distinctes. La première relation est établie entre l'utilisateur et son entité organisationnelle parente. L'utilisateur est l'child dans cette relation. Pour la deuxième relation, le gestionnaire des stratégies de contrôle d'accès vérifie si l'entité organisationnelle parente satisfait la relation BuyingOrganizationalEntity avec la ressource. En d'autres termes, elle renvoie la valeur true s'il s'agit de l'entité organisationnelle acheteuse de la ressource.
Un autre exemple est une stratégie de contrôle d'accès attribuant à l'utilisateur le rôle de représentant de compte pour l'entité organisationnelle acheteuse de la ressource. Là encore, un groupe de relations composé d'une chaîne de relations d'une longueur égale à 2 est utilisé. La première partie de la chaîne trouve toutes les entités organisationnelles pour lesquelles l'utilisateur joue le rôle de représentant de compte. Puis, pour l'ensemble d'entités organisationnelles, le gestionnaire des stratégies de contrôle d'accès vérifie si au moins l'une d'entre elles satisfait la relation BuyingOrganizationalEntity avec la ressource. Si tel est le cas, une valeur true est renvoyée.
<RelationGroup Name="AccountRep->BuyerOrganizationalEntity" OwnerID="RootOrganization">
<RelationCondition>
<profile>
<openCondition name="RELATIONSHIP_CHAIN">
<parameter name="ROLE" value="Account Representative"/>
<parameter name="RELATIONSHIP" value="BuyingOrganizationalEntity"/>
</openCondition>
</profile>
<RelationCondition>
<RelationGroup>Définition de groupes de relations à chaîne multiple
Pour constituer un groupe de relations contenant une relation à chaîne multiple, indiquez si l'utilisateur doit satisfaire toutes les chaînes de relations ou au moins l'une d'entre elles.
BuyingOrganizationalEntity indiquée dans la ressource. La première chaîne, qui indique que l'utilisateur doit être le créateur de la ressource, possède une longueur égale à 1. La deuxième, qui indique que l'utilisateur doit appartenir à l'entité BuyingOrganizationalEntity spécifiée dans la ressource, possède une longueur égale à 2.<RelationshipGroup Name="Creator_And_MemberOf->BuyerOrganizationalEntity" OwnerID="RootOrganization">
<RelationCondition>
<profile>
<andListCondition>
<openCondition name="RELATIONSHIP_CHAIN">
<parameter name="RELATIONSHIP" value="creator" />
</openCondition>
<openCondition name="RELATIONSHIP_CHAIN">
<parameter name="HIERARCHY" value="child"/>
<parameter name="RELATIONSHIP" value="BuyingOrganizationalEntity"/>
</openCondition>
</andListCondition>
</profile>
</RelationCondition>
</RelationGroup>Si l'utilisateur doit satisfaire l'une des deux chaînes de relations, la balise <andListConditon> doit être remplacée par <orListConditon>.