How to use the Roaming feature of Netscape Communicator

The reason why I wrote this page is that it took me several days to understand Netscape's docs on this topic. Really ugly.
Anyway, let's start with the basics. If you're like me and you're using several computers at work/school/home and you're running Netscape's Communicator on multiple machines you know how annoying it is when you can't have the same bookmarks, cookies and address books regardless of your location. The Roaming feature will help you: the bookmarks, the cookies, the address book and other preferences for configuring Communicator are all stored in several files such as bookmark.html, cookies.txt, pab.na2. If you're running Communicator on a Windows machine the profiles are stored in the Netscape installation folder under User/[YourProfileName] folder. If you're using Unix/Linux look in your home directory under .netscape directory. Note that in this case the files have different names though.

The basic idea behind Netscape's roaming system is the following: store all or some of the files that contain your preferences on a unique server so that the next time when you will use Communicator, perhaps from a different location, your browser will fetch a copy of those files from the server thus keeping its local config files in sync with the ones stored on the server. If a conflict happens (e.g. server's version different from the local version of bookmarks files) you will be asked by the browser which copy you want to keep: server or local.

There's several ways for you to have roaming implemented in your system.

1. The server is an HTTP server
2. The server is a freeware Directory Server such as OpenLDAP - usually you can have this installed on a Linux machine
3. The server is Netscape's Directory Server - usually this one is installed on a Windows machine

I tried the first one with Netscape's FastTrack lightweight (and old) http server and couldn't make it work.
For my environment the third way seemed to be a good fit and so that's what I'm going to describe next.
 

Using Netscape's Directory Server


Before I get into details let me briefly describe what a Directory Server is. Essentially a Directory Server can be seen as the software equivalent of the yellow pages for an organization (company, university etc.). When you need to find a phone number in the yellow pages you open up the book and then you search for a category ("Cars") and then possibly a sub category ("Car Dealers") and finally you look up an entry by name ("Mike Johnson's Honda"). The same thing happens in the case of Directory Servers. Originally the people came with the idea of having a very comprehensive protocol for accessing those electronic yellow pages: the X.500 ISO protocol. However, the protocol was way too complex for the real life and so a less sophisticated protocol was invented: LDAP (lightweight directory access protocol). Currently Netscape Communicator browsers support this protocol and on the server side Netscape's Directory Server is a commercial implementation and OpenLDAP is a freeware version.

At this point you may ask yourself why should you use ldap servers for roaming. The reason is that in fact the ldap servers function as databases in which the administrator can assign you an entry from where you can retrieve and store the files describing your profile (the ldap protocol allows you to read and WRITE into the "yellow pages").  Suppose that you, John Doe, work for organization O in department D. The directory server administrator will create an entry for you, something like O/ D/ JohnDoe, where you and only you will be allowed to store and retrieve files. The reasons why you're not using a simple file server is that:

1) you need strong authentication (only you should have total access to your entry)
2) however, in some situations it may be useful for other users to see some of your files as well

In other words you need a system that allows flexible control of the user access.

Now that you a have an idea of what you're about to do start with installing the directory server. After you're done you can start configuring it for your roaming profile. First start the admin tool (in Windows most probably you will go to Start/Programs/Netscape Server Products/ and start Netscape Console). From here expand the menus on the left until you see the Directory Server under "Servers". Double click on it to start the directory server config process:

1) Click on the "Directory" tab

2) Click to expand the menus on the left. The first entry should be the "organization" name that you defined during the installation process. For example: "yourcompany.com". If you click on this element you should see under it several "organizational units" (a sort of subcategories) such as Directory Administrators, Groups, People.

3) You need to create a new organizational unit to store the roaming profiles for the people from your organization. RIGHT click on "yourcompany.com" organization element and choose to create a new organizational unit. Type a name such as "Roaming" and click ok to create the element.

    Note: Oddly, the new element will only appear on the right side of the window. This happens when an element has no other elements inside.

4) In the new "Roaming" element you will start adding users. Right click on the "Roaming" element and select New/User. Type in the name of the user (John Doe), a user ID (jdoe) and a password and click ok to create this user. You should see now the "Roaming" element in the left menu too in the tree structure.

5) In the new user element you will add a new element to store that user's roaming profile. Right click on "jdoe" element and choose New/Object. Select "nsliprofile" from the list. Here comes the tricky part (user interface is really bad):
    5.1 select View/Show All Attributes
    5.2 type a name for this element, for example jdoe_roaming_profile
    5.3 type the same name in the user id box.
    5.4 right click on owner, select "add value" and type: uid=jdoe,ou=Roaming,o=yourcompanycom Why? Because this is the DN (directory name, a sort of unique directory wide ID for each element) of the owner of this new element!
    5.5 right click on ACI, select "add value" to specify the access control permissions:
     (target="ldap:///uid=jdoe_roaming_profile,uid=jdoe,ou=Roaming,o=yourcompany.com")(targetattr="*")(version 3.0; acl "unknown"; allow (all) userdn = "ldap:///anyone"; )

        Let me explain:
        Target = this is what the browser will send to the directory server when it will retrieve/store the roaming profile
        ACL = the access control list, of course, describing who can do what with this element.

Server side work is done. Let's switch to the client.

1) Open the browser in your profile and select Edit/Preferences/Roaming Access. Select "enable roaming access for this profile" and specify user name: jdoe.

2) In Server Information fill up the LDAP fields:
    Address: ldap://your_directory_server_machine_name.com/uid=jdoe_roaming_profile,uid=jdoe,ou=Roaming,o=yourcompany.com
    User DN: uid=jdoe,ou=Roaming,o=yourcompany.com

3) In the Item Selection check the items that you want to store on the server for roaming purposes.

That's it!

For more information check out the following links:

Netscape Technical Article: Manually implementing roaming access
Netscape FAQ: How to set up Communicator to access your profile on a Directory (LDAP) Server
Netscape Directory Server: Admin Guide
Netscape Doc: Customizing LDAP Settings for Communicator 4.5

OpenLDAP web site
LinuxWorld Article: Configuring Netscape roaming with OpenLDAP

Netscape FastTrack: Server Admin Guide
 
 
  Post Your Comments Here 1