![]() |
DSML
Gateway Guide Netscape Directory Server |
| DocHome |
Directory Server 7.0 provides a new Java gateway application based on Directory Service Markup Language (DSML) version 2.0. The following sections contain background on DSML, information on how to use the DSML gateway with Directory Server and Web servers, and how to configure your DSML gateway:
For information on implementing and configuring the Default and Directory Express LDAP gateways that come with Directory Server, refer to the Netscape Directory Server Gateway Customization Guide.
Directory Service Markup Language (DSML) is an open, extensible format that allows directories to exchange information across directory server types. The flexibility of DSML enables clients to interact with customers, partners, and remote locations, regardless of the type of directory service used.
DSML version 2.0, the basis for Directory Server's DSML Gateway, allows directory contents to be accessed, modified, and controlled through XML (eXtensible Markup Language), a more flexible language than HTML that allows customized markup languages to be created for different uses.
As a Web services protocol, DSML closely mirrors Lightweight Directory Access Protocol (LDAP). DSML is designed to allow arbitrary Web services clients to access directory services using the client's native protocols (http://soap), which allows content stored in a directory service to be easily accessed by standard Web service applications and development tools. DSML is useful in Web applications because it can access directories when a firewall would normally screen out an LDAP request.
Simple Object Access Protocol (SOAP) is an XML-based protocol used in combination with Hypertext Transfer Protocol (HTTP) to access information in a distributed database. DSMLv2 uses SOAP to bind to a Directory Server over the Web in such a way that LDAP directories, such as Directory Server, can be faithfully rendered in XML.
The DSML authentication mechanism is native to http://soap, but the gateway interacts cleanly with LDAP. Client credentials presented via HTTP Client Authentication or SSL connections are mapped to a distinguished name (DN) and then proceed as if an LDAP client had bound with that DN.
The gateway mapping is implemented essentially as follows:
The DSML gateway is implemented as a Java application. Implementation as a gateway, as opposed to natively within the Directory Server, offers the following benefits:
The gateway architecture does increase response times slightly in relation to a native Directory Server implementation because each request must be forwarded through the gateway.
Implementation in Java offers the following benefits:
To use the DSML Gateway application as part of your Directory Server deployment, you must:
The DSML gateway is installed with Directory Server. To enable it, do the following:
|
|
|
|
Any changes made to files in the /admin-serv/config directory will be lost if the gateway is deactivated and restarted.
|
|
|
|
|
The DSML gateway comes
with three command-line utilities, listed in Table DSML-1.
Table
DSML-1 Gateway Command-Line Utilities
|
Optional. Sets the port number. The -p utility is only used with -i. |
|
|
Restores edited files and disables the gateway the next time the server is restarted. |
When activating the gateway, you can use the -p utility to specify a port number other than the default (389 for the Directory Server, 8080 for the Admin Server). This parameter can also be edited manually; see Changing the Port.
The -u utility will restore edited files when the server is restarted. Any changes made to the configuration files are normally lost when the gateway is deactivated and restarted; using this utility will save those changes and restore them when the host server is stopped and started:
./slapd-serverID/dsml-activate.{pl|bat}
-u
You must run the -u utility after -i. If you were to run the following commands
dsml-activate.{pl|bat}
-i -p 3033
dsml-activate.{pl|bat} -i -p 3222
back-to-back, the
Admin Server and the gateway will not start with an error message such
as:
-u required at
./dsml-activate.pl line 30
Any changes in configuration or restarts must occur in a -i -u -i order, as follows, to ensure that both the server and the gateway will start:
dsml-activate.{pl|bat}
-i -p 3033
dsml-activate.{pl|bat}
-u
dsml-activate.{pl|bat}
-i -p 3222
The gateway is already
configured at installation. With the default settings, the gateway is
running using the Admin Server as the host. The default URL is host:port/axis/sercvices/dsmlgw,
where the host and port are the Admin Server’s
hostname and DSML gateway port as determined by dsml-activate.
The configuration settings are stored in a Java properties text file in the following location:
serverRoot/clients/dsmlgw/dsmlgw.cfg
Table
DSML-2 lists the DSML gateway default
configuration settings:
Table
DSML-2 Configuration Settings
The DSML gateway is configured when it is installed; no additonal configuration is necessary. However, some clients may want to move a gateway or create multiple gateway instances. This may be recommended for high traffic gateways that may require a separate HTTP server.
The default setting
allows read-only access since the default bind DN is anonymous.
Changing the bind DN will allow read-write access for the directory if
you reset the bind DN to a DN that has read-write permissions.
|
|
|
|
Everyone can read from the DSML gateway in its default configuration. To restrict access further, set the UseAuth value to true.
|
|
|
|
|
If the UseAuth attribute value is set to true, the gateway requires standard HTTP headers, consisting of the user's full distinguished name and password. Any operations done over the gateway will be done with proxy authorization and will require a distinguished name with proxy rights. For more about proxy authorization, refer to the Netscape Directory Server Administrator's Guide.
Edit the value of the ServerPort attribute to reflect the server you wish to use. Be sure that this port number is not used by another application.
Parameters not in the file are set to the default value. All of the configuration options that are currently in the document are correct and exist. The following is an example gateway configuration for example.com Corporation:
# DSMLGW
configuration for example.com, Corporation
ServerHost=ds-internal.example.com
ServerPort=8080
BindDN=uid=fred,ou=people,dc=example,dc=com
BindPW=foo
UseAuth=false
| DocHome |