Can I set up a different method of authentication on Nagios?
Solution 1:
Nagios doesn't care how you have the webserver handle the authentication. Nagios simply takes the authenticated user passed from the webserver to compare against the configuration. You could also disable authentication within Nagios itself and handle authentication in the webserver directly. Doing this would either allow all authenticated users the same access level or would require separate configurations to restrict/limit access to Nagios features.
Here's the link to the Nagios 3.0 CGI Auth documentation.
Solution 2:
Nagios doesn't do its own authentication, as others have mentioned; it relies on httpd to pass the authentication through.
Therefore, you can use any of the dozens of auth modules for apache's httpd, including many that use form-based logins (WebAuth, CAS, OpenID, probably SAML, etc.). These are only practical if you already have some sort of SSO available where you are. If not, authing to a directory service (AD, LDAP) or a database might be more practical.
Solution 3:
I don't use forms based authentication but I have found that mod_auth_radius from the FreeRadius project works well in my environment to provide single sign on.
You could also look into direct LDAP authentication if you have something in place.