WorkOS Integration Security Review
WorkOS confirms who signed in, not which organisation they should act for. We test that mapping, the domain checks behind it, and how SCIM provisions and removes access. CREST-certified testers, fixed price from £3,180 for a 2-day single-integration scope, quoted within 24 hours.
- Unlimited retesting
- Unlimited pre-retesting
- No hidden fees
“I would highly recommend EJN Labs to any organisation seeking reliable, detailed, and well-managed penetration testing services, particularly for government or enterprise-level projects.”
“There wasn’t another company we could find that could deliver what we needed in the timeframe we needed. The client loved it, and we got instant ROI from the engagement.”
An email domain looks like proof of which organisation someone belongs to, but WorkOS’s own guidance says it isn’t: check the organisation from the profile WorkOS returns, not from the domain on the address.
The organisation a login belongs to should come from the profile WorkOS verifies, not the email domain it arrived on
WorkOS Single Sign-On connects your application to an organisation’s identity provider over SAML or OIDC without your team building either protocol. After a user authenticates, your callback endpoint exchanges a short-lived authorisation code, valid for ten minutes, for a Profile containing the user’s identity and the organisation they signed in through. WorkOS’s own SSO guide states plainly that its SSO API is authentication middleware and does not manage your user database, and it warns against validating that profile by email domain, since an organisation can allow guest addresses from outside its own domain. The organisation a login is trusted for should come from the profile’s own organisation ID, checked on every callback, not the domain the address happens to carry.
Trusting that organisation ID also depends on the domain behind it actually being verified. WorkOS’s Domain Verification flow has an organisation’s IT contact add a DNS TXT record before WorkOS marks that domain verified and fires an event to tell your application. Until that event lands, a domain a customer typed into a setup form is a claim, not a fact, and any feature that assumes it, such as auto-joining new sign-ups from that domain into an organisation, should wait for it. Every domain belongs to exactly one organisation, so the question that matters is whether your application actually gates SSO and Directory Sync features on a domain’s verified state rather than on the domain simply being present.
The rest of a WorkOS integration carries its own risk. Directory Sync delivers SCIM provisioning and deprovisioning through webhooks as employees are added, updated or removed in the identity provider, so someone leaving the directory only loses access in your application once your handler consumes that event and disables the account. WorkOS signs every webhook with a WorkOS-Signature header built from a timestamp and an HMAC SHA256 hash, and if your endpoint does not answer with a 200 OK it retries the same event up to six times over three days, so a handler that skips verification or reprocesses a retried event is a real path in. Where AuthKit sessions are used, the access token is a JWT carrying org_id, role and permissions claims that should be checked against the JWKS WorkOS publishes for your client ID on every request, not trusted from an unverified token. A WorkOS secret key reaching client-side code or a public repository hands out server-level access under a plain Bearer header.
SCOPE
What we pen test on a WorkOS integration
SSO callback and profile handling
Whether the callback endpoint exchanges the authorisation code for a Profile within the ten-minute window WorkOS allows, and whether a Profile is only trusted once that exchange has happened server-side rather than accepted from a client-supplied value.
Organisation mapping from the verified profile
Whether the organisation a login is trusted for is read from the Profile’s own organisation ID rather than the email domain on the account, since WorkOS’s own guidance warns that an organisation can allow addresses from outside its corporate domain.
Domain verification trust boundary
Whether SSO and Directory Sync features that depend on a customer’s domain wait for WorkOS to mark that domain verified through its DNS TXT record check, rather than treating a domain a customer typed into a setup form as already trustworthy.
Directory Sync user provisioning
Whether a new or updated directory user record, including its state, role and custom attributes, is mapped into the correct local account and organisation, and whether a record outside the active state is ever treated as a live user.
Deprovisioning on directory removal
Whether removing or deactivating a user in the identity provider actually revokes their access in your application, since deprovisioning depends entirely on your webhook handler consuming that event and disabling the account rather than WorkOS enforcing it for you.
Webhook signature verification
Whether the webhook endpoint validates the WorkOS-Signature header’s timestamp and HMAC SHA256 hash on every delivery, rejects a stale or unsigned request, and handles the same event being retried up to six times without double-processing it.
Out-of-order and stale event handling
Whether the handler copes with directory events arriving out of sequence, such as a group membership change ahead of the user it references, and checks each record’s own updated timestamp before letting a retried, stale event overwrite newer data.
AuthKit session and access token verification
Where AuthKit sessions are used, whether the access token’s signature is verified against WorkOS’s published JWKS on every request and its org_id, role and permissions claims are read only from that verified token rather than trusted unchecked from the client.
API key exposure and scope
Whether a WorkOS secret key has reached client-side code, a public repository or a log, and what calling the API with it would actually let an attacker do against your organisations, connections and directories.
Application-side access decisions
Whether every route and action re-checks the organisation, role and permissions a session or directory record grants before acting, rather than only using them to decide what the interface shows, so a stale or forged claim cannot reach an action it should not.
OUR PROCESS
WorkOS Integration Security Review: From Scope to Attestation
Map the integration
We catalogue every WorkOS touchpoint in scope: SSO connections and organisations, Directory Sync feeds, webhook endpoints, AuthKit session handling and where API keys are used.
Provision test organisations and directories
We work from test organisations, SSO connections and directories you provision, covering verified and unverified domains and a spread of directory roles, so every mapping and provisioning check runs against real WorkOS objects.
Mapping, domain and webhook exploitation
CREST-certified testers attempt cross-organisation access, domain-trust bypass, provisioning and deprovisioning abuse, and webhook and session tampering.
Reporting and retest
Executive summary, technical report with CVSS scores and reproduction steps, a walkthrough call, and a free retest once fixes are in place.
CREDENTIALS
Verified Accreditations Auditors Accept
Every credential below is independently verifiable. UK procurement teams, FCA supervisors, ISO 27001 / SOC 2 auditors, and cyber insurance underwriters all recognise these standards.
GET YOUR QUOTE
Get a CREST WorkOS pen test quote in 24 hours
A fixed-price quote back in one business day, from a named CREST assessor. No sales pipeline, no chasing.
- CREST and IASME accredited. Testing your auditors and clients already recognise.
- Fast-track testing within 24 hours where required. Free retest of every fix included.
- Live findings via your client portal, not a four-week PDF.
- Fixed price from £3,500 for a single-role, single-app scope, agreed up front. Most engagements run £5,000 and up. No day-rate surprises.
Under NDA Further named references available on a scoping call.
- We reply within one business day with a fixed-price quote from a named CREST assessor.
- You approve the scope and we book a start date, usually within 24 hours.
- Live findings land in your client portal as we test, with a free retest of every fix.
Get your fixed pen test quote in 24 hours
Quote request received
We will reply within one business day with your fixed-price quote from a named CREST assessor.
Your data stays with us. No newsletter signup.
or book a 20-min scoping call first
We reply within one business day. Your data stays with us. No newsletter signup.
COMPLIANCE READY
Reports Mapped to Every Framework
Findings are written so your team can reference the report against each framework without translation work.
ISO 27001:2022
Annex A.8.8 management of technical vulnerabilities plus A.5.15-5.18 and A.8.2-8.5 access control validation.
SOC 2 Type I & II
CC6 logical access, CC7 system operations, CC8 change management evidence.
PCI DSS
Requirement 11.4 application penetration testing across cardholder data environments, including ecommerce penetration testing for online retail platforms.
FCA SYSC
SYSC 4.1.1R, 6.1.1R, 13 mapped to each finding for FCA-regulated firms.
UK GDPR
Article 32 effectiveness testing, customer-data security controls, ICO-acceptable evidence.
Cyber Essentials Plus
Direct certification through our IASME body status, single-vendor delivery.
PRICING
Transparent WorkOS Integration Security Review Pricing
Pricing depends on the number of roles, integrations and environments in scope. See our pricing page for how we quote.
2 to 3 testing days
Single user role, basic CRUD application, marketing website with auth. Around 5 working days from kickoff to report.
Get a fixed quote3 to 5 testing days
Multi-role SaaS, business application with payment integration. Around 8 to 12 working days from kickoff to report.
Get a fixed quote5 to 7 testing days
Multi-tenant platform, complex authorisation matrix, integration-heavy applications. Around 15 to 20 working days from kickoff to report.
Get a fixed quoteSECTORS
Sectors We Test WorkOS For
Sector-specific scoping for regulated UK organisations.
Fintech & FCA-Regulated
FCA SYSC, Open Banking FAPI 1.0, PSD2 SCA, payment-flow scrutiny, KYC/AML testing.
Fintech sector pageSaaS Companies
SOC 2 Type I & II evidence, multi-tenant boundaries, role escalation, customer-tenant isolation.
SaaS sector pageLaw Firms
SRA Cyber Standard, privileged data, conveyancing fraud defence, partner-tier procurement.
Law firm sector pageHealthcare
NHS DTAC, DSP Toolkit v6, UK GDPR Article 32, EHR systems, telehealth platforms.
Healthcare sector pageInsurance
FCA / PRA Operational Resilience, cyber underwriting, claims data, broker portals.
Insurance sector pagePublic Sector
CCS / G-Cloud framework, NCSC-aligned, citizen-facing services, PSN-compliance scrutiny.
Public sector pageWHY EJN LABS
What You Get From WorkOS Integration Security Review
Six concrete differentiators competitors don’t all match.
CREST-Certified Testers, Verifiable
Every test by a CREST-certified pen tester (CRT, CCT APP, CCT INF where applicable). Verify our company status at crest-approved.org.
24-Hour Startup, Where Required
From signed scope to active testing in a single business day for incident response, audit deadlines, or regulator-driven timelines.
Live Findings, Not 4-Week PDFs
Critical issues reported during testing through your client portal. Your team remediates while testing continues.
Audit-Ready Reports
Executive summary plus full technical report with CVSS scores and explicit framework mappings (ISO 27001, SOC 2, PCI DSS, FCA SYSC).
Free Retests, Standard
Verify remediation of every finding before close-out. Letter of attestation for audit submission included. Most competitors charge £1,500-£3,000 per retest.
UK-Based CREST Testers
Every engagement performed by vetted, UK-based CREST-certified testers, matched to your needs, security clearance, and compliance scope.
FAQ
Frequently Asked
What access do you need to test our WorkOS integration?
A test organisation with an SSO connection configured against a mock or your own identity provider, a directory we can point Directory Sync at, and either read access to your webhook and session-handling code or a staging endpoint we can direct WorkOS’s events to. We do not need your production WorkOS secret key.
Will this touch our live user data or production WorkOS environment?
No. Testing runs against a staging or dedicated test WorkOS environment, test organisations and test directories you provision for us. If a shared environment cannot be avoided, we scope the engagement to test accounts only and agree data-handling rules with you before testing starts.
Are you testing WorkOS itself?
No. We test your integration: how your application maps a WorkOS profile to a local user and organisation, verifies domains, consumes Directory Sync events, handles webhooks and sessions, and protects your API keys. WorkOS’s own hosted infrastructure and identity provider connections are out of scope, and we confirm WorkOS’s current customer-testing terms during scoping if an engagement needs to touch anything WorkOS-hosted.
How long does a WorkOS integration test take?
A single-integration scope like this one starts at 2 testing days, with results delivered around 5 working days after kickoff. Multiple organisations, several SSO connections or an extensive directory and role setup take longer; we confirm exact days once we see your configuration.
What is out of scope?
WorkOS’s hosted Admin Portal, its identity provider connections themselves, and its underlying SSO and Directory Sync infrastructure are out of scope. We focus on how your application handles the profiles, domains, directory events, webhooks, sessions and API keys WorkOS gives it.
Do you need our WorkOS secret key?
No. We work with a secret key for a dedicated test environment that you provision. Your production secret key authenticates every API call as your application, so it should never be shared with a third party, including us.
We use Directory Sync with a large or unusual role and attribute setup. Can you still test it?
Yes. We map the directory groups, custom attributes and roles configured for your test directory, and test how each is provisioned, updated and removed in your application, beyond a single default role.
Do you test our webhook endpoint specifically?
Yes. We check that it verifies the WorkOS-Signature header on every request, rejects unsigned or stale deliveries, and handles duplicate or out-of-order events safely, since WorkOS retries failed webhook delivery and does not guarantee delivery order.
20+ CREST-accredited testing services in one place
Web, mobile, API, cloud, AI, infrastructure, red team. Pick the test that fits your environment.
Get a fixed price for your WorkOS integration
WorkOS confirms who signed in, not which organisation they should act for. We test that mapping, the domain checks behind it, and how SCIM provisions and removes access. CREST-certified testers, fixed price from £3,180 for a 2-day single-integration scope, quoted within 24 hours.



