Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

The LDAP Provisioning Plugin is designed to provision Registry data into an LDAP server.

Operations

Registry CO Person Transaction

LDAP Action

Add

Add entry to LDAP (if entry already exists, throw error; manual provisioning required)

Edit

Update configured attributes only (other attributes will be left untouched)

Enter Grace Period

No changes (unless attributes change as part of grace period)

Expiration / Becomes Inactive

Remove entry from LDAP (or place into some sort of referential integrity state for archival purposes?)

Unexpire / Becomes Active

Add entry to LDAP (if entry already exists, throw error; manual provisioning required)

Delete

Remove entry from LDAP

Manual Provision

If entry exists: Update configured attributes only
If entry does not exist: Add entry to LDAP
(warning) To completely erase and rewrite a record, an administrator must manually remove the record from LDAP before manually provisioning

Registry CO Group Transaction

LDAP Action

Add

Write CO Group record (including memberships) to LDAP, but only if there is at least one member*

Edit

Write CO Group record (not including memberships) to LDAP, but only if there is at least one member*

Delete

Write CO Group record to changelog (attributes will be empty)

Manual Provision

Write CO Group record (not including memberships) to LDAP, but only if there is at least one member*

* The groupOfNames schema requires at least one member. If there are no members of a group, the Provisioner will delete the group.

Note that adding or deleting group memberships will trigger edit provisioning on both the affected CO Person and the affected CO Group.

Configuration

Note

When using this plugin, it is recommended to add database encryption for the password column in the table cm_co_ldap_provisioner_targets.

The LDAP Provisioning Plugin automatically converts the internal Registry data model into the following LDAP object classes:

  • person
  • organizationalPerson
  • inetOrgPerson
  • eduPerson (must be enabled)
  • eduMember (must be enabled)
  • groupOfNames (must be enabled)
  • posixAccount (experimental, must be enabled)
  • ldapPublicKey (must be enabled)

When configuring the Plugin, you can select which object classes to use and which attributes within those object classes to export to LDAP. When attributes come from data model attributes that are typed, a specific type can be selected, or all types can be selected. When multiple values are not supported, the first obtained value will be exported. Unless otherwise noted, only attributes attached to the CO Person record are exported. (Org Identity attributes are not.)

Attributes are mapped as follows:

Attribute

Object Class

Data Model

Multiple Values Exported?

cn

person

cm_names

Only the preferred name attached to the CO Person is exported (CO-333)

cn

groupOfNames

cm_co_groups name

(error)

eduPersonAffiliation

eduPerson

cm_co_person_roles affiliation (possibly mapped via cm_co_extended_types)

(tick)

eduPersonPrincipalName

eduPerson

cm_identifiers identifier

(error)

employeeNumber

inetOrgPerson

cm_identifiers identifier

(error)

employeeType

inetOrgPerson

cm_co_person_roles affiliation

(tick)

facsimileTelephoneNumber

organizationalPerson

cm_telephone_numbers number

(tick)

gecos

posixAccount

cm_names

(error)

gidNumber

posixAccount

cm_identifiers identifier where type is gidNumber

(error)

givenName

inetOrgPerson

cm_names given

Only the preferred name attached to the CO Person is exported (CO-333)

hasMember

eduMember

cm_identifiers identifier

(tick)

homeDirectory

posixAccount

cm_identifiers identifier where type is homeDirectory

(error)

isMemberOf

eduMember

cm_co_groups name
(where cm_co_group_members member is true)

(tick)

l

organizationalPerson

cm_addresses locality

(tick)

loginShell

posixAccount

Currently hard coded

(error)

mail

inetOrgPerson

cm_email_addresses mail

(tick)

member

groupOfNames

cm_co_ldap_provisioner_dns DN

(tick)

mobile

inetOrgPerson

cm_telephone_numbers number

(tick)

o

inetOrgPerson

cm_co_person_roles o

(tick)

ou

organizationalPerson

cm_co_person_roles ou

(tick)

postalCode

organizationalPerson

cm_addresses postal_code

(tick)

sshPublicKey

ldapPublicKey

cm_ssh_keys

(tick)

sn

person

cm_names family

Only the preferred name attached to the CO Person is exported (CO-333)

st

organizationalPerson

cm_addresses state

(tick)

street

organizationalPerson

cm_addresses line1

(tick)

telephoneNumber

organizationalPerson

cm_telephone_numbers number

(tick)

title

organizationalPerson

cm_co_person_roles title

(tick)

uid

inetOrgPerson, posixAccount

cm_identifiers identifier

(tick)

uidNumber

posixAccount

cm_identifiers identifier where type is uidNumber

(error)

(warning) posixAccount support is experimental and subject to change in a future release (CO-866).

Configuring DNs

Base DNs must be configured for each LDAP Provisioning Target. A People Base DN is mandatory. A Group Base DN is only required if the groupOfNames objectclass is enabled.

For People entries, an identifier label and type must be selected which will be used to create the person-specific portion of the DN. Be sure to pick an identifier that will always be defined for all people, as the Plugin will be unable to export records for which it cannot generate a DN. You may wish to use an identifier that you have configured Registry to assign automatically. The selected identifier must also be exported as part of the record (the Plugin will do this automatically if you don't configure it).

For Group entries, the name of the group is placed into cn and used to construct the DN. Thus, all Groups will have DNs of the form cn=Group Name,Group Base DN.

If an element of a DN changes for a CO Person or a CO Group, the Plugin will automatically assign a new DN and rename the entry the next time the entry is provisioned.

Note
titleLDAP v3 Required

The LDAP Provisioning Plugin requires LDAP protocol v3 in order to rename an entry when its DN changes.

Other Customization

Additional customization is planned (CO-551CO-564).

Info
titleUpdating LDAP via Other Services

You may write to LDAP via other services or applications to maintain attributes that are not managed by COmanage Registry. For example, you might use a mailing list manager to maintain list memberships in LDAP.

However, you should be aware of the implications of the operations described above. For example, if the LDAP Provisioning Plugin decides to delete an entry from LDAP, the attributes managed by external applications in that entry will also be deleted.

See Also