Apache::AuthzNIS - mod_perl NIS Group Authorization module
<Directory /foo/bar> # This is the standard authentication stuff AuthName "Foo Bar Authentication" AuthType Basic # The following is actually only needed when you will authenticate # via NIS passwd as well as authorize via NIS group. # Apache::AuthenNIS is a separate module. PerlAuthenHandler Apache::AuthenNIS # Standard require stuff, NIS users or groups, and # "valid-user" all work OK require user username1 username2 ... require group groupname1 groupname2 ... require valid-user PerlAuthzHandler Apache::AuthzNIS </Directory> These directives can also be used in the <Location> directive or in an .htaccess file.
= head1 DESCRIPTION
This perl module is designed to work with mod_perl, the Net::NIS module by Rik Haris (firstname.lastname@example.org), and the Apache::AuthenNIS module by Demetrios E. Paneras (email@example.com). It is a direct adaptation (i.e. I modified the code) of Michael Parker's (firstname.lastname@example.org) Apache::AuthenSmb module (which also included an authorization routine).
The module calls Net::NIS::yp_match using each of the require group elements as keys to the the group.byname map, until a match with the (already authenticated) user is found.
For completeness, the module also handles require user and require valid-user directives.
= head2 Apache::AuthenNIS vs. Apache::AuthzNIS
I've taken "authentication" to be meaningful only in terms of a user and password combination, not group membership. This means that you can use Apache::AuthenNIS with the require user and require valid-user directives. In the NIS context I consider require group to be an "authorization" concern. I.e., Group authorization consists of establishing whether the already authenticated user is a member of one of the indicated groups in the require group directive. This process may be handled by Apache::AuthzNIS.
I welcome any feedback on this module, esp. code improvements, given that it was written hastily, to say the least.
Demetrios E. Paneras <email@example.com> Ported by Shannon Eric Peevey <firstname.lastname@example.org>
Copyright (c) 1998 Demetrios E. Paneras, MIT Media Laboratory.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.