You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

COmanage Registry is capable of automatically assigning identifiers for members of COs. Identifiers may be assigned on demand, or as part of an Enrollment Flow. If you only want to assign identifiers manually (ie: without the help of auto assignment), this page does not apply to you.

Identifiers can be automatically assigned to CO Person records, not to Organizational Identity records. If you don't know what this means, review Understanding Registry People Types.

Identifier Assignments generally assume a roman character set (ie: ASCII-7, not UTF-8).

Defining Identifier Assignments

COmanage Registry defines the following algorithms for assigning identifiers:

To define an identifier assignment, select Identifier Assignments from your CO's menu. Any already defined assignments will be listed. Click Add Identifier Assignment to create a new one.

Fill in the form, paying careful attention to the following fields:

  • Name: This name must match the type you wish to be populated in cm_identifiers:type. For example, if you wish to assign ePPNs, set the name to eppn.
  • Login: In general, CO Person identifiers are not used to log in to COmanage services (Organizational Identities are), so this should generally be left unchecked.
  • Algorithm: See Specifying Identifier Formats, below.
  • Format: See Specifying Identifier Formats, below. If no format is specified, identifiers will simply be assigned as an integer, eg 109 or 523788.
  • Minimum: For Random identifiers, the minimum value that may be assigned. For Sequential identifiers, the first value to be assigned.
  • Maximum: For Random identifiers, the maximum value that may be assigned.
Specifying Identifier Formats

To understand identifier formats, you should understand the following concepts:

  • Collision Numbers: A number used to take a string that may not be unique and makes it unique. For example, the string j.smith with a collision number added becomes (eg) j.smith.3. Collision numbers can be assigned sequentially or randomly.
  • Parameters: In a format specification, a parameter is replaced with some other string.
  • Sequenced Segment: In a format specification, sequenced segments are incorporated into an identifier in order to generate a unique string. An identifier is first generated from a format without any sequenced segments. If that identifier is not unique, sequenced segments are added until a unique identifier is generated.

Identifier formats can be a bit tricky, so let's start with the easier ones. The parameter (#) means "replace with a collision number". A collision number is the next number that will generate a unique identifier. If your identifier is assigned using the sequential algorithm, it is the next unassigned integer beginning with the minimum value you configured. For identifiers assigned using the random algorithm, the collision number is selected randomly. Only one collision number is permitted in a format.

For example, if a format is specified like C(#), then the character C will be prefixed to the collision number, eg C109 or C523788.

The collision number can be made fixed width by specifying the number of characters n in the parameter as (#:n). For example, the format C(#:8) will generate C00000109 or C00523788.

It is also possible to generate identifiers based on one or more components of a name (as defined in cm_names). The following parameters are available:

  • (G): Given Name
  • (M): Middle Name
  • (F): Family Name

So (G).(F)@myvo.org might generate albert.einstein@myvo.org. To use initials instead of a full name, simply limit the length of the name to 1 character. (G:1).(F)@myvo.org would generate a.einstein@myvo.org instead.

Note that while a length specifier for (#) specifies a fixed width padded with zeros, when used with name-based parameters such as (G), the length specifier indicates a maximum width.

These formats can't guarantee a unique identifier if your organization is non-trivial in size, so a collision number should be added. (G).(F)(#)@myvo.org would generate albert.einstein1@myvo.org.

The problem here is you might not want to append a number for the first albert.einstein, only for the second. Or you might want to try a middle name first. The solution is to add a sequenced segment. A sequenced segment is denoted in brackets as a number followed by a colon, and includes the text (including parameters) to be used when that sequenced segment is in effect. When assigning identifiers, all sequenced segments will initially be ignored. Then, starting with 1 and incrementing by 1 each time, sequenced segments will be added in until a unique identifier is generated.

For example, consider the format (G)[1:.(M:1)].(F)[2:.(#)]@myvo.org. This somewhat confusing string will first generate werner.heisenberg@myvo.org. If that isn't unique, it will then generate werner.k.heisenberg@myvo.org. Finally, it will generate werner.k.heisenberg.1@myvo.org. You should probably set the minimum value in the identifier assignment configuration to start at 2 when used with sequenced segments. That would generate werner.k.heisenberg.2@myvo.org instead, which is presumable less confusing if there is already a werner.k.heisenberg@myvo.org assigned.

The good news is you may not need to know all of this. Various common default formats are available via a drop down menu, and you may be able to just use one of those.

Assigning Identifiers on Demand

Identifiers can be assigned on demand by viewing the identifiers associated with a CO Person. An Assign Identifiers button will be available.

Assigning Identifiers via Enrollment Flows

xxx configure the enrollment flow

Constraints

  1. Identifiers of a given type must be unique within a CO.
  2. If a CO Person already has an identifier of a given type, no additional identifier will be created.

Identifier Reassignment

Random and Name Based identifiers can be reassigned if the original identifier was actually deleted rather than marked status deleted. (Random identifiers are less likely to be reused than Name Based identifiers since their assignment is by definition random.) If you do not wish identifiers to be reassigned, set the status of identifiers that are no longer needed to deleted; do not actually delete them.

Sequential identifiers are not and cannot be reassigned under normal conditions.

  • No labels