Goal/Problem Space

The Kuali Identity Management (KIM) module of Rice is intended to provide Identity and Access Management services to Kuali and other applications. It also provides graphical interfaces for managing identity and access management data.

Features

Technology Stack

Java, Spring Framework, OJB, JPA, Struts, Apache CXF, MySQL, Oracle, XML, JTA, plus more

Identity Services

Please indicate which of the following identity services/transports you consume, produce, or define.

Managed Information

Consume?

Produce?

Broker/Convey?

Privileges

X

X

 

Roles

X

X

X

Groups

X

X

X

Attributes

X

X

X

Identification

X

X

X

Defined Interfaces

Consume?

Produce?

Broker/Convey?

Authentication

X

 

 

Attributes

X

X

X

Permissions

X

X

X

Provisioning

X

X

X

Authorization

X

X

X

Subjects

X

X

X

Other

Consume?

Produce?

Broker/Convey?

Responsibilities

X

X

X

Standards and Interfaces

The KIM API provides 6 standard services:

All interaction with KIM happens through these services. If accessed remotely over the service bus, then the communication is authorized by digital signatures between the two endpoints. In the case of SOAP web services this is done using WS-Security.

The default implementation of the AuthenticationService just uses the REMOTE_USER on the incoming request to identify the incoming principal. Out of the box, KIM provides integration with CAS.

Issues and Challenges

  1. Currently, KIM hasn't done much testing with federated identity which is an area we want to be sure we have good support for.
  2. KIM doesn't currently provide good out-of-the-box connectors for things like LDAP or other identity services. The goal of KIM is to allow for easy plugability so it would be good to have these.
  3. As stated, plugability is one of the goals but there hasn't been much work done yet to try plugging in alternate IDM systems behind the KIM services. It's likely that once we have more implementations using KIM, we will identify some gaps in the APIs.
  4. Creating a central permission system that is both usable and performant is a challenge. Steps have been made to try and make KIM as efficient as possible but this is still a challenging issue.

More Information

Rice Homepage - http://rice.kuali.org
Internet2 Presentation on KIM - https://test.kuali.org/confluence/x/CwDGCQ
Rice API Javadocs - https://test.kuali.org/rice/rice-api-1.0-javadocs/
Draft Documentation for KIM - AG KIM draft.doc