Archivos MemberRegistrationAttributes XML y DTD

El archivo de configuración MemberRegistrationAttributes.xml especifica atributos que se pueden asignar de manera automática usuarios y organizaciones durante el registro de usuarios y organizaciones y algunos escenarios de autenticación. Este archivo sigue el formato que el archivo MemberRegistrationAttributes.dtd define.

Ambos archivos DTD y XML están en el directorio workspace_dir/WC/xml/member. Es posible que este archivo se sobregrabe cuando se publica una tienda, sin embargo se guarda una copia de seguridad en el mismo directorio.

Este archivo está dividido en cuatro secciones o elementos:

UserRoles
Define los roles que recibirá automáticamente un usuario en una organización durante el registro.
OrganizationRoles
Define los roles que una organización recibirá automáticamente durante el registro.
BusinessEntities
Define qué organizaciones pueden definirse automáticamente como entidades comerciales cuando se crean. Una entidad comercial es una organización que puede tener cuentas de negocio.
RegistrationParents
Define dónde se han de crear los usuarios o las organizaciones nuevas para un tipo de registro determinado.

UserRoles

La sección UserRoles contiene nodos de Usuario. El algoritmo de asignación de roles se repite para toda la lista de nodos de Usuario, y devuelve el primero que coincide. Este proceso se basa en las siguientes reglas:

registrationType
El tipo de registro o proceso de autenticación. Los valores válidos en la sección UserRoles son:
UserRegistration
Un usuario se registra sin especificar registrationType en requestProperties del mandato, por ejemplo, UserRegistrationAddCmd
UserRegistrationToStoreGrandparentOrg
Un usuario se registra sin especificar registrationType=UserRegistrationToStoreGrandparentOrg en requestProperties del mandato, por ejemplo, UserRegistrationAddCmd. Esto permite al usuario obtener un rol en la organización predecesora de la tienda.
ResellerRegistration
Un usuario se registra como parte de ResellerRegistrationAddCmd
BuyerRegistrationAdd
Un usuario se registra como parte de BuyerRegistrationCmd
LDAPLogon
Un usuario se autentica utilizando el mandato Logon cuando HCL Commerce está configurado para autenticarse en un servidor LDAP.
SSO
Un usuario se autentica utilizando el inicio único de sesión
memberAncestor
El nombre distinguido (DN) de la entidad organizativa bajo la que se está creando el nuevo usuario. El valor DN de este archivo no distingue entre mayúsculas y minúsculas, pero en la base de datos, debe estar en minúsculas.
storeAncestor
La tienda en la que se registra el usuario debe ser propiedad de una organización descendiente de la organización predecesora especificada. La organización predecesora se especifica mediante el nombre distinguido.

Si se cumplen todos los criterios anteriores en el caso de ejemplo de registro actual, se asignarán automáticamente roles al usuario como se ha especificado en los subelementos de rol. Cada rol consta de los elementos siguientes:

name
El nombre del rol que se ha de asignar.
roleContext
Especifica a qué organización se puede asignar el rol del usuario. Puede tener los valores siguientes:
  • userParent - El rol se aplica a la organización padre inmediata del usuario.
  • storeOwner - El rol se asigna a la organización propietaria de la tienda en la que el usuario se está registrando.
  • storeGrandparentOrg - El rol se asigna a la organización padre de la organización propietaria de la tienda en la que el usuario se está registrando.
  • explicit - El rol se asigna a la organización especificada explícitamente mediante el atributo DN.
DN
Si roleContext = "explicit", el DN representa el nombre distinguido de la organización donde se le asigna un rol al usuario. Si roleContext = "userParent" o "storeOwner", la organización representada por roleContext debe ser igual a, o descendiente de, la organización que está representada por el DN.

Ejemplo de UserRoles:

<UserRoles>        
                  <User registrationType="UserRegistration" 
                                          memberAncestor="o=Default Organization,o=Root Organization"
                                          storeAncestor="o=Root Organization">           

                        <Role name="Registered Customer"roleContext="storeOwner" DN="o=Reseller Organization,o=Root Organization"/> 
                        <Role name="Registered Customer" roleContext="storeOwner" DN="o=Seller Organization,o=Root Organization"/>        

                   </User>        
 
                   <User registrationType="UserRegistrationToStoreGrandparentOrg"                             
                                          memberAncestor="o=default organization,o=root organization"   
                                          storeAncestor="o=root organization">           

                                   <Role name="Registered Customer" roleContext="storeGrandparentOrg"DN="o=root organization"/>        
                   </User>        
                   ...
</UserRoles>
    

En este ejemplo, HCL Commerce busca en la lista de nodos de Usuario hasta que encuentra uno que coincide. La coincidencia está determinada por las reglas siguientes:

  • El tipo de registro (por lo tanto, el sistema inicia un mandato UserRegistrationAdd estándar).
  • El predecesor del miembro (en este caso, la organización padre del usuario debe estar en uno de los niveles inferiores de la organización predeterminada).
  • El predecesor de la tienda (en este caso, el sistema coincide en cualquier tienda, porque el predecesor de tienda está definido como la organización raíz, que es un predecesor de cada tienda).

Una vez que HCL Commerce ha localizado un grupo de roles coincidente, intenta asignar los roles de ese grupo. En este caso, hay dos roles definidos en el grupo. Ambos son roles de cliente registrado que se deben aplicar en la organización propietaria de la tienda en la que el usuario se está registrando. Los roles están calificados por el predecesor de la tienda (lo que significa que HCL Commerce solo aplica el rol si la tienda está en algún lugar bajo el DN especificado).

OrganizationRoles

La sección OrganizationRoles es similar a la sección de roles de usuario, salvo que esta es donde se definen los roles para nuevas organizaciones. Una diferencia está relacionada con el atributo registrationType del elemento Organization. Se define del modo siguiente:

  • registrationType El tipo de registro al que se aplica esto. Los valores válidos dentro de la sección OrganizationRoles son los siguientes:
    • OrganizationRegistration - Una organización se registra sin especificar registrationType en requestProperties del mandato, por ejemplo, OrgEntityAddCmd
    • ResellerRegistration - Una organización se registra como parte de ResellerRegistrationAddCmd
    • BuyerRegistration - Una organización se registra como parte de BuyerRegistrationAddCmd

Otra diferencia es que el elemento Role solo requiere que se defina el atributo name.

Ejemplo de OrganizationRoles:

<OrganizationRoles>
<Organization registrationType="ResellerRegistration"
          memberAncestor="o=Supplier Organization,o=RootOrganization"
                storeAncestor="o=Root Organization">
        <Role name="Seller"/>
        <Role name="Category Manager"/>
        <Role name="Logistics Manager"/>
        <Role name="Marketing Manager"/>
        <Role name="Sales Manager"/>
        <Role name="Seller Administrator"/>
        <Role name="Registered Customer"/>
</Organization>
</OrganizationRoles>

Este ejemplo muestra que si se crea una organización que coincide con los criterios externos (registrationType, memberAncestor y storeAncestor), todos los roles que se listan se crearán para esa organización.

BusinessEntities

La sección BusinessEntities sigue la misma estructura que la sección OrganizationRoles, y se utiliza para listar las organizaciones que actúan como entidades comerciales en el sistema. Las entidades comerciales son entidades de organización que pueden tener cuentas de negocio.

Ejemplo de BusinessEntities:

<BusinessEntities>
        <Organization registrationType=""
                memberAncestor="o=Supplier Organization,o=RootOrganization"
                storeAncestor="o=Root Organization"/>
</BusinessEntities>

Cuando se crea una organización, el mandato de tarea SetBusinessEntityCmd marca la organización como una entidad de negocio si cumple con el criterio que se especifican en la sección BusinessEntities. El ejemplo especifica que cualquier organización creada bajo la organización de proveedor se debe marcar como una entidad de negocio.

Nota: La sección BusinessEntities no define roles.

RegistrationParents

La última sección es RegistrationParents. Aquí es donde HCL Commerce define la organización padre para los nuevos usuarios y organizaciones. Aunque muchos de los mandatos de HCL Commerce siguen permitiendo la asignación programada de padre, ciertos modelos de negocio requieren que se fije el padre. Si es así, HCL Commerce fija los padres en este archivo.

Ejemplo de RegistrationParents:

<RegistrationParents>
        <Organization registrationType="ResellerRegistration"
                memberAncestor="o=Supplier Organization,o=RootOrganization"
                storeAncestor="ou=Supplier HubOrganization,o=Supply Chain Management Organization,o=Root Organization"/>
</RegistrationParents>