Create New DSA
Penrose's sample mapping uses dc=Example,dc=com suffix. See PENROSE_SERVER_HOME\conf\mapping.xml. Create a new DSA with this suffix. In DXHOME\bin execute:
dxnewdsa example example 19589 dc com dc Example
Configure Schema
Penrose's sample mapping uses a custom schema. See PENROSE_SERVER_HOME\samples\schema\example.schema. Create DXHOME\config\schema\example.dxc:
set ignore-name-bindings = true;
set oid-prefix ExampleAttribute = (1.1.1.1);
set attribute ExampleAttribute:1 = {
name = categoryId
syntax = caseIgnoreString
};
set attribute ExampleAttribute:2 = {
name = productId
syntax = caseIgnoreString
};
set attribute ExampleAttribute:3 = {
name = orderId
syntax = caseIgnoreString
};
set attribute ExampleAttribute:4 = {
name = customerId
syntax = caseIgnoreString
};
set attribute ExampleAttribute:5 = {
name = price
syntax = caseIgnoreString
};
set attribute ExampleAttribute:6 = {
name = quantity
syntax = caseIgnoreString
};
set attribute ExampleAttribute:7 = {
name = date
syntax = caseIgnoreString
};
set oid-prefix ExampleObjectClass = (1.1.1.2);
set object-class ExampleObjectClass:1 = {
name = category
subclass-of top
kind = structural
may-contain categoryId, cn, description
};
set object-class ExampleObjectClass:2 = {
name = product
subclass-of top
kind = structural
may-contain productId, categoryId, cn, price
};
set object-class ExampleObjectClass:3 = {
name = order
subclass-of top
kind = structural
may-contain orderId, customerId, date
};
set object-class ExampleObjectClass:4 = {
name = orderDetail
subclass-of top
kind = structural
may-contain date, description, orderId, productId
};
set object-class ExampleObjectClass:5 = {
name = customer
subclass-of top
kind = structural
may-contain customerId, cn
};
set object-class ExampleObjectClass:6 = {
name = family
subclass-of top
kind = structural
may-contain cn, uniqueMember, description
};
Create DXHOME\config\schema\example.dxg:
source "x500.dxc"; source "cosine.dxc"; source "umich.dxc"; source "inetop.dxc"; source "dxserver.dxc"; source "example.dxc";
Edit DXHOME\config\servers\example.dxi. Edit the following lines:
# schema
clear schema;
source "../schema/example.dxg";
In DXHOME\bin run the following command to reload the configuration:
dxserver init example
Load Initial Entries
As anonymous user, add the following entries:
dn: dc=Example,dc=com objectClass: domain objectClass: organization dc: Example o: Example dn: ou=Users,dc=Example,dc=com objectClass: top objectClass: organizationalUnit ou: Users dn: uid=manager,ou=Users,dc=Example,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson cn: Manager sn: Manager uid: manager userPassword: manager dn: uid=penrose,ou=Users,dc=Example,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson cn: Penrose sn: Penrose uid: penrose userPassword: penrose
The uid=manager,ou=Users,dc=Example,dc=com is the directory manager. The uid=penrose,ou=Users,dc=Example,dc=com is used by Penrose to update the directory.
Configure Access Control
Assign super-user rights to the above users. Create DXHOME\config\access\example.dxc:
# static access controls set access-controls = true; # dynamic access controls set dynamic-access-control = true; set super-user = { user = <dc "com"><dc "Example"><ou "Users"><uid "manager"> }; set super-user = { user = <dc "com"><dc "Example"><ou "Users"><uid "penrose"> };
Edit DXHOME\config\servers\example.dxi. Edit the following lines:
# access controls
clear access;
source "../access/example.dxc";
Enable Logging
Enable update logging so that Penrose can check if there is any changes in the directory. Copy DXHOME\config\logging\default.dxc into DXHOME\config\logging\example.dxc. Add the following line:
set update-log = "logs/$s_update.log";
Edit DXHOME\config\servers\example.dxi. Edit the following lines:
# logging and tracing
source "../logging/example.dxc";
Reload Configuration
Execute:
dxserver init example