Versions Compared

Key

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

...

COmanage Registry defines the following algorithms for assigning identifiers:

Algorithm

Description

Examples

Name

Identifiers assigned based on elements of a person's name, including initials. Collision numbers are used when names are not unique.

albert.einstein@myvo.org, ae89

Random

Identifiers are assigned based on random numbers, with optional additional characters.

93510477, N290017

Sequential

Identifiers are assigned based on sequential numbers, with optional additional characters.

101, P003561

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.

...

  • 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: As described above 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. For Sequential identifiersIf your identifier is assigned using the sequential algorithm, it is the next unassigned integer beginning with the minimum value you configured. For Random identifiers assigned using the random algorithm, the collision number is selected randomly. Only one collision number is permitted in a format.

For example, if Random and Sequential identifiers are assigned the same way. If no format is specified, they will simply be assigned as an integer, eg 109 or 523788. 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.

That's all there is to Random and Sequential identifier assignment. Name-based identifier assignment is more complicated. First, several new parameters can be used to select the component It is also possible to generate identifiers based on one or more components of a name (as defined in cm_names) to be used. The following parameters are available:

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

...

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

...

Wiki Markup
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.2@myvo1@myvo.org}}. (Name based collision numbers alwaysYou 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 any all of this. Various common default formats are available via a drop down menu when defining Name based identifier assignments. You , and you may be able to just use one of those.

...