Workforce identity without the per-seat bill.

Open source SSO, MFA, directory and SCIM, free up to 100 users, with an API for core Okta resources.

The IdRa console's People page, listing people with their status and last sign-in.The IdRa console's People page, listing people with their status and last sign-in.
GET /api/v1/users?search=profile.email sw "ana"&limit=1Recorded from IdRa, trimmed
[
  {
    "id": "9guA0JYo2KkokOCeGfO8CBp6JpAJaErl",
    "status": "ACTIVE",
    "type": {
      "id": "default"
    },
    "profile": {
      "firstName": "Ana",
      "lastName": "Rivera",
      "email": "ana@example.com",
      "login": "ana@example.com"
    }
  }
]

$0Up to 100 users, apps and servers, with every feature

11Authenticators, from passkeys to RSA SecurID

185Okta SDK operations answered

1Postgres database for each organization

Every door runs the same check. Try it.

OIDC, SAML and the forward-auth gateway all ask these questions, in this order. Change the situation and follow the answer.

Ana opens Payroll

Network
Payroll
Laptop
Risk
Signed in with
  1. Network zoneNot blocked
  2. AssignmentAssigned through Finance
  3. Sign-in ruleCompliant device, so a second factor is required
  4. ProofA passkey is strong enough
Allowed allowed: no denial to log

The rules here are samples: a compliant device at high risk needs a passkey, a compliant device otherwise needs a second factor, and anything else is denied. You write your own, per app.

One door for your people.

Your logo on the sign-in page. Passkeys, push or an authenticator app behind it. Every app they’re assigned on one page.

My Apps, the end-user page with a tile for each assigned app.My Apps, the end-user page with a tile for each assigned app.

Okta’s SDKs work with IdRa.

Change the issuer URL and keep your code. Your scripts keep their calls for users, groups, apps, policies, zones, logs, event hooks and authorization servers, and the Okta Terraform provider works with IdRa too.

migrate.ts
// Change the address. Keep the call.
const client = new okta.Client({
  orgUrl: "https://acme.idra.team",
  token: process.env.IDRA_TOKEN,
  authorizationMode: "SSWS",
});

const users = await client.userApi.listUsers({
  search: 'profile.email sw "ana"',
});

Resources under /api/v1:

  • Users
  • Groups
  • Group rules
  • Apps
  • Authorization servers
  • Policies
  • Network zones
  • Event hooks
  • Logs
  • User risk

Sign-ins and changes leave a record.

Sign-ins, denials, admin changes and provisioning, in one log. Search it, export it to CSV, poll it from the API, stream it to Splunk, or push it to your systems with signed event hooks.

The IdRa audit log, showing events with actor, event type, target and outcome.The IdRa audit log, showing events with actor, event type, target and outcome.

A database per customer, not a column.

Each organization has its own Postgres database, address, signing keys, policies and log. Each request connects to one organization’s database, chosen from its address, and Postgres has no cross-database queries. Host many customers from one deployment, each on a domain they’ve verified.

$0 Up to 100 users. Every feature.

A year for 100 people, at list price before add-ons
  • Okta Essentials$20,400
  • Okta Starter$7,200
  • IdRa$0

IdRa is open source under the MIT license. Read the code, run it yourself, or use the hosted service, free up to 100 users, apps and servers per org.

Is IdRa right for you?

Choose IdRa if

  • Your identity bill grows with every hire
  • You host organizations for your own customers
  • Your apps speak SAML, OIDC and SCIM

What you get

  • Every feature on every plan
  • A database for each organization
  • An open source codebase under the MIT license

Create your organization.

Pick an address and confirm your email, then sign in as its first admin. A setup wizard takes you through the rest.

IdRa’s hosted sign-in page, with a username field, a Next button and a passkey option.