III Authentication Prior to EZproxy 4.0

The III Patron API provides a link for external programs to obtain information on patrons in real-time from the III database. EZproxy provides built-in support to use this interface to verify patron status and authorize remote access.

Version requirement

These instructions are only accurate for versions of EZproxy version 2.0 through 3.6.

For those sites running the Silver release of III, EZproxy 2.4e (2004-05-12) or later is required.

III system change

To use III authentication, you must first make a change in your III system which allows your EZproxy server to use the III Patron API. This change is made using the "N > Limit NETWORK access option" in "INNOPAC SYSTEM ADMINISTRATION" to specify the IP addresses of your EZproxy server.

Create template files

III authentication requires additional files. Create the template versions of these files by entering one of the following commands as appropriate for your operating system:

ezproxy -mi   (Windows)
./ezproxy -mi   (Linux or Solaris)

This command will create the following files in the docs subdirectory. You can and should customize these files as appropriate for your institution.

Filename Purpose
iexpired.htm If the patron validates but his/her record is expired, this file is sent.
irefused.htm If the III system is unreachable, this file is sent.

Enable III authentication

To enable the simplest form of III authentication, edit user.txt/ezproxy.usr and add lines such at the end of the file:

::III
Host iii.mylib.org
/III

replacing "iii.mylib.org" with the host name of the system running the III Patron API. Changes to user.txt/ezproxy.usr take effect immediately, with no need to restart EZproxy. At this point, you should be able to use library card numbers as usernames with last names as passwords.

Date format

The date format used by the patron API is localized to the format used in your region of the world, but the patron API does not indicate the format, so EZproxy has no way to automatically determine the format of dates it receives. By default, EZproxy assumes that the dates provided by the patron API will be in month-day-year format. If your dates are not in this format, you will need to indicate this to EZproxy by including the "date" keyword, followed by one of "dmy" for day-month-year format or "ymd" for year-month-day format. A sample use for day-month-year format would look like:

::III
Date dmy
Host iii.mylib.org
/III

Please note that the "Date" line must appear before the "Host" line.

Limit access by patron type

If you need to limit remote database access to patrons who are in specific patron type codes, you can do this by adding "type" lines such as:

::III
Host iii.mylib.org
Type 100,105,110; Allow
Deny itype.htm
/III

The "Type" line(s) must appear after the "Host" line. In this example, a patron must not only validate, but must also have a patron type of 100, 105 or 110 to be authorized for remote access. All other patron types will be denied access and EZproxy will send the itype.htm file (which you create) from the docs subdirectory to explain why access was denied.

The III contains several advanced features for controlling access. More information on these features can be found in III Advanced Authentication.