Background

Organizational Identities are intended to record representations of identities created outside Registry, such as those from Identity Providers or Systems of Records. However, in the early days of COmanage, pulling these identities from outside sources was challenging, and so early on the ability to manually create Organizational Identities via Enrollment Flows was added. In retrospect, this was probably a mistake.

Over time, additional complexities have been introduced. Organizational Identity Sources were developed, along with Pipelines. Enrollment Sources were added as a means to tie Org Identity Sources to Enrollment Flows. EnvSource was developed as a more robust means to collect external identities (vs querying $REMOTE_USER when the magic Enrollment Flow configuration is enabled).

Additional background information is available in C-4 Scoping: Reorganizing Organizational Identities, which also describes the desired overall end state.

Issues For Discussion

  1. Review Registry Enrollment Flow Diagram for functionality that needs to be refactored.
    1. Can we more cleanly describe "Petitioner" vs "Enrollee" phases, eg to better distinguish Petitioner Enrollment Authorization from Require Enrollee Authentication?
  2. Automatically update configurations? Or just provide recommendations?
  3. Migrate "legacy" records from old style enrollment flows?
  4. Ensure full provisioning of Org Identity identifiers (and maybe other attributes) to LDAP or other provisioners
  5. Pipeline relation to Enrollment Flows, including Sync Policy or Data Filters for setting status on CO Person created via Pipelines (CO-2021)
  6. See also: CO Person enrollment without an Org Identity (CO-870)
  7. Related Discussion: Syncing Authenticators (SSH Keys, Certificates) from Org Identity Sources to CO Person Records, possibly via Pipeline Plugins (CO-1382), and maybe Authenticators also implementing the Pipeline Plugin interface
  8. Related Discussion: Restarting Enrollment for interrupted petitions (see also CO-1657, CO-431)
    1. ie: leverage petition tokens to reenter an enrollment flow
  9. Related Discussion: Consent: where in the flow does it happen under which scenarios?

Notes For Enrollment Flow Changes

  1. CO Person Record gets created (by the form) before Org Identity
    1. Implies petitioner attributes is required
  2. Move "Require Authentication" out from under "Verify Email"
    1. Self Signup flow should not require email verification, though it may still be desired
  3. Env Source only runs in Identify mode, ie: after email confirmation step
    1. CO Person is already known, so no match strategy needed
    2. This should work for Self Signup, Invitation, and Identity Linking
  4. Need to reconsider if Duplicate Check step needs to be moved/refactored
  5. Populating default values from ENV requires environment variable support (ie: mod_auth_shib/oidc, but not SimpleSamlPHP). Ultimately this could move to some plugin based solution, depending on requirements.
  6. Email Address validation would happen before EnvSource steps runs, which means only the CO Person form address could be validated. See also CO-757.

Backlog Planning

See also JIRA issues identified in C-4 Scoping: Reorganizing Organizational Identities.

Registry v4.0.0 (1H21)

Registry v5.0.0 (Transitional release to prepare for Framework Migration)

Registry v6.0.0 (Registry PE)