Join our Newsletter — 33% off our NHI Course
Home› Guides› Shared Signals Framework Guide: CAEP and RISC
Guide Identity Visibility, Posture & Threat Detection

Shared Signals Framework Guide: CAEP and RISC

PDF for newsletter subscribers · free to read online

← All guides
By Lalit Choda, NHI Mgmt Group Updated 24 October 2026 16 min read
On this page

When an identity provider disables an account, revokes a session or detects a compromised credential, the applications that trusted its earlier sign-in usually keep honouring sessions and tokens until they expire. The OpenID Shared Signals Framework (SSF) closes that gap by giving identity providers, SaaS applications, device management tools and security platforms a standard way to send each other security events in near real time. Its two main profiles are CAEP, the Continuous Access Evaluation Profile, for session and access changes, and RISC, Risk Incident Sharing and Coordination, for account-level incidents. All three are now Final specifications at the OpenID Foundation. This guide explains how the framework works, what each event means, how to deploy a transmitter or receiver safely and how to measure whether it is working. It is for identity engineers, SaaS platform teams and detection engineers; token and session fundamentals are covered in the Token and Session Security Guide.

Key takeaways

  • SSF is the transport and management layer. It defines Security Event Tokens, subject identifiers, transmitter discovery at /.well-known/ssf-configuration, push and poll delivery, and a stream management API.
  • CAEP carries access changes. Eight event types cover session revoked, token claims change, credential change, assurance level change, device compliance change, session established, session presented and risk level change.
  • RISC carries account incidents. Events such as account disabled (with reason hijacking or bulk-account), credential compromise, identifier recycled and recovery information changed help relying parties protect linked accounts.
  • Receiving a signal is only half the job. Value comes from a documented action per event type, such as ending sessions, revoking refresh tokens or forcing step-up, tested end to end with verification events.
  • The streams themselves are sensitive. A forged or suppressed event can lock users out or keep an attacker in, so authenticate stream management, validate every SET signature and audience, and monitor stream health.

Why continuous signals are needed

Federation is a one-time decision. At sign-in, the identity provider vouches for the user and the application issues its own session and often its own tokens. Later changes at the provider, such as an account disabled by the help desk, a password reset after phishing, a device falling out of compliance or a risk engine flagging a hijack, do not reach the application. The usual workarounds are short session lifetimes, which annoy users, or periodic polling, which is slow and expensive.

SSF replaces both with events. The party that observes a change, the Transmitter, sends a signed event to every Receiver that has subscribed to that subject, and each receiver decides what to do. Signals flow in both directions: an application can transmit to the identity provider just as easily, for example to report that a session was presented from an unexpected network. Microsoft documents its Entra Continuous Access Evaluation as based on CAEP, with resource providers and Entra exchanging events so that tokens stop being honoured after critical changes. The same pattern is central to the continuous verification principle in the Zero Trust Identity Guide.

Specification status

SpecificationStatus (checked 24 October 2026)Role
OpenID Shared Signals Framework 1.0Final, published 29 August 2025Events, subjects, discovery, delivery and stream management
OpenID Continuous Access Evaluation Profile (CAEP) 1.0FinalSession, credential, device and risk change events
OpenID RISC Profile 1.0FinalAccount incident events between providers and relying parties
CAEP Interoperability Profile 1.0Implementer's Draft 1 (still a draft)Narrows options so independent transmitters and receivers interoperate
Earlier Implementer's Drafts (SSF ID3, CAEP ID2, RISC ID2)Superseded by the Final versionsStill found in older products; check which version a vendor implements

The framework builds on IETF standards: Security Event Tokens (RFC 8417), push delivery (RFC 8935), poll delivery (RFC 8936) and subject identifiers (RFC 9493). The OpenID Foundation also lists a formal security analysis of SSF transmitter configuration discovery, dated April 2024.

How the framework works

Security Event Tokens

  • Format: each event is a signed JWT with explicit type typ: secevent+jwt. The events claim holds the event type URI and its fields.
  • Claims: iss must match the stream configuration and the discovery issuer; aud identifies the receiver; jti is unique per token; txn should be set and unique to the underlying event, so related events can be correlated.
  • What is absent: SETs must not include sub or exp. They describe something that already happened, so receivers do not reject them as expired; Google's RISC documentation tells receivers to skip the expiry check for that reason.
  • Forward compatibility: receivers must ignore fields they do not understand.

Subjects

  • Primary subject: the top-level sub_id claim. Older CAEP and RISC events may also use a subject field inside the event, but transmitters must still include sub_id, and new event types use only sub_id.
  • Formats: RFC 9493 identifiers such as email, phone_number, iss_sub and opaque, plus SSF additions jwt_id, saml_assertion_id and ip-addresses.
  • Complex subjects: combine members such as user, device, session, application, tenant, org_unit and group, so an event can target "this user's session on this device". Receivers must discard events containing critical members they cannot process.

Discovery, delivery and streams

  • Transmitter metadata: published at /.well-known/ssf-configuration (inserted before any issuer path, per RFC 8615), listing the issuer, jwks_uri, supported delivery methods, management endpoints, authorisation schemes, critical subject members and default_subjects (ALL or NONE). RISC transmitters may still use the older /risc-configuration path.
  • Push delivery (RFC 8935): the transmitter POSTs SETs to an HTTPS endpoint the receiver supplies. Lowest latency; the receiver must be reachable.
  • Poll delivery (RFC 8936): the receiver fetches SETs from an endpoint the transmitter supplies and acknowledges them. Suits receivers behind firewalls or with bursty processing.
  • Stream management API: create (POST), read (GET), update (PATCH), replace (PUT) and delete (DELETE) a stream; set status to enabled, paused or disabled; add and remove subjects; and request a verification event. Transmitters must send a Stream Updated event when they change a stream's status themselves. The API is optional for transmitters but recommended.
  • Authorisation of management calls: must use standard HTTP authentication unless another trust mechanism exists, and must tie each receiver to its own stream IDs and audience values.

Push or poll

FactorPush (RFC 8935)Poll (RFC 8936)
LatencySecondsDepends on poll interval
Network exposureReceiver exposes an inbound HTTPS endpointReceiver makes outbound calls only
Back pressureTransmitter must retry if the receiver is down; events can be lost after long outagesEvents wait at the transmitter until acknowledged, within its retention limits
Typical fitSaaS applications receiving from an identity providerOn-premises systems, SIEM pipelines, receivers with strict ingress rules

CAEP events and how to act on them

All CAEP event types use the base URI https://schemas.openid.net/secevent/caep/event-type/ and share optional fields: event_timestamp, initiating_entity (admin, user, policy or system), reason_admin and reason_user, the last two keyed by language tag.

Event (URI suffix)Key fieldsTypical receiver action
session-revokedNone beyond common fieldsEnd the matching local sessions and revoke refresh tokens issued on the strength of them
token-claims-changeclaims (required): new valuesRe-evaluate authorisation, for example a role or group removed, without waiting for the next sign-in
credential-changecredential_type (for example password, fido2-platform, x509, phone-sms), change_type (create, revoke, update, delete)Treat a revoked or deleted credential as grounds to end sessions; alert on unexpected additions
assurance-level-changenamespace, current_level, optional previous_level and change_directionRequire step-up for sensitive functions when assurance decreases
device-compliance-changeprevious_status, current_status (compliant or not-compliant)Block or restrict sessions from the device until compliant
session-establishedOptional fp_ua, acr, amr, ext_idCorrelate with the provider's view; detect sessions the provider did not create
session-presentedOptional fp_ua, ext_idDetect a session used from a different user agent than the one that established it
risk-level-changeprincipal (for example USER, DEVICE, SESSION), current_level (LOW, MEDIUM, HIGH), recommended risk_reasonApply the policy for that risk level: step-up, restrict or revoke

Session established and session presented together are a building block for detecting stolen session cookies (MITRE ATT&CK T1539, Steal Web Session Cookie): if a provider and an application share fingerprints, a session presented from an unfamiliar user agent stands out. See the Session Hijacking and Cookie Theft Guide.

RISC events and the RISC profile

RISC targets a different problem: an attacker who takes over a user's email or identity provider account can use it to recover or sign in to every linked account. RISC lets the provider tell relying parties promptly. Event URIs use the base https://schemas.openid.net/secevent/risc/event-type/.

EventMeaningRelying party response
account-disabled (reason hijacking)Provider disabled the account because it was taken overEnd sessions, suspend sign-in and account recovery through that provider
account-disabled (reason bulk-account)Account was part of bulk creation, often abuseReview activity on the linked account
account-enabledAccount restoredRe-enable provider sign-in after your own checks
account-purgedAccount permanently deletedUnlink the federated identity
account-credential-change-requiredUser was required to change a credentialHeightened monitoring of the linked account
credential-compromiseA credential was found compromised; credential_type requiredForce reset if the same credential type is used locally; revoke sessions
identifier-changed and identifier-recycledEmail or phone changed, or now belongs to a different personStop using the old identifier for recovery; a recycled identifier must never unlock the old account
recovery-activated and recovery-information-changedRecovery started or recovery details changedWatch for follow-on takeover of linked accounts
opt-in, opt-out-initiated, opt-out-cancelled, opt-out-effectiveThe user's participation in RISC; events continue for a period after opt-out is requested to deter hijackersTrack the state per subject

The RISC sessions-revoked event is deprecated; new implementations use CAEP session-revoked. Google's Cross-Account Protection is a widely documented RISC deployment, and its documentation shows the practical details: receivers register through a service account holding the RISC Configuration Admin role and the risc.googleapis.com stream API, validate tokens against keys from https://accounts.google.com/.well-known/risc-configuration, return HTTP 202 for valid tokens, and de-duplicate on jti because events may be redelivered. Google sends events only for users who granted the app the profile or email scope, does not currently send them for Workspace users, and still uses the deprecated subject_type field, so receivers need tolerant parsing. For the fraud side of account takeover, see the Account Takeover Prevention Guide.

Choosing a role and an architecture

  • Receiver only: the common starting point for SaaS applications and internal apps that federate to an identity provider. Highest value: session revoked and credential change from the provider.
  • Transmitter only: identity providers, device management and endpoint tools, and risk engines that hold signals other systems need.
  • Both: large platforms and identity providers that want feedback from resource applications, for example IP or device context, which is the two-way model Microsoft describes for CAE.
  • Hub: larger organisations often route signals through one broker or ITDR platform that receives from several transmitters, applies policy and fans out actions, so each application integrates once. See the ITDR Guide.

Small organisations: usually consume SSF through features their identity provider and major SaaS vendors already ship. Ask vendors which SSF, CAEP and RISC versions and event types they support, whether they transmit, receive or both, and what action each received event triggers. Large organisations: need an event catalogue, an owner per stream, a policy per event type and application, and monitoring of stream health as production infrastructure.

How to implement

  1. Define the actions first. For each event type you will accept, write the action, its scope (session, user, device) and who is notified. Without this, events land in a log and nothing changes.
  2. Start with one pair and one event. Identity provider to your most sensitive SaaS application, receiving session-revoked. The CAEP Interoperability Profile requires implementations to support at least one of session revocation, credential change or device compliance change, so most vendors cover one of these.
  3. Configure the stream securely. Discover the transmitter from its well-known metadata, create the stream requesting only the event types you have mapped, register subjects explicitly unless default_subjects is ALL by design, and protect management calls with OAuth. The interoperability profile uses scopes ssf.read and ssf.manage, tokens valid for no more than 60 minutes, sent in the header only.
  4. Validate every SET. Check the kid against the transmitter's jwks_uri, the signature, iss and aud, and reject duplicates by jti. The interoperability profile signs with RS256 using keys of at least 2048 bits and requires TLS 1.2 or later.
  5. Test end to end. Use the verification event to prove delivery, then trigger real events in a test tenant: disable a test user, reset a password, mark a device non-compliant. Measure time from the change to the session actually ending.
  6. Run in observe mode, then enforce. Log the action the receiver would take for two weeks, compare with expectations, then enable enforcement per event type. Roll back by setting the action to log-only, not by disabling the stream, so you keep visibility.
  7. Extend. Add credential change, device compliance and risk level events, then RISC for consumer-facing sign-in, then transmission from your own applications back to the provider.

Where non-human identities fit

SSF subjects are not limited to people: the framework lists devices, tenants, organisational units, groups and applications, and complex subjects can carry an application member. In practice most shipped events concern users and sessions, so do not assume a vendor transmits events about service accounts or OAuth client credentials. The gap matters: in the Salesloft Drift breach, stolen OAuth tokens for one integration were used across many Salesforce tenants from 8 to 18 August 2025 until all Drift tokens were revoked on 20 August, with Google revoking the Drift Email tokens on 28 August. Revocation was coordinated by the vendors through advisories rather than through a standard signal each customer system could act on automatically. Ask providers whether they emit credential-change or token-claims-change for integrations and agents, and pair SSF with the controls in the OAuth Token Theft Incident Playbook.

Detection and measurement

  • Stream health: stream status changes (including Stream Updated events from the transmitter), delivery failures and retries, poll backlog, and time since the last verification event succeeded. A paused or disabled stream silently removes protection; Google notes that it does not buffer events while a stream is paused.
  • Security of the channel: SET signature or audience failures, events from unknown issuers, subject removal requests (the SSF specification flags malicious subject removal and subject probing as threats), and changes to stream configuration.
  • Effect: for each received event, whether the mapped action ran and how long it took. In Microsoft's CAE, critical events are applied in near real time with propagation latency of up to 15 minutes, which is a realistic benchmark.
MetricWhat good looks like
Median time from provider change to session ended at the applicationMinutes, measured with test accounts every month
Percentage of high-risk applications receiving at least session-revokedRising to 100%
Percentage of received events with a completed mapped actionNear 100%; investigate every unactioned event type
SET validation failures per weekNear zero; spikes investigated as possible forgery or key rotation issues
Streams with a successful verification event in the last 24 hours100%
Hours of stream downtime per monthFalling; alerting within minutes of failure

Common failure patterns

  • Ending the session but not the tokens. A receiver that clears its web session on session-revoked but leaves refresh tokens and API tokens valid leaves the attacker's access intact.
  • Subscribing without acting. Events reach a SIEM, nobody owns the action, and the application keeps serving the session.
  • Subject mismatch. The transmitter sends iss_sub while the receiver indexes users by email, so events match nobody. Agree formats up front; the interoperability profile requires receivers to accept email and iss_sub.
  • Weak stream management authorisation. A shared, long-lived token for the management API lets anyone holding it remove subjects or disable the stream, quietly turning off protection.
  • Rejecting SETs as expired or treating them as access tokens. SETs carry no exp and are not credentials; applying access token validation logic breaks delivery.
  • Version drift. Products built on Implementer's Drafts use older field names, such as subject instead of sub_id or RISC subject_type; parse tolerantly and test against each peer.

Framework mapping

FrameworkReferenceRelevance
NIST SP 800-53 Rev. 5AC-2, AC-12, IA-11, SC-23Account management changes, session termination, re-authentication, session authenticity
NIST SP 800-53 Rev. 5SI-4, AU-6, IR-4Monitoring, review of audit records, incident handling driven by shared events
NIST CSF 2.0PR.AA-05, DE.CM-03, DE.AE-02, RS.MI-01Enforced authorisations, activity monitoring, event analysis, containment
MITRE ATT&CK v20T1539, T1528, T1550.001, T1078.004Session cookie theft, token theft and reuse, cloud account abuse that signals help contain
MITRE D3FENDD3-ST Session Termination, D3-WSAA Web Session Activity AnalysisThe countermeasures receivers implement on CAEP events
ISO/IEC 27001:2022 Annex A5.18 Access rights, 8.5 Secure authentication, 8.16 Monitoring activitiesControl homes for revocation, authentication state and event monitoring

Practitioner checklist

  • Inventory which of your identity providers, SaaS applications and device tools transmit or receive SSF events, and which spec versions they implement.
  • Write an action per accepted event type, with owner and scope, before enabling any stream.
  • Start with session-revoked from the identity provider to your most sensitive applications.
  • Make receivers revoke refresh and API tokens as well as web sessions.
  • Validate SET signature, iss, aud and jti on every event, and never check exp.
  • Protect stream management with short-lived OAuth tokens scoped to ssf.read and ssf.manage.
  • Agree subject identifier formats with each peer and test matching with real accounts.
  • Alert on stream pause, disable, delivery failure and missing verification events.
  • Measure time from provider change to session end every month with test accounts.
  • Ask vendors whether they emit events for integrations, OAuth clients and agents, not only users.

Standards and references

Related NHI Mgmt Group resources: Token and Session Security Guide · Zero Trust Identity Guide · Fraud and Cyber Convergence Guide · Conditional Access Guide · OAuth 2.1, GNAP and FAPI Guide

PDF for subscribers

Take this guide with you

Every section, table and checklist in one PDF, with links to the sources and related guides. Subscribe to our weekly NHI & AI Identity Journal and we’ll email you a download link.

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.

NHIMG Editorial Note
Written and reviewed by Lalit Choda, NHI Mgmt Group. Last updated 24 October 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org

PDF Downloads for Newsletter Subscribers

Get the guide

Enter your details and we’ll email you a download link.

The full guide is free to read online. The PDF is a thank you for subscribing.

Fill in all fields marked * and tick the PDF box to continue.