See the WebSphere eXtreme Scale Wiki for links to eXtreme Scale Version 7.0 documentation.
If you log in
with your developerWorks ID, you can leave comments and feedback for the development team.
ObjectGrid is a distributed caching system, and you can secure access to the cache data. Generally, security is based on three key concepts, as follows:
- Trustable authentication: Reliably determine the identity of the requester. ObjectGrid supports both client-to-server and server-to-server authentication.
- Authorization: Grant access rights to the requester with permissions. ObjectGrid supports different authorizations for different operations.
- Secure transport: Safely transmit the data over the networks. ObjectGrid client server communication supports the Transport Layer Security/Secure Sockets Layer (TLS/SSL) protocol.
Authentication
ObjectGrid supports a distributed client-server framework. A client server security infrastructure is in place to secure access to ObjectGrid servers. For example, an ObjectGrid client must provide credentials to authenticate to the ObjectGrid server. These credentials can be a user name and password pair, a client certificate, a Kerberos ticket, or data that is presented in a format that is agreed upon by client and server.
Authorization
ObjectGrid authorizations are based on subjects and permissions. You can use the Java Authentication and Authorization Services (JAAS) to authorize access, or you can plug in a custom approach, such as Tivoli Access Manager (TAM), to handle the authorizations. The types of authorizations that ObjectGrid has are provided in the following list:
- Map authorization: Clients or groups can be authorized to perform insert, read, update, invalidate, or delete operations on Maps.
- ObjectGrid authorization: Clients or groups can be authorized to perform object queries, entity queries, and stream queries on grids.
- Data Grid agent authorization: Clients or groups can be authorized to allow Data Grid agents to deploy to ObjectGrid.
- Server-side map authorization: Clients or groups can be authorized to replicate a server map to the client side, or create a dynamic index to the server map.
- Administration authorization: Clients or groups can be authorized to perform administrator tasks.
Transport Layer Security/Secure Sockets Layer (TLS/SSL) support
To secure the client server communication, ObjectGrid supports TLS/SSL for both the static and dynamic deployment model. The TLS/SSL protocol provides transport layer security with authenticity, integrity, and confidentiality for a secure connection between an ObjectGrid client and server.
ObjectGrid server-to-server security
In a secure environment, a server must be able to check the authenticity of another server. ObjectGrid uses a shared secret key string mechanism for this purpose. This secret key mechanism is similar to a shared password. All the ObjectGrid servers agree on a shared secret key. When a server joins the cluster, it is challenged to present the secret string. If the secret string of the joining server matches the one in the master server, the joining server can join the cluster. Otherwise, the join request is rejected.
Sending a clear text secret is not secure. ObjectGrid security infrastructure provides a SecureTokenManager plug-in to allow the server to secure this secret before sending it. You can choose how you implement the secure operation. ObjectGrid provides an implementation in which the secure operation is implemented to encrypt and sign the secret.
Gateway security
In the static configuration model, an ObjectGrid gateway serves as a point to delegate the client management requests to the ObjectGrid server. The management gateway houses a set of MBeans, and the gateway client invokes these MBeans to administer or monitor ObjectGrid servers.
The management gateway and server communication uses the ObjectGrid static client-server communication mechanism, in which the gateway is treated as an ObjectGrid client. Communication for the gateway client and gateway (the MBean server), can be secured by TLS/SSL. This capability is provided by the Java Management Extensions (JMX) connector layer, which is implemented by the open-source project MX4J . ObjectGrid requires that MX4J be in place to make gateway work.
For authentication, the gateway propagates the credential presented by the gateway client to the ObjectGrid server. Both authentication and authorization are enforced on ObjectGrid servers.
JMX security in dynamic deployment topology
JMX MBean security is supported in all versions of ObjectGrid when using the static deployment topology, and is also supported in the dynamic deployment topology in ObjectGrid Version 6.1.0.1 and later. Clients of catalog server MBeans and container server MBeans can be authenticated, and access to MBean operations can be enforced.
TLS/SSL is supported for MBean operations in dynamic environment.
Local ObjectGrid security
Different from the distributed ObjectGrid model, the application directly instantiates and uses an ObjectGrid instance in the local ObjectGrid model. Your application and ObjectGrid instances are in the same Java Virtual Machine (JVM). No client or server concept exists in this model. Authentication is not supported in the local ObjectGrid programming model. Your applications must manage their own authentication, and then pass the authenticated Subject object to the ObjectGrid. The authorization mechanism that is used for the local ObjectGrid programming model is the same as the one that is used for the client-server model.
Summary
Starting with the Version 6.1 release, ObjectGrid supports two configuration models: static and dynamic. While some security features apply to both of them, others do not. The following table summarizes the security features supported in both models:
| Features |
Static configuration model |
Dynamic configuration model |
| Authentication |
Yes |
Yes |
| Authorization |
Yes |
Yes |
| TLS/SSL support |
Yes |
Yes |
| Server to Server authentication |
Yes |
Yes |
| Server to Server TLS/SSL support |
No |
Yes |
| Gateway security |
Yes |
N/A |
| JMX security |
Yes |
Yes |
The remainder of this section provides details about first securing a simple program, and enhancing the program to utilize more advanced security features. Additionally, information about different security subjects is also provided.
Examples and tutorials
- J2SE security tutorial
Additional information
© Copyright IBM Corporation 2007,2009. All Rights Reserved.