Chapter 4. KIM

Table of Contents

Terminology
Principal
Entity
Group
Permission
Responsibility
Role
Reference Information
Services
Using the Services
IdentityManagementService
RoleManagementService
Person Service
KIM Types
Implementing Custom KIM Types
KIM Group Type Service
KIM Permission Type Service
KIM Responsibility Type Service
KIM Role Type Service
KIM Database Tables
Table Name Prefixes
Unmapped LAST_UPDT_DT Columns

Terminology

Principal

A principal represents an entity that can authenticate. In essence, you can think of a principal as an "account" or as an entity's authentication credentials. A principal has an ID that is used to uniquely identify it. It also has a name that represents the principal's username and is typically what is entered when authenticating. All principals are associated with one and only one entity.

Entity

An entity represents a person or system. Additionally, other "types" of entities can be defined in KIM. Information like name, phone number, etc. is associated with an entity. While an entity will typically have a single principal associated with it, it is possible for an entity to have more than one principal or even no principals at all (in the case where the entity does not actually authenticate).

Entities have numerous attributes associated with them, including:

  • Names

  • Addresses

  • Phone Numbers

  • Email Addresses

  • Entity Type

  • Affiliations

  • Employment Information

  • External Identifiers

  • Privacy Preferences

Group

A group is a collection of principals. You can create a group using both direct principal assignment and nested group membership. All groups are uniquely identified by a namespace code plus a name. A principal or group is a "member" of a group if it is either directly assigned to the group or indirectly assigned (through a nested group membership). A principal or group is a "direct" member of another group only if it is directly assigned as a member of the group, and not through a nested group assignment.

Permission

A permission is the ability to perform an action. All permissions have a permission template. Both permissions and permission templates are uniquely identified by a namespace code plus a name. The permission template defines the coarse-grained permission and specifies what additional permission details need to be collected on permissions that use that template. For example, a permission template might have a name of "Initiate Document," which requires a permission detail specifying the document type that can be initiated. A permission created from the "Initiate Document" template would define the name of the specific Document Type that can be initiated as a permission detail.

The isAuthorized and isAuthorizedByTemplateName operations on the PermissionService are used to execute authorization checks for a principal against a permission. Permissions are always assigned to roles (never directly to a principal or group). A particular principal will be authorized for a given permission if the principal is assigned to a role that has been granted the permission.

Responsibility

A responsibility represents an action that a principal is requested to take. This is used for defining workflow actions (such as approve, acknowledge, FYI) for which the principal is responsible. Responsibilities form the basis of the workflow engine routing process.

A responsibility is very similar to a permission in a couple of ways. First, responsibilities are always granted to a role, never assigned directly to a principal or group. Furthermore, similar to permissions, a role has a responsibility template. The responsibility template specifies what additional responsibility details need to be defined when the responsibility is created.

Role

You grant permissions and responsibilities to roles. Roles have a membership consisting of principals, groups, and/or other roles. As a member of a role, the associated principal has all permissions and responsibilities that have been granted to that role.

You can specify a qualification to any membership assignment on the role, which is extra information about that particular member of the role. For example, a person may have the role of "Dean" but that can be further qualified by the school they are the dean of, such as "Computer Science." You can pass qualifications as part of authorization checks to restrict the subset of roles to check.

Reference Information

There are several collections of reference information managed within KIM:

  • Address type

  • Affiliation type

  • Citizenship status

  • Email type

  • Employment status

  • Employment type

  • Entity name type

  • Entity type

  • External identifier type

  • Phone number type

Configuration Parameters

Table 4.1. KIM Configuration Parameters

Configuration ParameterDescriptionDefault value
kim.modeThe mode that KIM will run in; choices are "local", "embedded", or "remote".local
kim.soapExposedService.jaxws.securityDetermines if KIM services published on the service bus will be securedtrue
kim.urlThe base URL of KIM services and pages.${application.url}/kim