$ help ldap
$ type sys$examples:ldap_example.c
$ type sys$common:[decc$lib.reference.sys$startlet_c]LDAP.h
usage: [server] [base] [filter] <attributes>
| DCL Command | Explanation |
|---|---|
| $demo :== $sys$examples:ldap_example.exe | creates a foreign VMS command (so we can pass "unix style" parameters on the command line) |
| $demo bhxcvx.qc.bell.ca "o=BELL, c=CA" "cn=NEIL RIECK" $demo bhxcvx.qc.bell.ca "cn=NEIL RIECK" |
returns everything available for name "NEIL RIECK" (search is restricted to "bell.ca") |
| $demo bhxcvx.qc.bell.ca "o=BELL, c=CA" "cn=NEIL RIECK" o | only returns "o" (organization in this case) "o" really means object search is restricted to "bell.ca" |
| $demo bhxcvx.qc.bell.ca "o=BELL, c=CA" "cn=NEIL RIECK" o mail | only returns "o" and "mail" for this name search is restricted to "bell.ca" |
| $demo bhxcvx.qc.bell.ca "c=CA" "cn=NEIL RIECK" o mail telephonenumber | only returns "o" and "mail" and "telephonenumber" search is restricted to ".ca" (across multiple organizations) |
| $demo bhxcvx.qc.bell.ca "c=CA" "telephonenumber=5195716303" cn | only returns "cn" (canonical name) for this telephone search is restricted to ".ca" (across multiple organizations) |
| Example File | Explanation |
|---|---|
| ldap_example.c | the original example "C" file from sys$examples: |
| ldap_example_hack.c | tweaked for real-world use |
| ldap_example_hack_authenticated.c | tweaked for real-world use on an LDAP server requiring authentication |
| ldap.h | the original header file from sys$library: |
stat = ldap_simple_bind_s(ld, NULL, NULL) // this is the connection line
if (stat != LDAP_SUCCESS) {
report_error("simple_bind (anonymous)",stat,ld);
goto finished;
}
stat = ldap_simple_bind_s(ld, ldapUser, ldapPassword) // this is the connection line
if (stat != LDAP_SUCCESS) {
report_error("simple_bind (with credentials)",stat,ld);
goto finished; }
BTW, here is an actual LDAP "user string" issued to my department by my company's IS/IT people:
"ou=ICSIS,ou=Applications,o=BELL,c=CA
In this example, the string fragment "ou=ICSIS" specifies our username which is used when connecting with the LDAP server.
Title : "Let's do a little VMS exploration"
Legend: <sr> = system response
<ur> = user response
==============================================================================
<sr> $
<ur> write sys$output f$getsyi("ARCH_NAME")," ",f$getsyi("VERSION")
<sr> Alpha V8.4
$
<ur> set def sys$help
<sr> $
<ur> dir *ldap*,*acme*/col=1
<sr> Directory SYS$COMMON:[SYSHLP]
ACMELDAP_STD_CONFIG_INSTALL.PDF;1
ACMELDAP_STD_CONFIG_INSTALL.TXT;1
LDAPACME$README-STD.TXT;1
ACME_DEV_GUIDE.PDF;1
ACME_DEV_README.TXT;1
$
<ur> set def sys$examples
<sr> $
<ur> dir *ldap*,*acme*/col=1
<sr> Directory SYS$COMMON:[SYSHLP.EXAMPLES]
LDAP_EXAMPLE.C;1
LDAP_EXAMPLE.ZIP;1
ACMEUTIL.C;1
ACMEUTIL.CLD;1
ACMEUTIL.COM;1
ACMEUTIL_SETUP.COM;1
ACME_EXAMPLE_DOI.H;1
ACME_EXAMPLE_DOI_ACME.C;1
ACME_EXAMPLE_DOI_BUILD.COM;1
ACME_EXAMPLE_DOI_MSG.MSG;1
ACME_EXAMPLE_README.TXT;1
ACME_PERSONA_BUILD.COM;1
ACME_PERSONA_EXT.C;1
$
<ur> set def sys$update
<sr> $
<ur> dir *ldap*,*acme*/col=1
<sr> Directory SYS$COMMON:[SYSUPD]
ACMELOGIN_POSTINSTAL_UPGRADE.COM;1
ACMELOGIN_PREINSTAL_UPGRADE.COM;1
ACME_DEV_KITS.BCK;1
$
I just (2008-04-xx) finished playing with a trial copy of VAM from Process Software. Version 2.1 supports selective or full transfer of VMS authentication to other corporate systems supporting one of: LDAP, SECURID, or RADIUS, with the option of falling back to UAF authentication on VMS if your network partner is unavailable. I was only able to test the LDAP portion but it works.
Caveat: your initial testing will complete sooner if...
| Action | Data | Comment |
|---|---|---|
| you edit this file: | sys$sysdevice:[vam]VAM_CONFIG.DAT | |
| then change this line: | LDAP_SERVER LDAP://LIMA.BEANS.COM | |
| to this: | LDAP_SERVER ldap://lima.beans.com | lower case "ldap:" changes the port |
| or this: | LDAP_SERVER lima.beans.com:389/ | :389 forces the port |
Be sure to start VAM like this:
@ VAM:VAM_STARTUP.COM LGI
Failure to do so will result in some very strange login problems for other users where they'll see the following text before the login prompt:
%SYSTEM-F-NOLOGNAM, no logical name match
Note: this is described on page 2-4 in the 2.1 documentation but one of the lines has slid into the next page. Also, you never see the LGI command line parameter used in any of the example listings.
Back to Home