Definir políticas
About this task
Por ejemplo:
- Ha creado un nuevo rol. Por lo tanto, se necesitan nuevas políticas para otorgar a los usuarios este nuevo rol para ejecutar ciertos mandatos.
- Ha creado un nuevo mandato de controlador y desea asignar a los usuarios roles específicos para acceder a este mandato.
El archivo WCDE_installdir/xml/policies/xml/defaultAccessControlPolicies.xml define las políticas de control de acceso predeterminadas que se incluyen con el producto. Sigue el DTD que se especifica por: WCDE_installdir/xml/policies/dtd/accesscontrolpolicies.dtd.
A continuación se muestra la plantilla de un elemento de política:
<Policy Name="value"
OwnerId="value"
UserGroup="value"
UserGroupOwner="value"
ActionGroupName="value"
ResourceGroupName="value"
PolicyType="value"
RelationName="value"
RelationGroupName="value"
RelationGroupOwner="value"
</Policy>
Donde:
- Nombre:
- El nombre de la política. Se carga en la columna
POLICYNAMEde la tablaACPOLICY. ElNameyOwnerIDjuntos deben ser exclusivos. - OwnerID
- ID de miembro de la entidad de organización propietaria de la política. Se cargará en la columna
member_idde la tablaACPOLICY.OwnerIDyNamejuntos deben ser exclusivos. Hay dos valores especiales que son reconocidos por la herramienta de transformación, que sonRootOrganization: -2001yDefaultOrganization: -2000 - UserGroup
- Nombre del grupo de acceso especificado en la columna
MBRGRPNAMEde la tablaMBRGRP. Se carga en la columnambrgrp_idde la tablaACPOLICY. Los grupos de acceso predeterminados se definen en el archivo WCDE_installdir/xml/policies/xml/ACUserGroups_language.xml. - UserGroupOwner
- ID del miembro que es propietario del grupo de acceso. Es necesario cuando el propietario del grupo de acceso es un miembro que no es el propietario de la política. Si no se especifica, se presupone que el grupo de acceso es propiedad del miembro que se especifica mediante el atributo
OwnerID. - ActionGroupName
- Nombre del grupo de acciones especificado en la columna
GROUPNAMEde la tablaACACTGRP. Se utiliza para obtener el ID de grupo de acciones (ACACTGRP_ID) correspondiente que se almacenará en la tablaACPOLICY. Las políticas basadas en roles para mandatos de controlador han establecidoActionGroupNameenExecuteCommandActionGroup. Las políticas para beans de datos han establecidoActionGroupNameenDisplayDatabeanActionGroup. - ResourceGroupName
- Nombre del grupo de recursos, especificado en la columna
GRPNAMEde la tablaACRESGRP. Se utiliza para obtener el ID de grupo de recursos (ACRESGRP_ID) correspondiente que se almacena en la tablaACPOLICY. Las políticas basadas en roles para las vistas han establecidoResoureGroupNameenViewCommandResourceGroup. - PolicyType
- Tipo de política. Los valores válidos son groupableStandard y groupableTemplate. Por motivos de compatibilidad con versiones anteriores, también se admiten los valores standard y template. Si no se especifica este atributo cuando se carga una política nueva, se utilizará el valor nulo. Si no se especifica este atributo cuando se actualice una política existente, el valor no se modificará. La tabla siguiente muestra la correlación de valores de tipo serie con valores de base de datos almacenados en la columna
POLICYTYPEde la tablaACPOLICY.Correlación de valores de serie con valores de base de datos Serie ACPOLICY.POLICYTYPE Usage groupableTemplate 3 Se utiliza cuando UserGroup de la política contiene un elemento dinámico que debe evaluarse en tiempo de ejecución. Por ejemplo, en la definición de UserGroup siguiente, contiene el cualificador de OrgAndAncestorOrgs:
Cuando esta política se evalúa durante la ejecución, la infraestructura de control de acceso comprobará si el usuario tiene el rol en la organización que tiene el recurso o cualquiera de sus organizaciones predecesoras.<simpleCondition> <variable name="role"/> <operator name="="/> <value data="Marketing Manager"/> <qualifier name="org" data="OrgAndAncestorOrgs"/> </simpleCondition>groupableStandard 2 Se utiliza cuando UserGroup de la política no contiene elementos dinámicos que deben evaluarse durante la ejecución. Por ejemplo, en las definiciones de UserGroup siguientes, no hay cualificador. Evalúa simplemente true si el usuario tiene el rol de Director de marketing en cualquier organización:
El UserGroup<simpleCondition> <variable name="role"/> <operator name="="/> <value data="Marketing Manager"/> </simpleCondition>AllUserses un ejemplo de un grupo de miembros que no tiene ninguna condición dinámica. Se evalúa simplemente en true:<profile> <trueCondition> </trueCondition> </profile>plantilla 1 en desuso estándar 0 o nulo en desuso - RelationName (opcional)
- El nombre de la relación, como se especifica en la columna
RELATIONNAMEde la tablaACRELATION. Si se especifica, se utiliza para obtener el ID de relación (ACRELATION_ID) correspondiente que se almacena en la tablaACPOLICY. - RelationGroupName (opcional)
- El nombre del grupo de relaciones, como se especifica en la columna
GRPNAMEde la tablaACRELGRP. Si se especifica este atributo, no debe especificarseRelationNameya que el Grupo de relaciones tiene prioridad. - RelationGroupOwner
- ID de miembro propietario del grupo de relaciones. Este atributo es necesario solo si se especifica el atributo
RelationGroupNamey si el valor del atributoOwnerIDno es RootOrganization; en ese caso,RelationGroupOwnerdebe especificarse como RootOrganization (-2001).
Ejemplos de políticas
Políticas basadas en roles
Para mandatos de controlador
En este ejemplo, los usuarios que pertenecen al grupo de acceso AllUsers pueden ejecutar los mandatos de controlador que forman parte del grupo de recursos AllUserCmdResourceGroup.
<Policy Name="AllUsersExceuteAllUserCmdResourceGroup"
OwnerID="RootOrganization"
UserGroup="AllUsers"
ActionGroupName="ExecuteCommandActionGroup"
ResourceGroupName="AllUserCmdResourceGroup"
PolicyType="groupableStandard">
</Policy>
Para vistas
En este ejemplo, los usuarios que pertenecen al grupo de acceso MarketingManagers pueden ejecutar las vistas que pertenecen al grupo de acciones MarketingManagersViews.
<Policy Name="MarketingManagersExecuteMarketingManagersViews"
OwnerID="RootOrganization"
UserGroup="MarketingManagers"
ActionGroupName="MarketingManagersViews"
ResourceGroupName="ViewCommandResourceGroup"
PolicyType="groupableStandard">
</Policy>
Políticas a nivel de recursos
Para mandatos
En este ejemplo, los usuarios que pertenecen al grupo de acceso AllUsers pueden realizar las acciones especificadas por el grupo de acciones CouponRedemption en los recursos especificados por el grupo de recursos CouponWalletResourceGroup, siempre y cuando los usuarios satisfagan la relación creator con respecto al recurso.
<Policy
Name="AllUsersExecuteCouponRedemptionCommandsOnCouponWalletResource"
OwnerID="RootOrganization"
UserGroup="AllUsers"
ActionGroupName="CouponRedemption"
ResourceGroupName="CouponWalletResourceGroup"
RelationName="creator"
PolicyType="groupableStandard">
</Policy>
Para beans de datos
En este ejemplo, los usuarios que pertenecen al grupo de acceso AllUsers pueden visualizar los beans de datos especificados por el grupo de recursos UserDatabeanResourceGroup, siempre y cuando los usuarios satisfagan la relación owner con respecto al recurso.
<Policy Name="AllUsersDisplayUserDatabeanResourceGroup"
OwnerID="RootOrganization"
UserGroup="AllUsers"
ActionGroupName="DisplayDatabeanActionGroup"
ResourceGroupName="UserDatabeanResourceGroup"
RelationName="owner"
PolicyType="groupableStandard">
</Policy>
Políticas de plantilla agrupables
En este ejemplo, los usuarios que pertenecen al grupo de acceso OrgAdminConsoleMembershipAdministratorsForOrg pueden realizar las acciones especificadas por el grupo de acciones ApproveGroupUpdate en los recursos especificados por OrganizationDataResourceGroup.
<Policy
Name="OrgAdminConsoleMembershipAdministratorsForOrgExecuteApprove
GroupUpdateCommandsOnOrganizationResource"
OwnerID="RootOrganization"
UserGroup="OrgAdminConsoleMembershipAdministratorsForOrg"
ActionGroupName="ApproveGroupUpdate"
ResourceGroupName="OrganizationDataResourceGroup"
PolicyType="groupableTemplate">
</Policy>
El análisis de la definición del grupo de acceso OrgAdminConsoleMembershipAdministratorsForOrg revelará la siguiente condición para la pertenencia al grupo:
<UserCondition>
<profile>
<orListCondition>
<simpleCondition>
<variablename="role"/>
<operatorname="="/>
<valuedata="Buyer Administrator"/>
<qualifiername="org" data="OrgAndAncestorOrgs"/>
</simpleCondition>
<simpleCondition>
<variablename="role"/>
<operatorname="="/>
<valuedata="Seller Administrator"/>
<qualifiername="org" data="OrgAndAncestorOrgs"/>
</simpleCondition>
<simpleCondition>
<variablename="role"/>
<operatorname="="/>
<valuedata="Channel Manager"/>
<qualifiername="org" data="OrgAndAncestorOrgs"/>
</simpleCondition>
</orListCondition>
</profile>
UserCondition>
simpleCondition de role se califica por org = OrgAndAncestorOrgs. OrgAndAncestorOrgs es una palabra clave que solo está disponible en políticas de plantilla agrupables. Amplía dinámicamente el ámbito del rol al contexto del propietario del recurso actual. En este ejemplo, el usuario debe tener uno de los roles especificados en la organización propietaria del recurso o en cualquiera de los predecesores de la organización.Definición de grupos de políticas
Los grupos de políticas se crean en políticas de grupo, basándose en los requisitos de la empresa y de control de acceso. También se crean algunos grupos de políticas predeterminados. Otros grupos de políticas se crean a medida que se necesitan mientras se publica una tienda o un modelo de negocio. En la mayor parte de los casos simplemente puede añadir políticas nuevas que cree a los grupos de políticas existente. Si tiene que crear un nuevo grupo de políticas, debería definirlo en un archivo XML, similar a defaultAccessControlPolicies.xml, y luego cargarlo en la base de datos. A continuación se proporciona una definición de ejemplo:
<PolicyGroup Name="aValue" OwnerID="aValue">
</PolicyGroup>
Donde:
- Nombre:
- Nombre del grupo de políticas.
- OwnerID
- ID de miembro de la entidad de organización propietaria del grupo de políticas. Se cargará en la columna
member_idde la tablaACPOLGRP.OwnerIDyNamejuntos deben ser exclusivos. Hay dos valores especiales que son reconocidos por la herramienta de transformación, que sonRootOrganization: -2001yDefaultOrganization: -2000.
Asociar políticas a grupos de políticas
Las políticas pueden pertenecer a varios grupos de políticas. No obstante, para facilitar la administración de políticas se recomienda que una política sólo pertenezca a un grupo de políticas. Esta asociación debe definirse en un archivo XML, similar a defaultAccessControlPolicies.xml, y luego cargarse en la base de datos. A continuación se proporciona una definición de ejemplo:
<PolicyGroup Name="aValue" OwnerID="aValue">
<PolicyGroupPolicy Name="aValue"
PolicyOwnerID="aValue" />
</PolicyGroup>
Donde:
- PolicyGroupPolicy Name
- Nombre de la política, definida anteriormente, que se debe asociar con el grupo de políticas especificado. Esta política debe ser de uno de los tipos de políticas siguientes: groupableStandard o groupableTemplate.
- PolicyGroupPolicy PolicyOwnerID (opcional)
- ID de miembro de la entidad de organización propietaria de la política especificada. Si no se especifica este parámetro, el valor predeterminado es el
OwnerIDdel grupo de políticas. Hay dos valores especiales que son reconocidos por la herramienta de transformación, que sonRootOrganization: -2001yDefaultOrganization: -2000.
Suscripción a grupos de políticas
Los recursos de una organización se protegen mediante las políticas de los grupos de políticas a los que se ha suscrito la organización. Si dicha organización no se suscribe a ningún grupo de políticas, entonces se aplicarán los grupos de políticas a los que se suscribe el antecesor más próximo a dicha organización.
La suscripción a grupos de políticas se puede realizar en la Consola de administración de organizaciones pero también se puede definir en un archivo XML, similar a defaultAccessControlPolicies.xml, y luego cargar en la base de datos. A continuación se proporciona una definición de ejemplo:
<PolicyGroup Name="aValue" OwnerID="aValue">
<PolicyGroupSubscription
OrganizationID="aValue"/>
</PolicyGroup>
Donde:
- OrganizationID
- ID de miembro de la entidad de organización que se está suscribiendo a este grupo de políticas. Hay dos valores especiales que son reconocidos por la herramienta de transformación, que son
RootOrganization: -2001yDefaultOrganization: -2000.
Datos de política que se pueden traducir
A continuación se muestra una plantilla de un archivo de política personalizado que se puede utilizar para definir datos de política que se pueden traducir:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>
<!--The following TRANSLATABLE access control elements should be defined in this file:
<Attribute_nls>
<Action_nls>
<Relation_nls>
<ResourceCategory_nls>
<ActionGroup_nls>
<ResourceGroup_nls>
<Policy_nls>
<PolicyGroup_nls>-->
<!DOCTYPE PoliciesNLS SYSTEM
"../dtd/accesscontrolpoliciesnls.dtd">
<PoliciesNLS LanguageID="value">
<!--Insert access control element definitions here -->
</PoliciesNLS>
El atributo LanguageID es una serie que corresponde al idioma de los datos específicos del entorno local. Los valores válidos del LanguageID son:
-
de_DE -
en_US -
es_ES -
fr_FR -
it_IT -
ja_JP -
ko_KR -
pt_BR -
zh_CN -
zh_TW
Datos de política no traducibles
A continuación se muestra una plantilla de un archivo de política personalizado que contiene datos que no se pueden traducir:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"
?>
<!DOCTYPE Policies SYSTEM "../dtd/accesscontrolpolicies.dtd">
<!--The following NON-TRANSLATABLE access control
elements
should be defined in this file:
<Attribute>
<Action>
<ResourceCategory>
<Relation>
<RelationGroup>
<ActionGroup>
<ResourceGroup>
<Policy>
<PolicyGroup>-->
<Policies>
<!--Insert access control element definitions here-->
</Policies>
Datos específicos de entorno local
Los siguientes datos específicos del entorno local son opcionales y se pueden cargar para proporcionar una descripción adicional a los elementos de control de acceso definidos en el archivo XML no traducible. Los datos específicos del entorno local predeterminados se pueden encontrar en la dirección siguiente:
WCDE_installdir\xml\policies\xml\defaultAccessControlPolicies_locale.xml
Por ejemplo, defaultAccessControlPolicies_en_US.xml.
Atributo
El ejemplo siguiente define información adicional de elementos de atributo:
<Atrribute_nls AttributeName="Status"
DisplayName_nls="Status attribute"
Description_nls="Resource status attribute"
/>
Donde:
-
AttributeName - El nombre del atributo. Este valor se almacena en la columna
ATTRNAMEde la tablaACATTR. -
DisplayName_nls - Nombre de visualización del atributo. Este valor se almacena en la columna
DISPLAYNAMEde la tablaACATTRDESC. -
Description_nls - Descripción opcional del atributo. Este valor se almacena en la columna DESCRIPTION de la tabla
ACATTRDESC.
Acción
El ejemplo siguiente define información adicional de elementos de acción:
<Action_nls ActionName="OrderAdjustmentButton"
DisplayName_nls="Order Adjustment Button View"
Description_nls="The view for loading buttons in the order adjustment page when placing an order from Commerce Acclerator"
/>
Donde:
-
ActionName - Nombre de la acción. Este valor se almacena en la columna ACTION de la tabla
ACACTION. -
DisplayName_nls - Nombre de visualización de la acción. Este valor se almacena en la columna
DISPLAYNAMEde la tablaACACTDESC. -
Description_nls - Descripción opcional de la acción. Este valor se almacena en la columna DESCRIPTION de la tabla
ACACTDESC.
Relación
El siguiente ejemplo define información de elementos de relación adicional:
<Relation_nls RelationName="creator"
DisplayName_nls="creator"
Description_nls="creator"
/>
Donde:
-
RelationName - El nombre de la relación. Este valor se almacena en la columna
RELATIONNAMEde la tablaACRELATION. -
DisplayName_nls - Nombre de visualización de la relación. Este valor se almacena en la columna
DISPLAYNAMEde la tablaACRELDESC. -
Description_nls - Descripción opcional de la relación. Este valor se almacena en la columna DESCRIPTION de la tabla
ACRELDESC.
Categoría de recursos
El siguiente ejemplo define información de categoría de recursos adicional:
<ResourceCategory_nls ResourceCategoryName="com.ibm.commerce.
catalog.objects."InterestItemList"
DisplayName_nls="Interest Item List"
Description_nls="Interest Item List command"
/>
Donde:
-
ResourceCategoryName - Nombre de la categoría de recursos. Este valor se almacena en la columna
RESCLASSNAMEde la tablaACRESCGRY. -
DisplayName_nls - Nombre de visualización de la categoría de recursos. Este valor se almacena en la columna
DISPLAYNAMEde la tablaACRSCGDES. -
Description_nls - Descripción opcional de la categoría de recursos. Este valor se almacena en la columna DESCRIPTION de la tabla
ACRSCGDES.
Grupo de acciones
El siguiente ejemplo define información de grupo de acciones adicional:
<ActionGroup_nls ActionGroupName="DoEverything"
DisplayName_nls="Do Everything"
Description_nls="Permits access to all Actions"
/>
Donde:
-
ActionGroupName - Nombre del grupo de acciones. Este valor se almacena en la columna
GROUPNAMEde la tablaACACTGRP. -
DisplayName_nls - Nombre de visualización del grupo de acciones. Este valor se almacena en la columna
DISPLAYNAMEde la tablaACACGPDESC. -
Description_nls - Descripción opcional del grupo de acciones. Este valor se almacena en la columna DESCRIPTION de la tabla
ACACGPDESC.
Grupo de recursos
El siguiente ejemplo define información de grupo de recursos adicional:
<ResourceGroup_nls ResourceGroupName="AllResourceGroup"
DisplayName_nls="All Resources Group"
Description_nls="All Resources"
/>
Donde:
-
ResourceGroupName - Nombre del grupo de recursos. Este valor se almacena en la columna
GRPNAMEde la tablaACRESGRP. -
DisplayName_nls - Nombre de visualización del grupo de recursos. Este valor se almacena en la columna
DISPLAYNAMEde la tablaACRESGPDES. -
Description_nls - Descripción opcional del grupo de recursos. Este valor se almacena en la columna DESCRIPTION de la tabla
ACRESGPDES.
Política
El ejemplo siguiente define información de política adicional:
<Policy_nls PolicyName="SiteAdministratorsCanDoEverything"
OwnerID="RootOrganization"
DisplayName_nls="Site Administrators Can Do Everything"
Description_nls="Policy that allows Site Administrators to do everything"
/>
Donde:
-
PolicyName - Nombre de la política de control de acceso. Este valor se almacena en la columna
POLICYNAMEde la tablaACPOLICY. -
OwnerID - ID de miembro de la entidad de organización propietaria de esta política.
-
DisplayName_nls - Nombre de visualización de la política. Este valor se almacena en la columna
DISPLAYNAMEde la tablaACPOLDESC. -
Description_nls - Descripción opcional de la política. Este valor se almacena en la columna DESCRIPTION de la tabla
ACPOLDESC.
Grupo de políticas
El siguiente ejemplo define información adicional sobre el grupo de políticas:
<PolicyGroup_nls PolicyGroupName="B2CPolicyGroup"
OwnerID="RootOrganization"
DisplayName_nls="B2C Policy Group"
Description_nls="This policy group contains all the B2C specific policies."
/>
- PolicyGroupName
- Nombre del grupo de políticas de control de acceso al que se está añadiendo información adicional. Este valor se encuentra en la columna NAME de la tabla ACPOLGRP.
- OwnerID
- ID de miembro de la entidad de organización propietaria de este grupo de políticas.
- DisplayName_nls
- Nombre de visualización del grupo de políticas. Este valor se almacena en la columna DISPLAYNAME de la tabla ACPLGPDESC.
- Description_nls
- Descripción opcional del grupo de políticas. Este valor se almacena en la columna DESCRIPTION de la tabla ACPLGPDESC.