CUWebAuth for Apache and IIS
Once you have CUWebAuth successfully installed, it’s time to begin the process of configuration. Configuring CUWebAuth involves two main areas:
Setting up CUWebAuth to Authenticate Users
SideCar is a small application that runs on an end user’s machine listening for authentication requests from servers such as those running CUWebAuth. One limitation of this scenario is that the server needs to be able to initiate a TCP/IP connection to the end user’s machine. As more and more end users set their machines up behind firewalls and/or Network Address Translators (NATs) OR are running personal firewalls that block access to incoming connections, there have been more instances of users who cannot use SideCar. SideCar will not be available in future releases of CUWebAuth.
Obtaining a Kerberos Identity (SRVTAB)
web-agent.hostname
Register to use CUWebLogin |
If you wish to use CUWebLogin as an authentication mechanism, your server’s
ServiceID and IP address must be registered with the CUWebLogin server before
you will be able to authenticate users this way.
If for some reason your ServiceID is not registered to use CUWebLogin, please
send mail to aadssupport@cornell.edu
and provide your ServiceID (the Kerberos principal assigned to your server) as
well as the IP address (NOT DNS name) of the server that needs to be registered.
|
Once you have a srvtab ready to go you are ready to start editing the httpd.conf file.
CUWAkerberosPrincipal web-agent.yourserver
CUWAsrvtabPath /etc/yourservtabfile
CUWAcuwlServerSRL "ipHost=cuweblogin.cit.cornell.edu ipPort=1010 a.netid=erpcd.webster
a.protocol=k4"
CUWAcuwlServerSRL "ipHost= cuweblogin2.cit.cornell.edu ipPort=1010
a.netid=erpcd.webster2 a.protocol=k4"
CUWApermitServerSRL "ipHost=permit1.cit.cornell.edu ipPort=756 a.netid=permitd.permit1
a.protocol=k4"
CUWAcusspTimeout 5 normal
<Directory /test>
AuthName CORNELL
AuthType all
require valid-user
</Directory>
An example of a Directory block in which CUWebAuth restrictions are specified might look like this:
Now that we’ve covered the cases in which the directives in a particular Directory block are applied before serving a page, let’s look at those directives…
The second ( permit ) is used to specify that the user must hold a valid permit in order to access the specified resource. In this case the keyword permit is followed by a space separated list of permit names—if the user holds an one of those permits he/she is granted access.
Finally, the third ( netid ) is used to specify that a particular NetID is allowed access to the individual file. A space separated list of NetIDs follows this keyword.
require valid-user
require permit cit.update.Eudora
require netid rd29 tcz3
In order for permit checking to work properly, the directive CUWApermitServerSRL must be set up properly as described earlier. Your server’s Kerberos identity must also be authorized to look up whether or not an authenticated user holds that particular permit.
A note about Permits… |
|
In general, permits are owned by individuals who must give specific access to
servers to lookup whether or not a particular user holds that permit.
This is done by contacting the permit owner and asking to have your server’s
Kerberos identity added to the list of identities authorized to perform lookups
against that permit.
Remember, your server’s Kerberos identity is the “srvtab name”
you asked for.
Please do not ask a permit owner to grant lookup access to the test identity (
mandarin-agent.test
). This srvtab is no longer distributed.
There are some permits which are considered “public” and anyone may
lookup whether or not a particular user holds that permit.
Two examples are
cu.student
(is the holder of this NetID a student) and
cu.employee
(is the holder of this NetID a staff/faculty member).
|
CUWAproxyAllow
direct
Other “Blocks” from Apache
It is possible to have multiple blocks which are all valid matches for a
particular URL.
Consider the following configuration file snippet:
<Directory /test/new>
...
</Directory>
...
</Location>
Now consider that the user requests the following URL:
http://yourserver/test/new/index.html
This URL will actually match all three blocks above. Which one is used to restrict the resource in this case? Under CUWebAuth for Apache, the first one encountered (that matches) will be the “block” used to restrict the resource. In this case it would be the directory block with the argument “/test/new” that would be used