Bandit Open Identity Framework
September 18th, 2006 by Jeff Jaffe
In my previous two major posts, I traced the role that Open Source now plays in innovation and in standards creation. I described how this is the ideal environment for creating innovative open standards for identity management. The Bandit project was established several months ago with this objective. In this post, I will describe some of the technical highlights of this project.
Representing digital identity
For identity management to be successful, we need a common vocabulary to talk about digital identities. How are they represented? What are their properties? What is a consistent method for identity management systems to interpret digital identities – and hence exchange information about them.
A project that intends to create a comprehensive way to think about this problem is the Higgins project. This project looks at numerous methods that are used to characterize digital identities today with the intent of integrating common identity capabilities. It is the first project to really think through the harmonization of digital identities in the corporate world with user-centric digital identities used by individuals and consumers on the Net.
Higgins is an existing open source project that now contains many portions. One of them (Identity Attribute Service, IdAS) is essentially a service provider interface for access to multiple identity repositories. There are a number of unique characteristics of this design, but the API and the registration system for plugins (called context providers) are Higgins code, hosted in the Higgins Eclipse project. The Bandit project is using the Higgins IdAS in a number of components. But Bandit is also providing implementations of context providers (for LDAP directories such as eDirectory and Active Directory) to Higgins.
The interaction between the Bandit and Higgins projects is a very good example of how open source projects accelerate innovation by encouraging collaboration. Higgins and Bandit actually started independently of each other, but both projects realized the value of working together in some aspects and are now accelerating each others development. It was noted in my last major post that, whereas proprietary approaches often create competing standards, in Open Source the standardization around the code that everyone can share encourages related projects to collaborate rather than compete.
Authentication
Authentication systems have been around for years, and there are several standards that support them. It is vital that, as new technologies are introduced, the innovations are rapidly incorporated in a standard way. An important example is the secure vault – increasingly popular for system and user credentials. Bandit is defining a Common Services Authentication Adaptor (CASA) to introduce a standard approach to this innovation.
More recently, CASA has moved beyond being a credential store. In now uses glue modules to support multiple authentication methods in client and server code.
Roles
One of the major concerns that I mentioned in my last post is to get consistency in representation of roles. Role-based access has become an innovative method to simplify the specification and management of identity management systems. But every company does it differently. The goal here is to provide an Open Source solution – to simplify for customers via standardization.
Ideally, we would standardize a single method to specific roles. Unfortunately, it is too late for that. Too many existing systems have gone out with their own unique method to specify roles. So what can we do about that?
Bandit’s approach is as follows. Bandit looks for what the similarities are in existing systems. For example, the very concept of the “role” implies that almost all systems have the concept of group membership in one form or another. So Bandit is creating a role calculation engine to make it easy to attach existing access control policies to organizational roles.
Audit, events, compliance
Identity management systems have evolved beyond being simple access control systems, to being systems for corporate compliance and governance [cf my blog post of May 30]. Each of these new innovative features are being introduced as we speak – and again we run the risk of incompatibility. So Bandit contains an Application Programming Interface (API) to receive audit records from Bandit’s open identity services. As a result we get a standard format for audit records. This standard format, of course, can also be used by other programs – outside of the Bandit framework.
Common Components
As mentioned in previous postings, standardization via documents and standards committees often lead to a situation where some things are open to interpretation which lead to incompatibility. With Open Source standards such as Bandit, the popularization of the GPL code leads to standardization. For example, with CASA, participants in authentication, whether they are servers, clients, devices, applications, or identity management systems, all have access to the same code. To participate in this framework, a system merely needs to include the common CASA code.