Authentication is the process of verifying the identity of a user that is requesting a service from Netscape Certificate Management System (CMS). More specifically, authentication involves acquiring and verifying the values of the configured attributes of the user. For example, the user might be prompted to log in with a user name and password, and then the server would look in a preconfigured database to verify that the user's password was correct.
Administrators--privileged users who connect to the server to do system or server administration tasks
Agents--privileged users who connect to the server to do agent operations
End-Entity Authentication During Certificate Enrollment
End-Entity Authentication During Certificate Renewal
End-Entity Authentication During Certificate Revocation
When an administrator makes an administrative request to Certificate Management System (from the CMS window within Netscape Console or from any command-line tool), the server needs to authenticate the administrator before processing the request. To facilitate this, Certificate Management System supports an authentication mechanism that includes user ID- and password-based authentication from the client and SSL server authentication from the server.
Figure 9.1 CMS authentication of a user with administrator privileges
If the user ID and password bind successfully to a user entry, authentication succeeds; otherwise, it fails.
If authentication succeeds, the server proceeds to check the user's access rights (based on group memberships) to determine whether the user is authorized to perform the requested operation.
If both authentication and authorization succeed, the server services the request. Otherwise, it rejects the request and logs the reason for the rejection.
Authentication of Agents
When an agent makes a request to Certificate Management System from the appropriate Agent Services interface, the server needs to authenticate the agent before processing the request. To facilitate this, Certificate Management System supports a certificate-based authentication mechanism.
Figure 9.2 shows how a Registration Manager authenticates and authorizes a Registration Manager agent.
Figure 9.2 Registration Manager authentication of a user with Registration Manager agent privileges
Upon receiving the certificate, the Registration Manager performs the following authentication and authorization process:
Note that the Registration Manager verifies the revocation status of the agent certificate if it has been issued by the Certificate Manager to which the Registration Manager is connected to; the Certificate Manager keeps a record of all the certificates it has issued and their current status in its internal database. However, if the agent certificate is issued by any other CA, the Registration Manager cannot verify the revocation status of the certificate; it can only verify that the certificate is valid and that it has been issued by a CA that the Registration Manager trusts. If the internal database contains an invalid certificate for an agent, the server rejects all requests from that agent. For the server to accept requests from that agent, you would have to replace the agent's invalid certificate in the internal database with a valid one. For details on how to do this, see "Changing a Privileged User's Certificate".
The Registration Manager reads the user's subject name (in DN form) and the issuer name from the certificate. This combination is unique. It then finds the login name corresponding to this unique combination in its privileged-users list, which is stored in the internal database. If a login name is associated with the certificate, the Registration Manager proceeds. Otherwise, it rejects the request.
The Registration Manager then checks the group memberships of the login name and the corresponding access rights to determine whether the user is authorized to perform the requested service.
If both authentication and authorization succeed, the Registration Manager services the request. Otherwise, it rejects the request and logs a reason for the rejection.
Directory-based authentication with a personal identification number (PIN) or one-time password that serves as an enrollment or registration token
The manual authentication mechanism is suitable for authenticating end entities during certificate enrollment, renewal, and revocation. Use this mechanism for authenticating unprivileged users.
Figure 9.3 illustrates how the manual authentication mechanism works during certificate enrollment.
Figure 9.3 Manual authentication of end entities
When the server receives the request, it automatically lists the request in a certificate request queue for an agent to process.
An agent verifies the authenticity of the request.
If the request is from an invalid end entity, the agent rejects the request, which in turn triggers a rejection notification to the end entity.
If the request passes all the configured policies, the server issues the certificate.
The end entity gets the certificate, which is delivered to the email address provided in the certificate request form.
Directory-based authentication is suitable for authenticating end entities during certificate enrollment. Use this mechanism for authenticating unprivileged users in the global LDAP domain.
Figure 9.4 User ID- and password-based authentication of an end entity
When the server receives the request, it looks up the directory that is configured for authenticating end entities. The server verifies the authenticity of the end entity by checking the directory entries.
If the end entity does not have a valid entry in the directory, the server rejects the request, logs an error message, and sends a rejection notification to the end entity.
If, for some reason, the directory to which Certificate Management System binds for authenticating the user ID and password is unavailable, the server returns an LDAP error code.
If the request passes all the configured policies, the server issues the end entity a certificate.
The end entity gets the certificate, which is delivered to the end entity's email address in the directory.
The plug-in module provided for authenticating end entities based on their user IDs and passwords (for the directory) is identified as follows:
auths.impl.UidPwdDirAuth.class=com.netscape.certsrv. authentication.UidPwdDirAuthentication In the CMS window, the implementation for this module is identified as follows; you can find it in the Authentication Plugin Registration tab:
auths.impl.UidPwdDirAuth.class=com.netscape.certsrv. authentication.UidPwdDirAuthentication
UidPwdDirAuth
Figure 9.5 shows how configurable parameters pertaining to the UidPwdDirAuth plug-in implementation are displayed in the CMS window.
Figure 9.5 Parameters and values for the plug-in UidPwdDirAuth
Table 9.1 Configurable parameters for directory-based authentication and their values
This authentication model is functionally very similar to the directory-based authentication model based on user ID and password, except that for stronger authentication you combine a PIN or one-time password with the end entity's user ID and password. Use this mechanism for authenticating unprivileged users in the global LDAP domain.
Certificate Management System does not remove the PIN from the directory following end-entity authentication. Authentication with PIN removal
Certificate Management System does not remove the PIN from the directory following end-entity authentication.
Certificate Management System removes the PIN from the directory following end-entity authentication.
Plug-in Module for User ID-, Password-, and PIN-Based Authentication
The plug-in module provided for authenticating end entities based on their user IDs, passwords, and PINs is identified as follows:
auths.impl.UidPwdPinDirAuth.class=com.netscape.certsrv. authentication.UidPwdPinDirAuthentication In the CMS window, the implementation for this module is identified as follows; you can find it in the Authentication Plugin Registration tab:
auths.impl.UidPwdPinDirAuth.class=com.netscape.certsrv. authentication.UidPwdPinDirAuthentication
UidPwdPinDirAuth
Figure 9.6 shows how configurable parameters pertaining to the UidPwdPinDirAuth plug-in module are displayed in the CMS window.
Figure 9.6 Parameters and values for the plug-in UidPwdPinDirAuth
Table 9.2 Configurable parameters for directory-based authentication with PINs and their values
If the renewal request is processed by a Registration Manager, the end-entity certificate presented must be issued by a Certificate Manager that the Registration Manager knows; the Registration Manager forwards certificate requests to this Certificate Manager for signing.
The certificate being presented by the end entity for renewal must be currently valid or must have expired; it cannot have been revoked.
If the renewal lead time does not permit renewing, the server rejects the renewal request.
If the certificate being presented by the end entity has already been renewed, the server displays the URL for downloading the certificate. This situation may occur if the end entity forgets to download the renewed certificate. It can also happen if the end entity maintains two identical certificate databases on two machines, renews the certificate from one machine, and then tries to renew the same certificate from the other machine.
If the revocation request is processed by a Registration Manager, the user certificate presented for authentication must be issued by a Certificate Manager that the Registration Manager knows; the Registration Manager forwards certificate requests to this Certificate Manager for signing.
The certificate being presented by the user for revocation must be currently valid or must have expired; it cannot have been already revoked.