Core Identity Hub · Technical governance

12 minute readReview draft

One identity across systems does not mean one permission model

Single sign-on is the visible part of identity architecture. The difficult work is keeping provider assurance, internal identity, lifecycle synchronisation, tenancy, and domain authority separate enough to remain trustworthy.

The misleading success

A successful login answers the smallest identity question

The browser returns from Microsoft, Google, MitID, or another provider. The signature is valid. A name and identifier are present. The user sees the application. It is tempting to call the integration complete because this is the moment everybody can observe.

What the application actually learned is narrower: one provider made one assertion about one session under one assurance context. It has not learned whether this is the same person who used another provider last month, which organisation they currently belong to, whether an upstream suspension has arrived, or whether they may approve a payment inside this product.

Identity architecture fails when proof of personhood is allowed to become proof of authority by convenience.

Responsibility map

Four truths travel together. They should not be owned together.

01 · decision

Provider assurance

How the person proved who they are, and at what assurance level.

02 · evidence

Canonical identity

Which stable internal person or organisation the assertion maps to.

03 · decision

Lifecycle state

Whether the account is current, changed, suspended, or no longer present.

04 · refused

Domain authority

What this person may decide inside this product, tenant, or workflow.

The filled final block is deliberate: authority terminates in the product. The hub supplies identity context; it does not grant domain power.

The responsibilities are connected but intentionally terminate in different places. The product remains accountable for authority in its own domain.

The stable boundary

Normalise identity, not assurance

A provider-neutral hub gives products a stable internal subject and a consistent way to receive identity context. Its provider boundary is designed to support MitID, workforce Microsoft accounts, and consumer Google accounts, resolving them to the same internal person while preserving the assurance context, contractual constraints, and recovery properties that make those assertions meaningfully distinct.

Preserve those properties in the identity envelope. The product may not care during an ordinary read, but a high-impact action may require recent authentication, a particular provider, or a stronger assurance level. Provider neutrality means the product does not implement every protocol. It does not mean every assertion becomes equivalent.

Consider how this operates across independent products in the ecosystem: an operator in Garage CRM holds authority over vehicle reservations, rental contracts, and asset releases. That same person authenticated in Grand Total holds authority over member subscriptions, payment reconciliations, and financial reporting. The hub normalises who they are; the products retain complete, independent ownership of what they are allowed to decide.

LayerOwnsMust preserve
Identity providerAuthentication ceremony and provider accountProvider identifier, time, method, and assurance context
Core Identity HubMapping, federation boundary, and stable internal subjectProvenance, link history, lifecycle state, and conflicts
Directory sync (SCIM)Upstream attributes, provisioning, and affiliation changesSource ownership, timestamps, deletions, and reconciliation outcome
Domain productTenant membership, roles, delegation, and approval authorityWhy access was granted and which local rule allowed it

Two paths

Sign-in is immediate. Synchronisation is reconciled.

Interactive sign-in

01 · decision

Provider assertion

A signed assertion arrives with provider-specific context.

02 · evidence

Mapping

The hub resolves it to a stable internal identity.

03 · decision

Product session

The product evaluates local tenancy and authority.

Lifecycle reconciliation

01 · decision

Directory change

A profile, affiliation, or active state changes upstream.

02 · decision

Conflict check

The hub compares source time, ownership, and previous state.

03 · refused

Apply or quarantine

Safe changes propagate; ambiguous ones become visible work.

Sign-in is a synchronous decision about a session. Lifecycle synchronisation is a reconciliation process that must tolerate delay, repetition, conflict, and missing upstream context.

Synchronisation

A directory event is not an instruction to overwrite the product

User information can arrive through provider claims, administrative APIs, scheduled imports, or a provisioning protocol such as SCIM where the provider supports it. These mechanisms do not remove the source-of-truth question. They make it unavoidable.

Each field needs an owner. A legal name may belong upstream. A preferred display name may belong to the product. Employment status may suspend workforce access while a historical approval record must remain attributable to the same person. Deletion may mean deactivate, unlink, anonymise, or retain under another obligation. “Keep users in sync” is not a rule until those decisions are explicit.

  • Treat provisioning messages as idempotent: repeats must not create a second identity or reapply a completed transition.
  • Quarantine ambiguous links rather than merging people on a convenient email address.
  • Record the source and time of every attribute that may be overwritten.
  • Separate loss of upstream access from deletion of domain history.
  • Run reconciliation so missed events become visible instead of permanent drift.

Linking and recovery

Account recovery is where identity mappings are put under pressure

Provider federation works cleanly while every person keeps one account and every identifier remains stable. Recovery breaks that assumption. A person loses a device, changes employer, receives a new provider account, or returns after an account was deactivated. The convenient response is to link on email address. That is also how two people can be merged when an address is recycled, renamed, or entered incorrectly.

Linking therefore needs evidence separate from sign-in. A provider assertion can prove control of the new account; it does not prove that the new account should inherit the history and authority of an existing internal subject. Depending on consequence, a safe link may require an authenticated session on both accounts, an organisation administrator, an out-of-band recovery process, or manual review. The hub should record who approved the link, which evidence was present, and which previous mappings were replaced.

Recovery situationUnsafe shortcutRequired control
New provider accountMatch the existing subject on email aloneVerify both identities or route the proposed link for review
Organisation transferCarry previous tenant roles into the new affiliationCreate the new membership explicitly and retain the old one as history
Lost authenticatorLet product support bypass provider recoveryKeep authentication recovery with the provider and product authority with the product
Incorrect mergeDelete one mapping and continueSuspend affected access, restore mapping history, and review actions made under the merged identity

Recovery also needs a product response. If an internal subject is suspended because its mapping is disputed, connected products must know whether to end sessions immediately, block only high-impact actions, or permit read-only access while an investigation runs. That decision cannot be improvised during an incident. It belongs in the identity contract and should be exercised before the first real account dispute.

Failure design

The dangerous identity failures look successful

An unavailable provider is obvious. The subtler failures are a stale role that still works, two provider accounts linked to the wrong person, a deactivation event that never arrived, or a tenant switch that reuses authority from the previous organisation. These cases return valid tokens and ordinary HTTP responses. Availability monitoring will not find them.

FailureContainmentOperational signal
Ambiguous account linkRefuse automatic merge; require a reviewed linkQuarantine queue age and repeated match attempts
Missed deactivationReconcile active subjects against the upstream sourceDrift count, oldest unresolved drift, high-risk active drift
Provider unavailableRetain only the session behaviour the risk model permitsProvider error class, affected login path, recovery time
Wrong tenant contextBind tenant selection and local authority into each decisionCross-tenant denial events and context-switch anomalies
Compromised mappingSuspend the internal subject and preserve audit historyMapping changes, emergency suspensions, linked provider count

Operations

Run identity as a control plane, not a login library

The hub needs ownership beyond feature delivery. Provider keys and certificates rotate. Claim shapes change. Organisations rename, merge, and split. Accounts are recovered. Linking rules evolve. Each change can affect every connected product, while the products still carry different consequences for being wrong.

Operate the hub with versioned adapters, synthetic sign-in checks, reconciliation jobs, an auditable mapping history, and a defined emergency path for suspending an internal subject. Provider incidents should show which products and authentication paths are affected. Recovery should distinguish restoring sign-in from repairing identity drift created during the incident.

The hub should make a provider replaceable without making identity history disposable.

The counter-case

One product and one provider may need no hub

A single application with one stable provider, no cross-system identity, and a small user lifecycle may be clearer when it integrates directly. A hub added before there is a second consumer can create mapping, availability, and operational work without removing any real duplication.

The threshold is not a number of login buttons. It is the first repeated identity decision: a second product, a second provider, a shared person represented differently, or an assurance rule several systems would otherwise interpret independently. That is where a stable boundary begins to pay for itself.

Continue through the system

The reusable unit is assurance

Why shared delivery foundations must preserve product-specific evidence and release authority.

Read the article

Share utilities without sharing business logic

How a thin policy and transport layer supports several domains without becoming their owner.

Read the article

Let's talk about your challenge

If your organization is working with complex digital systems or exploring operational AI, we are always open to a conversation.