Implementación del control de acceso

Los recursos sobre los que actúan los servicios web son de hecho nombres representados por los SDO generados. Esta lección contiene una visión general breve acerca de cómo funciona la política de control de acceso para los módulos de servicio BOD.

Por qué y cuándo se efectúa esta tarea

Para las solicitudes tipo Get, puede ejecutar la expresión de búsqueda XPath que devuelve datos para un perfil de acceso determinado utilizando una acción, un grupo de acciones o una política. Un perfil de acceso se define mediante una acción:

<Action Name="GetProject.MyCompany_Admin_Summary" CommandName="GetProject.MyCompany_Admin_Summary" />
<Action Name="GetProject.MyCompany_Store_Summary" CommandName="GetProject.MyCompany_Store_Summary" />
Un grupo de acciones contiene todos los perfiles de acceso que el grupo puede utilizar:

<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>
Finalmente, defina una política utilizando el grupo de acciones:

<!--  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" />
Para visualizar los nombres devueltos por la solicitud Get, se realiza una comprobación una vez que se han recibido los nombres del filtro de control de acceso.

<!--  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> 
Para las solicitudes Change, Sync y Process, puede realizar una acción en el nombre especificado utilizando una acción, un grupo de acciones o una política. Un perfil de acceso se define mediante una acción:

<!--  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 grupo de acciones contiene todos los perfiles de acceso que puede utilizar el grupo.

<!-- 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>
Finalmente, defina una política utilizando el grupo de acciones:

<!-- 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" />
Nota: Para obtener más información, consulte Control de acceso en la infraestructura de mandato BOD.

Procedimiento

  1. Revise los conceptos de políticas de control de acceso que se proporcionan en esta lección.
  2. Haga clic en el botón derecho del ratón en el Servidor de pruebas HCL Commerce y seleccione Publicar.
  3. Crear un rol "Gestor de recetas" mediante la Consola de administración de la organización.
  4. Añada el rol Gestor de recetas a las organizaciones siguientes:
    • Organización de sitios ampliados
    • Organización de tienda de activos (el padre es la organización de sitios ampliados)
  5. Cargue la política de control de acceso:
    1. Detenga el servidor de prueba de HCL Commerce.
    2. Vaya al directorio temporal en el que ha extraído el archivo RecipeServices.zip. Copie todos los archivos en la carpeta policies\xml en la carpeta WCDE_installdir\xml\policies\xml\.
    3. En un indicador de mandatos, vaya a WCDE_installdir\bin.
    4. Ejecute los mandatos siguientes:
      DB2
      acugload    Project-UserGroup.xml 
      acpload WCDE_installdir\xml\policies\xml\Project-access-control.xml 
  6. Importe la clase ProtectableProxy suministrada que contiene los métodos de autorización:
    1. En la vista Enterprise Explorer, expanda Project-Server > ejbModule. Haga clic en el botón derecho del ratón en el paquete com.mycompany.commerce.project.facade.server.authorization.
    2. Haga clic en Importar. Expanda General y seleccione Sistema de archivos. Haga clic en Siguiente.
    3. Vaya a la ubicación temporal en la que ha extraído el archivo RecipeServices.zip. Vaya a la carpeta com.mycompany.commerce.project.facade.server.authorization.
    4. Seleccione todos los archivos. Haga clic en Finalizar.
    5. Haga clic en Sí a todos para sobrescribir los archivos existentes.