Control de acceso de control de versiones de contenido

Los servicios de versiones de contenido funcionan en todos los nombres que están habilitados para las versiones. Las políticas de acceso están habilitadas para limitar el acceso de los usuarios a servicios de versiones para un nombre o grupo de nombres en particular. El nombre de la versión de contenido crea la versión de otro nombre. Por ejemplo, la política de control de acceso para una versión garantiza que el Gestor de catálogo sea el único que pueda gestionar versiones del tipo de objeto Catálogo. El Gestor de catálogo tiene autorización para crear, eliminar, restaurar, cambiar y visualizar versiones de objetos de Catálogo, pero no tiene autorización para realizar las mismas acciones en objetos de Marketing.

Para los servicios de creación de versiones de contenido, debemos responder a la siguiente pregunta: ¿Puede el usuario actual realizar las acciones de control de versiones de contenido en los tipos de objeto especificados?

Responderemos a esta pregunta con una acción, un grupo de acciones, un grupo de recursos y una política. Los pasos siguientes muestran cómo crear un control de acceso que permita a los usuarios del grupo de usuarios CatalogManagersForOrg acceder a servicios de creación de versiones de contenido para el nombre Catalog, CatalogGroup y CatalogEntry.
  1. Cree la acción. Un perfil de acceso se define mediante una acción:
    
    <Action Name="DisplayResourceAction" CommandName="Display"/>
    <Action Name="CreateResourceAction" CommandName="Create"/>
    <Action Name="DeleteResourceAction" CommandName="Delete"/>
    <Action Name="RestoreResourceAction" CommandName="Restore"/>
    <Action Name="ChangeResourceAction" CommandName="Change"/>
    Las acciones precedentes están predefinidas para los servicios de creación, supresión, restauración, modificación y visualización de versiones de contenido en el siguiente archivo: WCDE_installdir\components\foundation\xml\policies\xml\ContentAccessControlPolicies.xml.
  2. Cree un grupo de acciones que contenga todos los perfiles de acceso que el grupo puede utilizar. El fragmento de código siguiente para el grupo de acciones Catalog-ContentVersion-CatalogManagers-ActionGroup proporciona acceso a los servicios de creación de versiones de contenido para creación, supresión, restauración, modificación y visualización:
    
    <ActionGroup Name="Catalog-ContentVersion-CatalogManagers-ActionGroup" OwnerID="RootOrganization">
    	<ActionGroupAction Name="DisplayResourceAction"/>
    	<ActionGroupAction Name="CreateResourceAction"/>
    	<ActionGroupAction Name="DeleteResourceAction"/>
    	<ActionGroupAction Name="RestoreResourceAction"/>
    	<ActionGroupAction Name="ChangeResourceAction"/>
    </ActionGroup>
    
  3. Cree un grupo de recursos que filtre la versión de contenido en un subconjunto al que el usuario de empresa tenga acceso. Una definición de grupo de recursos proporciona la flexibilidad necesaria para proteger los recursos de un estado determinado. Si desea crear una política en la que los usuarios puedan acceder a los servicios de creación de versiones de contenido de un tipo objeto en particular, debe definir un grupo de recursos. Por ejemplo, los Gestores de catálogo pueden crear objetos de versión para los tipos de objeto Catalog, CatalogGroup y CatalogEntry; para hacerlo, debe definir un grupo de recursos que contenga una condición de recurso que filtre en base a objectType en ContentVersion Noun. El fragmento de código siguiente del grupo de recursos Catalog-ContentVersion-ResourceGroup limita las acciones especificadas para el nombre Catalog, CatalogGroup y CatalogEntry como se muestra a continuación:
    
    <ResourceGroup Name="Catalog-ContentVersion-ResourceGroup"  OwnerID="RootOrganization">
      <ResourceCondition>
        <![CDATA[
          <profile>
            <andListCondition>
              <orListCondition>
                <simpleCondition>
                  <variable name="ObjectType"/>
                    <operator name="="/>
                  <value data="Catalog"/>
                </simpleCondition>
                <simpleCondition>
                  <variable name="ObjectType"/>
                    <operator name="="/>
                  <value data="CatalogGroup"/>
                </simpleCondition>
                <simpleCondition>
                  <variable name="ObjectType"/>
                    <operator name="="/>
                  <value data="CatalogEntry"/>
                </simpleCondition>
              </orListCondition>					
              <simpleCondition>
                <variable name="classname"/>
                  <operator name="="/>
                <value data="com.ibm.commerce.content.facade.server.authorization.ContentVersionTypeProtectableProxy"/>
              </simpleCondition>					
            </andListCondition>
          </profile>
        ]]>
      </ResourceCondition>
    </ResourceGroup>
    Un componente esencial de la definición de grupo de recursos es el elemento <simpleCondition> que tiene name="classname". Este elemento identifica la clase Java del recurso al que se aplica el grupo. La clase Java, com.ibm.commerce.content.facade.server.authorization.ContentVersionTypeProtectableProxy, se puede ver en el siguiente ejemplo:
    
    <simpleCondition>
      <variable name="classname"/>
        <operator name="="/>
      <value data="com.ibm.commerce.content.facade.server.authorization.ContentVersionTypeProtectableProxy"/>
    </simpleCondition>
    El siguiente ejemplo especifica la condición en el recurso com.ibm.commerce.content.facade.server.authorization.ContentVersionTypeProtectableProxy que ObjectType equivale a Catalog.
    
    <simpleCondition>
      <variable name="ObjectType"/>
        <operator name="="/>
      <value data="Catalog"/>
    </simpleCondition>

    Cuando se recibe una solicitud de versión de contenido, el control de acceso verifica si el usuario tiene acceso al servicio de versión de contenido en cuestión (por ejemplo, crear, restaurar, eliminar). Si el usuario tiene acceso al servicio de versión de contenido en particular, el nombre de versión de contenido especificado en la solicitud se busca en la base de datos y se compara con los valores de ObjectType indicados en el grupo de recursos (Catalog, CatalogGroup, CatalogEntry).

  4. Por último, una política utiliza el grupo de acciones.
    La política de ejemplo siguiente permite a los usuarios del grupo de usuarios CatalogManagersForOrg acceder a servicios de creación de versiones de contenido para el nombre Catalog, CatalogGroup y CatalogEntry.
    
    <Policy Name="Catalog-ContentVersion-CatalogManagers-Policy"
      OwnerID="RootOrganization"
      UserGroup="CatalogManagersForOrg"
      ActionGroupName="Catalog-ContentVersion-CatalogManagers-ActionGroup"
      ResourceGroupName="Catalog-ContentVersion-ResourceGroup"
      PolicyType="groupableTemplate" />
    Donde:
    Nombre:
    El nombre de la política.
    OwnerID
    Organización a la que se aplica la política.
    UserGroup
    Grupo de acceso.
    ActionGroupName
    Grupo de acciones.
    ResourceGroupName
    Grupo de recursos.
    PolicyType
    Tipo de política, por ejemplo estándar agrupable o de plantilla agrupable.