Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

LDAP attributes are grouped into collections called object classes. The LDAP Provisioning Plugin supports several object classes, and various attributes within those object classes. Depending on the object class, it may possible to select some (but not all) attributes within an object class for export. The Plugin assumes full control over any enabled attribute within an object class.

Prior to v1v2.10.0, the Plugin assumed that if an object class is enabled, it controls all attributes within that object class are within its control, even if they are not configured. However, this can cause problems (eg: if you are using an older version of an object class than what the Plugin supports, or if you have another application that you want to manage an attribute). As of v1v2.10.0, two modes are supported, selected via the Unconfigured Attribute Mode setting:

  • Ignore: Unconfigured (disabled) attributes within an enabled object class are ignored. Note that if you subsequently disable an attribute after having previously enabled it, existing values of that attribute will not be removed. You will need to manually clean them up. This is the default behavior beginning with Registry v1v2.10.0.
  • Remove: Unconfigured attributes within an enabled object class are removed. This is the default behavior prior to Registry v1v2.10.0.

Regardless of this setting, attributes associated with object classes not enabled are left alone (except as described in Operations, below).

...

(warning) Versions prior to Registry v1v2.10.0 may not be consistent with this documentation.

...

  • Attributes enabled for export, within object classes enabled for export.
  • Attributes defined by LDAP Schema Plugins and enabled for export.
  • If Unconfigured Attribute Mode is Remove, all other defined attributes within object classes enabled for export (including those defined by Schema Plugins).
Note

When removing an objectclass (whether via configuration or by disabling LDAP Schema Plugins), keep in mind you may receive schema compliance errors from the LDAP server. This can happen because (eg)

  1. COmanage had previously included an attribute foo in the objectclass fooclass.
  2. When the objectclass is deconfigured, COmanage will emit a list of objectclasses that no longer includes fooclass.
  3. However, the LDAP record still contains the attribute foo. COmanage does not touch this attribute because it is not configured to do so.
  4. The LDAP server complains because the record does not contain an objectclass that defines foo.

In this scenario, it will be necessary to manually clean up the LDAP records to remove foo before COmanage can update the record.

Registry CO Person Transaction

LDAP Action

Externally Managed Attributes

Add

Add entry to LDAP (if entry already exists it will be deleted and replaced)

Deleted

Edit

Update configured attributes only

Untouched

Status Set To Grace Period

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

Untouched

Status Set To Expired or Suspended

Update entry to maintain only Person attributes for referential integrity (no Role or Group attributes)

Untouched

Status Set Back To Active

Restore Role and Group attributes, or add entry to LDAP if not present

Untouched

Delete, or Status Set To Deleted (or any other status not specified above)

Remove entry from LDAP

Deleted

Manual Provision

If entry exists: Update configured attributes only
If entry does not exist: Add entry to LDAP

(warning) Attributes are subject to CO Person and Person Role Status
(warning) To completely erase and rewrite a record, an administrator must remove the record from LDAP (manually or by setting the person status to eg Deleted) before manually provisioning

Untouched

...

Attribute

Object Class

Data Model

Multiple Values Exported?

Introduced

cn

person

cm_names

Only the primary name attached to the CO Person is exported

v0.8

cn

groupOfNames

cm_co_groups name

(error)

v0.8.2
descriptiongroupOfNamescm_co_groups description(error)v0.8.2
displayNameinetOrgPersoncm_names(error)v1v2.10.0

eduPersonAffiliation

eduPerson

cm_co_person_roles affiliation (possibly mapped via cm_co_extended_types)

(tick)

v0.8
eduPersonEntitlementeduPersoncm_co_services (according to member cm_co_groups)(tick)v1v2.10.0
eduPersonNicknameeduPersoncm_names(tick)v1v2.10.0
eduPersonOrcideduPersoncm_identifiers identifier where type is orcid(tick)v1v2.10.0

eduPersonPrincipalName

eduPerson

cm_identifiers identifier

(error)

v0.8
eduPersonPrincipalNamePrioreduPersoncm_identifiers identifier(tick)v1v2.10.0
eduPersonScopedAffiliationeduPersoncm_co_person_roles affiliation (possibly mapped via cm_co_extended_types, with scope appended)(tick)v1v2.10.0
eduPersonUniqueIdeduPersoncm_identifiers identifier (with scope appended)(error)v1v2.10.0

employeeNumber

inetOrgPerson

cm_identifiers identifier

(error)

v0.8

employeeType

inetOrgPerson

cm_co_person_roles affiliation

(tick)

v0.9.2

facsimileTelephoneNumber

organizationalPerson

cm_telephone_numbers

(tick)

v0.8

gecos

posixAccount

cm_names

(error)

v0.9

gidNumber

posixAccount

cm_identifiers identifier where type is gidNumber

(error)

v0.9

givenName

inetOrgPerson

cm_names given

Only the primary name attached to the CO Person is exported

v0.8

hasMember

eduMember

cm_identifiers identifier

(tick)

v0.8.2

homeDirectory

posixAccount

cm_identifiers identifier where type is homeDirectory

(error)

v0.9

isMemberOf

eduMember

cm_co_groups name
(where cm_co_group_members member is true)

(tick)

v0.8

l

organizationalPerson

cm_addresses locality

(tick)

v0.8

loginShell

posixAccount

Currently hard coded

(error)

v0.9

mail

inetOrgPerson

cm_email_addresses mail

(tick)

v0.8

member

groupOfNames

cm_co_ldap_provisioner_dns DN

(tick)

v0.8.2

mobile

inetOrgPerson

cm_telephone_numbers

(tick)

v0.8

o

inetOrgPerson

cm_co_person_roles o

(tick)

v0.8

ou

organizationalPerson

cm_co_person_roles ou

(tick)

v0.8
ownergroupOfNamescm_co_ldap_provisioner_dns DN(tick)v0.8.2

postalCode

organizationalPerson

cm_addresses postal_code

(tick)

v0.8
pwdAccountLockedTimen/a (see pwdPolicy)cm_co_people status (set when status is Expired or Suspended)(error)v1v2.10.0
roomNumberinetOrgPersoncm_addresses room(tick)v0.9.4

sshPublicKey

ldapPublicKey

cm_ssh_keys

(tick)

v0.9

sn

person

cm_names family

Only the primary name attached to the CO Person is exported

v0.8

st

organizationalPerson

cm_addresses state

(tick)

v0.8

street

organizationalPerson

cm_addresses street

(tick)

v0.8

telephoneNumber

organizationalPerson

cm_telephone_numbers

(tick)

v0.8

title

organizationalPerson

cm_co_person_roles title

(tick)

v0.8

uid

inetOrgPerson, posixAccount

cm_identifiers identifier

(tick)

v0.8

uidNumber

posixAccount

cm_identifiers identifier where type is uidNumber

(error)

v0.9

...

Adding Additional ObjectClasses

As of Registry v1v2.10.0, populating object classes and attributes other than those described above is supported via LDAP Schema Plugins.

...