Anti-Patterns: Identity & Access · 4 of 5
Shared Identity Runtime
A shared identity runtime turns sign-in, policy, sessions, and access checks into common infrastructure instead of repeated application code.
Every system that protects something must answer the same few questions: who is asking, how sure are we, what are they allowed to do, and what should happen if the answer changes midstream? A shared identity runtime is the place where those questions are answered consistently while applications continue to do their own work. It is not just a login screen, a user database, or a token service. It is the live control layer that carries identity decisions across users, services, devices, sessions, and policies.
Start with the thing being protected
Identity starts because something has value. A file, a payment action, a health record, a deployment button, or an application programming interface, often shortened to API, should not be available to everyone in the same way. Before a system can protect that thing, it needs a way to distinguish one requester from another.
That requester is called a principal. A principal may be a person, a workload, a device, a service account, or another system acting on someone’s behalf. The system then needs authentication, which is the act of proving the principal is who or what it claims to be, and authorization, which is the act of deciding what that principal may do.
If every application builds those steps for itself, the organization gets many small identity systems. They may use different rules, store different session state, log different facts, and fail in different ways. The larger the environment becomes, the harder it is to know what access really means.
What makes it a runtime
A runtime is the part of a system that operates while work is happening. In this context, the shared identity runtime is the common service path that evaluates identity-related facts at the moment a user or service tries to access something.
It receives requests, validates credentials or tokens, applies policy, creates or refreshes sessions, sends claims to applications, records evidence, and sometimes interrupts access when risk changes. Claims are statements about a principal, such as an employee number, group membership, device status, or assurance level.
The word shared matters. The runtime is used by many applications and services, so they no longer each invent their own sign-in logic, token validation patterns, multi-factor authentication flows, or policy checks. The applications still own their business rules, but they rely on a common identity control plane.
The basic access journey
A typical journey begins when a principal asks for access. The runtime gathers proof. For a person, this may include a password, a passkey, a security key, or multi-factor authentication, which means requiring more than one kind of evidence. For a service, it may include a private key, certificate, signed token, or workload identity issued by a trusted platform.
Next, the runtime evaluates context. Context can include the requested resource, device posture, network location, time, user risk, service identity, and the sensitivity of the action. Policy turns that context into a decision: allow, deny, require stronger proof, reduce privilege, or ask for approval.
If access is allowed, the runtime issues or validates a token. A token is a compact package of identity information and permissions that another system can verify. The receiving application should not treat the token as magic; it should verify the token, understand its intended audience, and apply its own local business checks.
What it should centralize, and what it should not
A shared runtime should centralize the parts of identity that become risky when they differ across systems. These include authentication methods, session rules, token formats, token signing keys, policy evaluation, consent, federation, audit events, and emergency controls such as forced sign-out.
It should not centralize every business decision. An expense system still understands expense limits better than an identity service does. A clinical system still understands care relationships better than a generic runtime does. The runtime can provide the principal, assurance, group, role, tenant, and context; the application often knows the final domain-specific rule.
The best boundary is simple: centralize reusable trust decisions, and leave specialized business meaning close to the system that owns the business process.
- Centralize how principals prove identity.
- Centralize how sessions are created, refreshed, and ended.
- Centralize token issuance, validation rules, and key rotation.
- Centralize coarse access policy and risk response.
- Leave fine-grained business rules with the application that owns the domain.
The layers inside a shared identity runtime
Although implementations differ, the pattern usually has layers. At the top are experience flows: sign-in, step-up authentication, consent, recovery, and delegated access. Step-up authentication means asking for stronger proof when the requested action is more sensitive than the current session allows.
Below that are decision services: policy engines, risk scoring, authorization checks, and session state. Below those are trust materials: directories, cryptographic keys, certificate authorities, token signing systems, and federation metadata. Federation means trusting an external identity provider to authenticate a principal and send verifiable identity information.
At the bottom are observability and operations. This is where logs, metrics, audit trails, alerts, configuration history, and break-glass procedures live. Break-glass access is emergency access used when normal controls are unavailable, and it should be rare, monitored, and reviewed.
Why consistency changes security
Security often fails in the gaps between systems. One application may still allow old password rules. Another may accept expired tokens. A third may forget to check whether a contractor has left. A fourth may log too little to reconstruct an incident. These differences create unplanned access paths.
A shared identity runtime reduces those gaps by making the same critical decisions in the same way. It can enforce stronger authentication for privileged actions, shorten risky sessions, rotate signing keys, revoke tokens, and produce a common audit trail. It also gives security teams one place to observe patterns that are invisible inside a single application.
Shared does not mean automatically safe. The runtime becomes important infrastructure. If it is unavailable, too many systems may be unavailable. If it is misconfigured, the mistake may spread widely. If its signing keys are exposed, attackers may be able to impersonate trusted principals. For that reason, the runtime needs careful change control, separation of duties, tested recovery, and continuous monitoring.
Decisions leaders and practitioners face
The move to a shared identity runtime is not only a technical refactor. It changes ownership. Teams must decide which policies are enterprise-wide, which are local, who can change them, how changes are tested, and how exceptions expire. Without governance, shared infrastructure can become a shared argument.
Leaders also need to choose the pace of adoption. Some organizations start with single sign-on, often shortened to SSO, so users authenticate once and reach many applications. Others begin with service-to-service identity because API traffic is growing faster than human traffic. Others focus first on privileged access, where the risk is highest.
Practitioners face design choices that have lasting effects: whether tokens are short-lived or long-lived, whether applications call the runtime on every request or verify tokens locally, whether roles are broad or permissions are specific, and whether policy is written as code, configuration, or both. These are trade-offs among security, latency, availability, operability, and developer experience.
Adopt it without a big bang
The safest adoption path is usually incremental. Start with a small set of applications, a narrow set of policies, and clear success measures. Prove that developers can integrate without special help, that users can recover from sign-in problems, and that operations teams can see and debug what happened.
Next, standardize the contracts. Define required claims, token lifetimes, key rotation expectations, logging fields, error handling, and how applications should behave when the runtime is slow or unavailable. A shared runtime succeeds when its contracts are boring, documented, and dependable.
Finally, remove old paths. Parallel identity systems are sometimes necessary during migration, but they should not become permanent back doors. The end state is not that every application looks the same. The end state is that every application relies on the same trustworthy answers to the identity questions that all systems share.
- Inventory applications, APIs, service accounts, directories, and current sign-in methods.
- Choose one integration pattern and make it easy for teams to follow.
- Migrate a low-risk application, then a high-value application, then a representative service API.
- Monitor failures, latency, token errors, policy decisions, and user recovery flows.
- Retire legacy authentication paths once replacement controls are proven.
Key takeaways
- A shared identity runtime is live infrastructure for authentication, authorization, sessions, tokens, policy, and audit.
- The pattern centralizes reusable trust decisions while leaving specialized business rules with the applications that own them.
- Consistency reduces security gaps, but the runtime itself becomes critical infrastructure that must be protected and operated carefully.
- The main design trade-offs involve security, latency, availability, governance, and developer experience.
- Incremental adoption works best when contracts are clear and legacy identity paths are deliberately retired.
Glossary
- Principal
- A principal is any person, service, device, or system identity that can request access.
- Authentication
- Authentication is the process of proving that a principal is who or what it claims to be.
- Authorization
- Authorization is the process of deciding what an authenticated principal is allowed to do.
- Token
- A token is a verifiable package of identity information, claims, and access details passed between systems.
- Session
- A session is the remembered state that lets a principal continue interacting without proving identity from the beginning each time.
- Policy
- A policy is a rule or set of rules used to make an access decision from identity and context.
- Federation
- Federation is an arrangement where one system trusts another identity provider to authenticate principals and supply identity information.
- Single sign-on
- Single sign-on is a pattern where a principal authenticates once and can reach multiple systems without separate logins for each one.
- Runtime
- A runtime is the part of a system that operates while requests are being handled rather than only during design or deployment.