This page links to a series of tutorials demonstrating various
aspects of the use of JAAS (JavaTM Authentication and Authorization Service) and
JavaTM GSS-API.
JAAS can be used for two purposes:
for authentication of users, to reliably and securely
determine who is currently executing Java code, and
for authorization of users to ensure they have the
access control rights (permissions) required to do
security-sensitive operations.
Java GSS-API is used for securely exchanging
messages between communicating applications. The Java GSS-API
contains the Java bindings for the Generic Security Services
Application Program Interface (GSS-API) defined in RFC 2853. GSS-API offers
application programmers uniform access to security services atop a
variety of underlying security mechanisms, including Kerberos.
Note: JSSE is another API that can be used for secure
communication. For the differences between the two, see When to use Java GSS-API vs. JSSE.
The reason both JAAS and Java GSS-API tutorials are presented
together is because JAAS authentication is typically performed
prior to secure communication using Java GSS-API. Thus JAAS and
Java GSS-API are related and often used together. However, it is
possible for applications to use JAAS without Java GSS-API, and it
is also possible to use Java GSS-API without JAAS. Furthermore,
JAAS itself can be used simply for authentication or for both
authentication and authorization.
The following tutorials provide working examples for all of the
scenarios described above.
Describes a utility program that authenticates a user using JAAS
and executes any application as that user. The appropriate
user-based access controls are enforced while the application
executes. This utility, as a convenience, essentially performs the
operations described in the JAAS Authentication and JAAS
Authorization tutorials on your behalf. Therefore it is possible to
skip directly to this tutorial if you do not need to know how to
perform JAAS authentication and authorization directly.
The most comprehensive tutorial. The Login utility is used to
authenticate a service user and to start up a server application as
that user. The Login utility is also used to authenticate a client
user and to start up a client application as that user. Finally the
client and server applications, on behalf of their authenticated
client and service users, exchange secure messages using the Java
GSS-API.
Shows additional operations the server application in the
previous tutorial can perform once communication has been
established with the client application.
All applications in all tutorials in this series utilize
Kerberos Version 5 as the underlying technology for authentication
and secure communication. See Kerberos
Requirements. The term "Kerberos" used throughout the tutorials
is meant to refer to Kerberos Version 5.