RFC 1373
Portable DUAs
RFC 1373: PORTABLE DUAs π
Network Working Group π This one's RFC 1373, called PORTABLE DUAs, written by T. Tignor from ISI and dated October 1992 πΈ. Its Status section says it provides information for the Internet community and does not specify an Internet standard. The title block doesn't list any RFCs it obsoletes or updates β¨.
Status of this Memo π
This memo provides information for the Internet community. It does not specify an Internet standard. Distribution of this memo is unlimited. π
Introduction β¨
Okay so this document comes in two parts π¦. Part one is for regular people who want to set up their own DUAs (Directory User Interfaces) so they can get into the Directory. It has some quick notes on how DUAs work, plus instructions for creating and installing them. The steps are easy to follow and go one at a time. The expectation is that you'll be able to do everything as you read through for the first time and walk away with a working DUA when you're finished π.
Part two is for ISODE-maintainers who want to give users portable DUAs. It's written in a similar step-by-step style but it's longer β¨. Same deal, though: the expectation is that the maintainer can do everything on their first read and end up with a working DUA package and supporting service π«Ά.
The document currently has four sub-parts for each larger part π. They cover the following DUAs: WHOIS, "de," dixie's "ud" and ISODE's "doog." More sub-parts will be added as new portable DUA packages get designed π.
Where it's relevant, the document assumes ISODE 8.0 is being used π.
1. Instructions for DUA-Users π§
WHOIS
Okay bestie, a WHOIS interface to X.500 might already be available on any ISODE-resident machine that also runs a DSA (Directory System Agent). Check with your local ISODE-maintainer π. If the service is there, you can access the Directory with this command:
whois -h <hostname> <name in UFN format>
<hostname> is the name of the host machine offering the WHOIS interface, wrapped in quotes. <name in UFN format> refers to a special, user-friendly syntax created by Steve Hardcastle-Kille π
. UFN format is a comma-separated list of DN component values, and attribute types are left out. The criteria for identifying DN components in UFN is usually less strict than normal, so it's giving relaxed π. For example, this:
@c=US@st=California@o=Information Sciences
Institute@ou=HPCC@cn=Tom Tignor
could be uniquely specified in UFN syntax as tignor,isi,ca,us π¦.
So to find this entry through WHOIS, you'd type:
whois -h "gum.isi.edu" tignor,isi,ca,us
For the full details, check out Steve Hardcastle-Kille's Work in Progress, "User Friendly Naming" π.
De
Use of the "de" DUA is fully explained by the program's help section π. New users should type ? at the first prompt after installing and running the de executable π.
Here's how to create and install the de executable. It's simple, I promise β¨:
- If you don't have a file called
.unknown_tailorin your home directory, make it now. This file should contain the following single line:
etcpath: <fullpathname>/isode/etc/
where <fullpathname> is the full path name of your $HOME directory πΈ.
- If you don't have a directory
$HOME/isode/bin(where$HOMEis your home directory), create it now π. - FTP the compressed tar file
de-portable.tar.Zfrom your local ISODE-resident machine and put it in your isode directory. If you can't find this file locally, it's available by anonymous FTP fromgum.isi.eduin thex500directory π¦. - Run
cd $HOME/isode. - Run
uncompress < de-portable.tar.Z | tar xf -. - If your name is listed in the Directory, edit the
de/detailorfile and add a line reading:
username: <yourDN>
where <yourDN> is your Distinguished Name in the Directory π«Ά.
- Run
cp de/detailor de/etc/detailor. - Edit the CONFIG.make variables BINDIR, ETCDIR and SBINDIR so they refer to your isode/bin, isode/etc and isode/etc directories, respectively. (The isode/etc directory was created by the previous command π.)
- Run
ranlib libdsap.a. - Run
ranlib libisode.a. - Run
cd de. - Run
./make all. - Run
./make inst-all.
There's one error you might run into after the ./make all command π:
"Redeclaration of sprintf." in general.h
If that happens, this sub-procedure will fix it π οΈ:
- Open the file
../h/general.hin your editor. - Search for the string
sprintf. - Cut the line with the
#endifstring that follows the line readingchar *sprintf ();. - Paste that line under the line which reads
#endif. This second#endifline is exactly three lines below the current line π. - Save the file and quit the editor.
Then type ./make all again. It should now compile smoothly β¨. Finish up by typing ./make inst-all π.
Dixie/Ud
The ud DUA is designed for users doing most of their X.500 queries in one branch of the DIT (Directory Information Tree) π³. It operates from a predefined "base," which is a position in the DIT one or more branches above the entries you want to query. The base is usually an organization name, like this:
@c=US@st=California@o=Information Sciences Institute
Ud starts with a preset base (more on that below π). But you can change it with the cb command. cb takes the full DN of the new base as an argument. For example:
cb @c=GB@o=University College London
With a preset base, searching is super easy π
. You find entries below the base with the find command. find takes the last component of the DN of the entry as its only argument. The criteria for that argument is very loose, so ud's partial matching should return the data you want, or a clarification request if the name is even close to the real thing π« .
For example, with a base of @c=US@st=California@o=Information Sciences Institute, the RDN:
ou=HPCC@cn=Tom Tignor
could be found by entering:
find tignor
at the ud prompt π¦.
Other commands in ud are briefly described in the program's help section. Interested users should type ? at the first prompt after installing and running the executable π.
"Ud" comes with the "dixie" package, which is a mini-environment built specifically to support lightweight Directory access π. Using ud requires that a dixie server is running alongside a DSA on your local ISODE-resident machine. Before you grab the dixie package, check with your local DSA manager to make sure the dixie server is up and running π.
Once you're sure everything is set up on the DSA-manager's end, here's how to create and install the ud executable:
- If you don't have a directory
$HOME/isode/bin(where$HOMEis your home directory), create it now π. - FTP (anonymously) the compressed tar file
dixie-<version #>.tar.Z, where<version #>is the number of the latest release, fromterminator.cc.umich.edu. Put it in your isode directory. The file is in thex500directory on terminator πΈ. - Run
cd $HOME/isode. - Run
uncompress < dixie-<version #>.tar.Z | tar xf -.
This creates the dixie environment π§. But if you're only into ud, there are a bunch of things in the package taking up space for no reason ποΈ. This sequence of commands will get rid of them:
cd dixie-<version #>
rm -r dos
rm -r macintosh
rm -r server
rm -r vms
cd ..
Now we keep going and bring ud to life β¨:
cd dixie-<version #>
Edit the file ud/ud.h. There are two constants you'll need to give new values: DEFAULT_BASE and DEFAULT_SERVER. DEFAULT_BASE identifies ud's "base" upon startup, as described above. It takes a quoted DN as a value, for example "@c=US@st=California@o=Information Sciences Institute". DEFAULT_SERVER identifies the machine that hosts the dixie server, which is your local ISODE-resident machine. This constant takes a quoted string as its value, for example "gum.isi.edu" π.
Edit the file Makefile. Set the value of the BINDIR variable to <mypath>/isode/bin, where <mypath> is the full pathname of the user's home directory π.
Then run these, in order:
make depend-ud
make ud-only
make inst-ud
Doog
The doog DUA retrieves information on entries you supply in UFN format π. UFN format refers to a special, user-friendly syntax created by Steve Hardcastle-Kille. It's a comma-separated list of DN component values, with attribute types omitted. The criteria for identifying DN components in UFN is often less stringent than normal π. For example, this:
@c=US@st=California@o=Information Sciences
Institute@ou=HPCC@cn=Tom Tignor
could be specified in UFN syntax (and doog) as tignor,isi,ca,us π¦.
For more details, see Steve Hardcastle-Kille's Work in Progress, "User Friendly Naming" π.
Other commands in doog are briefly described in the program's help section. Interested users should type ? at the first prompt after installing and running the executable π.
Here's how to create and install the doog executable:
- If you don't have a file called
.unknown_tailorin your home directory, make it now. This file should contain the following single line:
etcpath: <fullpathname>/isode/etc/
where <fullpathname> is the full path name of your $HOME directory πΈ.
- If you don't have a directory
$HOME/isode/bin(where$HOMEis your home directory), create it now π. - FTP the compressed tar file
doog-portable.tar.Zfrom your local ISODE-resident machine and put it in your isode directory. If you can't find this file locally, it's available by anonymous FTP fromgum.isi.eduin thex500directory π«Ά. - Run
cd $HOME/isode. - Run
uncompress < doog-isode-8.0.tar.Z | tar xf -. - Edit the CONFIG.make variables BINDIR, ETCDIR and SBINDIR so they refer to your isode/bin, isode/etc and isode/etc directories, respectively. (The isode/etc directory was created by the previous command π.)
- Run
ranlib libdsap.a. - Run
ranlib libisode.a. - Run
cd doog. - Run
./make all. - Run
./make inst-all.
2. Instructions for ISODE-Maintainers π
WHOIS
Okay, so "WHOIS" is a simple program that's already available on most UNIX workstations and hosts π». It's normally used to access the database of users at NIC.DDN.MIL. The instructions below explain how to use WHOIS to get at data in the White Pages Pilot X.500 database. They're taken nearly word for word from the "PSI White Pages Pilot Project Administrator's Guide," section 2.8.3 π.
Choose a machine in your local environment that's running the pilot project software π§. This machine will offer the white pages service through a network port that emulates the WHOIS service π¦.
On this machine, modify the /etc/services file so it contains an entry like this:
whitepages 17005/tcp
Next, edit the file /etc/servers so it has an entry like this:
whitepages tcp $(SBINDIR)in.whitepages
Because most user interfaces to WHOIS, e.g., whois(1c), don't let the user specify a special port, you should probably also add this line as well:
whois tcp$(SBINDIR)in.whitepages
If you already have a line for whois in the servers file, then you're already running a WHOIS service β¨, so you should NOT add a second whois line π. Also, this machine is not a good choice for running the white pages via WHOIS emulation π, so you've been warned, bestie.
Note that on newer systems derived from Berkeley UNIX, /etc/servers is called /etc/inetd.conf πΈ
The whitepages Command π¦
Okay so for systems that get to reach the white pages over the network instead of locally (aka the ones that are NOT running the pilot project software), you should figure out how the user calls the WHOIS service over the network π . For UNIX systems, you should make a shell script that looks like this:
: run this script through /bin/sh
exec /usr/ucb/whois -h wp.psi.net "$*"
Where the name of a host running the pilot project software gets swapped in for whitepages, like wp.psi.net π. That host must have the files /etc/services and /etc/servers edited as described above β¨. No skipping this part, bestie.
De π§
The compressed tar file for "de" can be made with the following sequence of commands π. (Quick note: in the steps below, <toplevel> means the top level of the ISODE distribution π.)
cd <toplevel>/others/quipu/uips
Edit the de/detailor file and set these options:
dsa_address: (the address of your DSA)
default_country: (your country)
default_org: (your organization)
cp de/make temp1
Next, edit the de/make file so that the last line reads like this:
exec $M TOPDIR=../ -f ../CONFIG.make -f Makefile ${1+"$@"}
tar -cf de-portable.tar de/*
mv temp1 de/make
mv de-portable.tar <aboveETCDIR>
Here, <aboveETCDIR> is the directory immediately above ETCDIR π«Ά.
cd <aboveETCDIR>
tar -rf de-portable.tar etc/dsaptailor etc/isomacros
etc/oidtable.at etc/oidtable.oc etc/oidtable.gen
mv de-portable.tar <toplevel>
cd <toplevel>
cp config/CONFIG.make .
tar -rf de-portable.tar h/* h/quipu/* util/* CONFIG.make
libdsap.a libisode.a
rm CONFIG.make
compress de-portable.tar
Once that's all done, the compressed tar file for de will show up in the top level directory of the ISODE distribution as "de-portable.tar.Z" π.
Dixie/Ud π
The latest version of the dixie distribution is available by anonymous ftp at "terminator.cc.umich.edu" in the "x500" directory π. The file is named "dixie-<version #>.tar.Z", where <version #> is the number of the latest release.
For anyone to use dixie clients, there must be a running dixie server they can connect to π₯. To set up the dixie server, the DSA manager should take the dixie package and unpack it in the top level directory of the ISODE distribution. Here's the command for that:
uncompress < dixie-<version #>.tar.Z | tar xf -
Where <version #> is the version number of your dixie package π. This will create a "dixie-<version #>" directory. The dixie server, the dixie library, and any DUAs included with the package will all live in this directory branch β¨. There's also software to support dixie on machines other than UNIX, stored in the directories "dos", "macintosh" and "vms". UNIX users should feel free to delete these directories and all their contents π§Ή. Commands of this form should do the job:
rm -r <dirname>
Where <dirname> is the directory name π .
The top level of the dixie distribution has a file called "Makefile" π. It holds several variables that should be configured to match your ISODE environment:
BINDIR ISODEINCLUDEDIR
ETCDIR LIBDIR
INCLUDEDIR ISODELIBS
INSTLIBDIR
The "server" directory below the top level of the dixie distribution has another "Makefile". Configure the ISODELIBS variable in that file too π«Ά.
After setting these variables, cd to the top level of the dixie distribution and type the following commands:
make depend-server
make server-only
make inst-server
This will create and install the dixie server in your ETCDIR π. Then cd to the ETCDIR and type "dixie" to start the server π.
Doog π¦
The compressed tar file for "doog" can be made with the following sequence of commands π§. (Quick note again: <toplevel> means the top level of the ISODE distribution π.)
cd <toplevel>/others/quipu/uips
cp doog/make temp1
Edit the doog/make file so the last line reads like this:
exec $M TOPDIR=../ -f ../CONFIG.make -f Makefile ${1+"$@"}
cp doog/query/make temp2
Edit the doog/query/make file so the last line reads like this:
exec $M TOPDIR=../../ -f ../../CONFIG.make -f Makefile
${1+"$@"}
tar -cf doog-portable.tar doog/*
mv temp1 doog/make
mv temp2 doog/query/make
mv doog-portable.tar ../../..
cd ../../..
cp config/CONFIG.make .
tar -rf doog-portable.tar h/* h/quipu/* util/* CONFIG.make
libdsap.a libisode.a
rm CONFIG.make
mv doog-portable.tar <aboveETCDIR>
Here, <aboveETCDIR> is the directory immediately above ETCDIR πΈ.
cd <aboveETCDIR>
tar -rf doog-portable.tar etc/dsaptailor etc/isomacros
etc/oidtable.at etc/oidtable.gen etc/oidtable.oc
compress doog-portable.tar
And the compressed tar file for doog will appear in the directory immediately above ETCDIR as "doog-portable.tar.Z" π.
Security Considerations π₯
Security issues are not discussed in this memo. π So this doc doesn't cover security at all, bestie, and that's a real thing to keep in mind when you're setting any of this up π.
Author's Address π
Tom Tignor
University of Southern California
Information Sciences Institute
4676 Admiralty Way
Marina del Rey, CA 90292
Phone: (310) 822-1511
EMail: tpt2@isi.edu
π¦ where this page comes from
- ietf: rfc1373 1992-10
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms