Implémentation du contrôle d'accès
Les ressources sur lesquelles opèrent les services Web sont généralement des noms représentés par les objets SDO générés. Cette leçon contient une brève présentation du fonctionnement d'une stratégie de contrôle d'accès pour les modules de service BOD.
Pourquoi et quand exécuter cette tâche
<Action Name="GetProject.MyCompany_Admin_Summary" CommandName="GetProject.MyCompany_Admin_Summary" />
<Action Name="GetProject.MyCompany_Store_Summary" CommandName="GetProject.MyCompany_Store_Summary" />Un groupe d'actions contient tous les profils d'accès que le groupe peut utiliser :
<ActionGroup Name="Project-Project-AllUsers-AccessProfileActionGroup"
OwnerID="RootOrganization">
<ActionGroupAction Name="GetProject.MyCompany_Store_Summary" />
</ActionGroup>
<ActionGroup
Name="Project-Project-ProjectManagers-AccessProfileActionGroup"
OwnerID="RootOrganization">
<ActionGroupAction Name="GetProject.MyCompany_Admin_Summary" />
</ActionGroup>Enfin, définissez une stratégie à l'aide du groupe d'actions :
<!-- the all users access profile access control policy -->
<Policy Name="Project-Project-AllUsers-AccessProfilePolicy"
OwnerID="RootOrganization" UserGroup="AllUsers"
ActionGroupName="Project-Project-AllUsers-AccessProfileActionGroup"
ResourceGroupName="AccessProfileResourceGroup"
PolicyType="groupableStandard" />
<!-- the project manager access profile access policy -->
<Policy Name="Project-Project-ProjectManagers-AccessProfilePolicy"
OwnerID="RootOrganization" UserGroup="RecipeManagers"
ActionGroupName="Project-Project-ProjectManagers-AccessProfileActionGroup"
ResourceGroupName="AccessProfileResourceGroup"
PolicyType="groupableTemplate" />Pour afficher les noms renvoyés dans la requête Get, une vérification est effectuée après l'extraction des noms par le filtre de contrôle d'accès.
<!-- all user action group which contains read and change actions -->
<ActionGroup Name="Project-Project-AllUsers-ActionGroup" OwnerID="RootOrganization">
<ActionGroupAction Name="DisplayResourceAction"/>
<ActionGroupAction Name="ChangeResourceAction"/>
</ActionGroup> Pour les requêtes Change, Sync et Process, vous pouvez effectuer une action sur le nom spécifié en utilisant une action, un groupe d'actions et une stratégie. Un profil d'accès est défini par une action :
<!-- read action (Get request) -->
<Action Name="DisplayResourceAction" CommandName="Display"/>
<!-- change action (Change request) -->
<Action Name="ChangeResourceAction" CommandName="Change"/>
<!-- process actions (Process request) -->
<Action Name="AddResourceAction" CommandName="Add"/>
<Action Name="DeleteResourceAction" CommandName="Delete"/>
<Action Name="CreateResourceAction" CommandName="Create"/>Un groupe d'actions contient tous les profils d'accès que le groupe peut utiliser :
<!-- all project managers action group process action -->
<ActionGroup Name="Project-Project-ProjectManagers-ActionGroup" OwnerID="RootOrganization">
<ActionGroupAction Name="AddResourceAction"/>
<ActionGroupAction Name="DeleteResourceAction"/>
<ActionGroupAction Name="CreateResourceAction"/>
</ActionGroup>Enfin, définissez une stratégie à l'aide du groupe d'actions :
<!-- the project manager creator policy -->
<Policy Name="Project-Project-ProjectManagers-CreatorPolicy"
OwnerID="RootOrganization" UserGroup="RecipeManagers"
ActionGroupName="Project-Project-ProjectManagers-ActionGroup"
ResourceGroupName="Project-Project-ResourceGroup"
RelationName="creator" PolicyType="groupableTemplate" />
Remarque : Pour plus d'informations, voir Contrôle d'accès dans l'infrastructure de commandes BOD.
Procédure
- Examinez les concepts de stratégie de contrôle d'accès couverts dans cette leçon.
- Cliquez avec le bouton droit de la souris sur HCL Commerce Test Serveur et sélectionnez Publier.
- Créez le rôle "Gestionnaire de recette" via la console d'administration de l'organisation.
-
Ajoutez le rôle Gestionnaire de recette aux organisations suivantes :
- Organisation de sites étendus
- Organisation de magasin de ressources (le parent est Organisation de sites étendus)
-
Chargez la stratégie de contrôle d'accès :
-
Importez la classe ProtectableProxy fournie contenant les méthodes d'autorisation :
- Dans la vue Explorateur d'entreprise, développez . Cliquez avec le bouton droit de la souris sur le module com.mycompany.commerce.project.facade.server.authorization.
- Cliquez sur Importer. Développez Généralités et sélectionnez Système de fichiers. Cliquez sur Suivant.
- Accédez au répertoire temporaire dans lequel vous avez extrait le fichier RecipeServices.zip. Accédez au dossier com.mycompany.commerce.project.facade.server.authorization.
- Sélectionnez tous les fichiers. Cliquez sur Terminer.
- Cliquez sur Oui pour tout pour remplacer les fichiers existants.
