Open-source alternative to Okta API Access Management: the short answer
If your Okta Enterprise suite is up for renewal, or you need to issue tokens in-house rather than through a hosted service, Keycloak (Apache 2.0) covers most of what a custom authorization server does: OAuth 2.0 and OpenID Connect clients, scopes as client scopes, claims through protocol mappers, and service accounts for machine-to-machine tokens. Ory Hydra (Apache-2.0) is the alternative when you already run your own login and consent UI and want a hardened, OpenID Certified token server that delegates user management to your existing system through headless APIs. Neither is a one-to-one copy of Okta's API Access Management, so treat the mapping as a starting point for your own review.
The gaps to verify are specific. Okta's custom authorization server policies, rule-level conditions and token lifetimes per policy need to be re-expressed in Keycloak's flows, client policies and realm settings, or in Hydra's configuration and your login service. Check how each candidate handles the hosted features your apps rely on, such as token inline hooks, key rotation workflows and the admin tooling your team uses today. Confirm the exact protocol and grant types each application uses, including any Resource Owner Password Credentials flows, because Ory documents the Hydra ROPC grant as part of its enterprise license rather than the open source build.
DeployOpen plans, implements and supports this in your own infrastructure, from cloud accounts and data centers to air-gapped networks. The first step is a written inventory of every authorization server, scope, claim and client credential in use, followed by a gap assessment that names what each candidate can and cannot reproduce. We do not claim feature parity with Okta, and the scope, deliverables and timelines are agreed in writing before work starts.
Which Keycloak or Ory component covers each Okta API Access Management capability
This table maps each Okta API Access Management capability to the Keycloak or Ory component that usually takes it over, with a coverage note for each row. Read the coverage column first, since the items marked for confirmation need checking against current documentation and your own authorization model before you commit to a design.
| Okta capability | Keycloak or Ory component | Coverage note |
|---|---|---|
| Custom authorization server (issuer, keys, audience) | Keycloak realm with its OpenID Connect issuer, or Ory Hydra as a standalone OAuth 2.0 and OIDC server | Keycloak realms isolate users, clients and signing keys; Hydra issues tokens but expects a separate login and consent app. Confirm how many issuers you need and whether each needs separate users. |
| Custom scopes | Keycloak client scopes assigned to clients as default or optional scopes | Scopes map directly to Keycloak client scopes. Confirm how your scope names will appear in tokens and whether any consent screens are needed. |
| Claims in access and ID tokens | Keycloak protocol mappers on client scopes or clients, including user attribute, role and audience mappers | Covers most common claim shapes. Confirm that custom claims built from complex Okta expression logic can be expressed as mappers or need a custom provider. |
| Access policies and rule granularity | Keycloak client policies and authorization services policies; Ory Keto for resource-level relationships | Keycloak policies cover role, group, client and time conditions. Confirm the rule granularity you need against current Keycloak docs, since Okta rules are matched per app and per condition set. |
| Machine-to-machine client credentials | Keycloak confidential clients with service accounts, or Ory Hydra client credentials grant | Both support the client credentials flow. Confirm that the service account roles and token contents match what your resource servers expect. |
| Token lifetimes | Keycloak realm and client token settings for access, refresh and offline token lifespans; Hydra lifespan configuration per client | Lifetimes are configurable per realm and client. Confirm the values with your security team and test refresh behavior with long sessions. |
| Signing key rotation | Keycloak realm keys with multiple active providers and rotation; Hydra JSON Web Key sets managed through its admin API | Confirm the rotation procedure and how resource servers refresh their cached keys, since stale caches cause token validation failures. |
| Token introspection and revocation | Keycloak token introspection and revocation endpoints; Hydra introspection and revocation endpoints | Both expose standard endpoints. Confirm the caching behavior at each resource server, because introspection latency is a design choice, not a platform default. |
| Resource-level permissions | Keycloak fine-grained authorization services; Ory Keto with its Zanzibar-based relationship model | Okta does not map one-to-one to either. Confirm how resource servers, scopes and permissions are modeled before migrating any policy. |
How Okta authorization servers map to Keycloak realms and clients
The first decision is where each Okta custom authorization server lands in Keycloak. An Okta custom authorization server has its own issuer, scopes, claims and access policies, so the closest Keycloak equivalent is usually a separate realm when the token audiences, user populations or signing keys must be isolated. When several authorization servers share the same users and only differ in scopes, a single realm with distinct client scope sets is often enough. Map each Okta authorization server to one of these two shapes on paper before you touch the server, and record which applications request tokens from which issuer, because that list drives the client migration and the redirect URI cutover.
Within the chosen realm, the Okta objects translate in a predictable way. Okta custom scopes become Keycloak client scopes, which can be marked as default or optional for each client. Okta claims become protocol mappers attached to a client or a client scope, and each mapper decides which user attribute, role or group lands in the access token, ID token or userinfo response. Machine-to-machine applications, which use the client credentials grant in Okta, become confidential clients with service accounts enabled in Keycloak. The service account is a user the client authenticates as, so its roles and attributes must be granted deliberately. Confirm in your own environment that each resource server validates the aud, scope and iss values Keycloak now issues, because these differ from Okta's defaults.
Keycloak can export a realm to JSON with the kc.sh export command and import it with kc.sh import, which makes the configuration portable between test and production. The Keycloak importing and exporting realms guide warns that this process has limitations as a backup and restore mechanism and that all nodes must be stopped while it runs. Treat the export as a configuration snapshot, not as your backup. Keep a separate database backup strategy, and plan a maintenance window for any export taken from a live cluster. Client secrets and some credentials need separate handling, so confirm during a test import exactly which values are carried over and which must be reissued.
Keycloak or Ory Hydra: which fits your authorization model
Keycloak is an open source identity and access management server licensed under Apache 2.0, and it serves OpenID Connect, OAuth 2.0 and SAML 2.0 from one process. For an Okta API Access Management replacement, the authorization server role maps to a realm and its clients, client scopes and protocol mappers, while machine-to-machine tokens use confidential clients with the client credentials grant. Its admin console covers most day-to-day configuration without custom code, and its fine-grained authorization services let you model resource permissions inside the same server.
- Single server for protocols: OIDC, OAuth 2.0 and SAML 2.0 run from one deployment, so workforce apps and API clients share one configuration model.
- Admin console and Operator: the console manages realms, clients and scopes, and the Keycloak Operator manages Keycloak, KeycloakRealmImport, KeycloakOIDCClient and KeycloakSAMLClient resources on Kubernetes.
- Fine-grained authorization services: resource and policy definitions can be kept in the server rather than in each application.
- Supported databases: production deployments can use PostgreSQL 14 to 18, among other supported engines, while the development file database is for testing only.
- Upgrade discipline: the Operator documentation strongly recommends manual approval mode for operator updates to avoid unintended automatic upgrades.
Before committing, confirm with the Keycloak documentation which grant types, token lifetimes and client policies your Okta policies use, and test each one against a non-production realm.
Ory Hydra is a hardened, OpenID Certified OAuth 2.0 server and OpenID Connect provider, licensed under Apache-2.0. It does not ship its own login screens, user store or consent pages. Instead, it calls your login and consent application through headless APIs, so your team owns the user experience and the decision logic. Ory Kratos typically supplies identities and authentication flows, and Ory Keto supplies permissions based on a Zanzibar-style model with ACL and RBAC support. Together they can replace an Okta custom authorization server, but the composition is more work than a single product.
- Token server only: Hydra issues and introspects tokens, while login and consent logic lives in an application you build and maintain.
- Paired components: Kratos handles identities and MFA such as TOTP, and Keto evaluates fine-grained permissions for resources.
- Separate release streams: Kratos v26.2.0 and Hydra v26.2.0 were both published on March 20, 2026, and each component is upgraded and tested on its own.
- Enterprise features: the Ory Enterprise License covers the Hydra ROPC grant, along with 24/7 support SLAs and timely CVE patches for self-hosted deployments.
- Open source positioning: Ory describes Ory Open Source as suited to evaluation, development and deployments where occasional upgrade downtime is acceptable and guaranteed CVE patching is not required.
Confirm whether your Okta flows depend on the resource owner password credentials grant, since Ory reserves it for the enterprise license, and agree with your security team who will own patching for each component.
The core trade-off is where the authorization logic lives. Keycloak bundles login, consent, user storage and token issuance, so the team operates one server and configures most behavior through the console. Hydra separates the token server from the user experience, which gives more control over login and consent screens but moves that code, its testing and its security review onto your team. Neither choice is free of operations work, and the cost differs by the amount of custom code you would otherwise write.
- Build versus configure: Keycloak asks you to configure clients, scopes and mappers, while Hydra asks you to write and host the login and consent application.
- Ownership of security logic: with Keycloak, a single vendor-maintained codebase handles session and consent behavior, whereas with Hydra your application code is part of the attack surface.
- Patch and support scope: Keycloak has one upgrade path, and Hydra adds Kratos and Keto versions to coordinate.
- Recurring cost drivers: custom login code, component upgrades and any Enterprise License subscription recur, while initial configuration is largely one-time.
- Quote requests: ask for a written scope covering each component, the login and consent application, and the upgrade calendar.
Decide which of these trade-offs your team can carry, then run a proof of concept using your real token flows before you choose.
What running the authorization server yourself involves
Running Keycloak as your authorization server means owning its availability, and the first decision is the high availability architecture. Keycloak documents a single cluster that can be spread across availability zones, multi-cluster deployments (v2) that do not need an external Infinispan cluster, and the deprecated multi-cluster v1 model that used a separate Infinispan cluster per site. Avoid planning new work around v1. Both supported designs depend on a synchronously replicated database, so token issuance and client configuration stay consistent across nodes. Confirm the database replication model with your DBA before you size the cluster, because an asynchronous replica can hand out tokens that a failed-over node does not recognize.
Keycloak's release cadence sets your upgrade workload. The project plans four minor releases a year and a major release every two to three years, and says breaking changes in a minor release will be opt-in, according to the Keycloak blog on backwards compatibility. The current release is 26.8.1, published October 13, 2026. Set a standing test cycle that runs your clients' token flows, scope mappings and custom authenticators against each minor release in a non-production realm. For the Operator, the documentation strongly recommends manual approval mode for updates, so an upgrade happens only when your change board approves it. For large deployments, consider manual schema migration, where your team applies the SQL itself rather than letting Keycloak migrate at startup, and keep the export of realms and clients as a rollback reference. Realm export and import is documented as a limited backup mechanism and requires all nodes to be stopped, so it does not replace a database backup strategy.
Operations also cover metrics, TLS and key management, and on-call. Keycloak exposes metrics for monitoring token issuance and failures, so wire them into your existing observability stack and alert on login errors and token endpoint latency. Plan certificate rotation for the HTTPS endpoints and the realm signing keys that resource servers use to validate tokens, and decide who can rotate keys without breaking active sessions. Patching is shared: the open-source project publishes releases, but your team or DeployOpen under a written scope carries the work of testing, applying and verifying them. Ask every party to state, in writing, who responds to a failed node at 2 a.m., who approves emergency CVE patches, and what the escalation path to the Keycloak community or a commercial support provider looks like. The Keycloak production configuration guide is the starting checklist for these settings.
Where open source does not match Okta API Access Management one for one
Okta API Access Management bundles authorization servers, policy rules, hooks and operations into one hosted service. Keycloak and Ory Hydra cover the core token model, but several pieces of that bundle are either absent or become your responsibility. Each card below names one gap, what to verify in your own environment, and the usual workaround.
Policy rule expressions and hosted policy UI
Okta lets administrators write access policy rules per authorization server, scoped by client, group and scope, and edit them in the Admin Console. Keycloak expresses similar decisions through client scopes, role mappings and authorization services, while Ory Hydra leaves the decision logic to your own login and consent application. Verify each Okta rule against an equivalent Keycloak or Hydra mechanism before cutover. Workaround: rebuild rules as Keycloak client scope and role assignments, or write a Keycloak SPI or a Hydra consent handler that encodes the rule set in version-controlled code.
Managed key rotation and hosted operations
Okta rotates and manages the signing keys for its authorization servers as part of the service. With self-hosted Keycloak or Hydra, your team owns key generation, rotation schedules, storage in a secrets manager or HSM, and the publication of new keys to resource servers before old keys retire. Verify who runs rotation, how JWKS caches in your APIs behave during a rotation, and how you restore keys after a database failure. Workaround: script rotation as a scheduled job and test it in a non-production realm before the first live rotation.
Vendor support and patch commitments
Okta provides a hosted service with its own support and incident process. Open-source Keycloak and Hydra are community-supported unless you buy a subscription. Ory states that its open-source builds are a fit where occasional upgrade downtime is acceptable and guaranteed CVE patching is not required, and it offers the Ory Enterprise License with 24/7 support SLAs and timely CVE patches. Verify what your contract needs for response times and patch windows, and whether a commercial subscription or retainer will cover them. Accept the gap where community support meets your risk tolerance, and document the decision.
Workflow hooks on token events
Okta Workflows can run automations when an app or token event happens, such as calling an external system before a token is issued. Keycloak exposes event listeners and custom authenticators through Service Provider Interfaces (SPIs), and Hydra can call a webhook at the consent and login stages. Verify which token events your automations depend on, and whether each one fires at issuance, refresh or revocation. Workaround: implement a Keycloak event listener SPI for audit and notification flows, or route Hydra consent requests through a service you control.
Hosted rate limits and observability
Okta enforces rate limits on its APIs and surfaces request and token metrics in its own consoles. A self-hosted authorization server has no default throttle beyond what your reverse proxy and load balancer apply, and metrics are only as complete as the exporters you enable. Verify the request volumes your largest clients generate, the metrics you need for alerting, and how token endpoint saturation shows up in your monitoring. Workaround: enable Keycloak's metrics endpoint, add rate limiting at the ingress layer, and forward logs to your existing SIEM.
Custom token inline hooks
Okta inline hooks let you call your own service during token minting to add or change claims. Keycloak covers many claim needs with protocol mappers and client scopes, but custom logic that reads external data at token time usually needs a custom protocol mapper or authenticator written in Java. Hydra handles this through its headless login and consent flow, where your service supplies the claims. Verify which claims depend on external lookups, their latency budget, and whether your team can maintain the extension. Accept the gap where a static mapper meets the requirement, and avoid extension code where a simpler mapper works.
How to move API authorization from Okta without breaking clients
This sequence moves custom authorization servers, scopes and machine-to-machine tokens from Okta to Keycloak clients and client scopes, or to Ory Hydra, while keeping every API client working until each one is cut over. The output is a documented, client-by-client cutover with a decommissioned Okta authorization server.
Inventory authorization servers, scopes and machine-to-machine apps
Your identity team and the owners of each protected API list every custom authorization server in the Okta Admin Console under Security, API, and record each scope, claim, access policy and rule. Then they list every OIDC application that uses the client credentials grant, along with the resource servers that accept its tokens. Okta's export options cover users and some reports, but they do not carry authorization server configuration, policies or app integrations, so this inventory is written by hand or pulled through the Okta management API. The step is done when every API has an owner and a row in a shared register showing issuer, audience, scopes, token lifetime and consuming clients.
Rebuild realms and clients in a non-production instance
Platform engineers create a non-production Keycloak realm, or an Ory Hydra instance, and recreate the register's entries as client scopes, clients and audiences. Okta app and policy configuration has to be rebuilt rather than imported, as the export guide explains, so each scope and client is entered from the register, not copied from a file. Test clients are registered with the same redirect and grant settings as production. The step is done when a test client can obtain a token from the new issuer and a test resource server validates its signature and audience.
Map claims and token lifetimes
Security engineers compare each Okta claim and access policy rule with the matching Keycloak protocol mapper or client scope mapping, including custom claims, group or role claims and the audience value. They also compare access token lifetimes and refresh behavior, and record any difference that changes what a resource server sees. Keycloak's realm and client settings are the source for these values, so a reviewer checks them against the Keycloak server administration guide. The step is done when a signed comparison table shows every claim and lifetime as matched, deliberately changed, or dropped, with an owner for each change.
Run dual issuance with resource servers that accept both issuers
Resource servers are updated to accept tokens from both the Okta issuer and the new issuer, and to check audience and scope against the register rather than the issuer alone. Clients keep receiving Okta tokens during this period, so no consumer changes yet. Teams test a sample of requests against each protected API with tokens from both issuers and confirm that authorization decisions match. The step is done when both issuers are accepted in production, decisions are identical in the test matrix, and logs show which issuer each request used.
Cut over client by client
Each consuming application is moved to the new issuer one at a time, starting with the lowest-risk clients and ending with those that have the widest impact. Owners change the token endpoint, issuer and client credentials, then confirm that their calls succeed and that the resource server logs the expected issuer. Rollback means pointing the client back to Okta while dual issuance remains active. The step is done when the register shows every client on the new issuer, and each owner has signed off on their cutover.
Rotate client secrets and signing keys
After cutover, the team rotates the client secrets for all migrated machine-to-machine clients and generates new realm or Hydra signing keys so that no key material was shared with the Okta tenant. Secrets are stored in your organization's secrets manager and not in configuration files. Keycloak's production guidance and the Ory documentation describe how keys are managed in your environment, and teams should confirm the rotation procedure for the version they run. The step is done when old secrets are revoked, key rotation is recorded, and a test token issued after rotation validates at every resource server.
Decommission Okta authorization servers
Once the register shows no traffic to the Okta authorization servers over an agreed observation period, the team removes the dual-issuer acceptance from resource servers, disables the Okta custom authorization servers and archives their configuration export and the completed register. Okta licensing for API Access Management should be reviewed with your account team before the subscription is changed, since the contract terms decide when it can end. The step is done when the Okta authorization servers are disabled, only the new issuer is accepted, and the archived records are stored where your audit team can retrieve them.
Keeping Okta for workforce login while self-hosting token issuance
Many teams do not need to move every login at once. These four patterns separate who authenticates employees from who issues API tokens, so each piece can change on its own schedule. Each one changes which issuer and signing keys your resource servers must trust, so the choice shapes the cutover plan.
Okta as the workforce identity provider
Keycloak can accept an external identity provider and broker employee logins to Okta over OIDC or SAML, so users keep signing in through Okta while Keycloak issues the tokens your APIs consume. Keycloak then becomes the single token issuer for clients, and Okta stays the place where employees authenticate and where Okta policies apply. Before you choose this path, confirm which Okta claims, groups and attributes reach Keycloak and how they map to client scopes, since that mapping determines what each token contains.
Keycloak for API tokens only
In this pattern, Keycloak handles machine-to-machine client credentials and API tokens for services, while employees keep signing in to Okta-protected applications directly. Service clients, scopes and audience mappings live in Keycloak, and the rest of the workforce login path stays unchanged. This keeps the blast radius small, but it means two token sources exist, so check which resource servers accept which issuer and whether any app mixes both tokens in one request.
Ory Hydra beside Okta SSO
Ory Hydra is an OAuth 2.0 and OpenID Connect server that integrates with an existing user management system through headless APIs, so it can issue tokens while Okta continues to handle workforce sign-in. Hydra's login and consent flow would call your own login service, which must then be built and operated by your team. Confirm that the Apache-2.0 open-source release covers the grant types and client features you need, because the Ory Enterprise License adds capabilities such as the Hydra ROPC grant.
Issuer and JWKS changes at cutover
Each resource server validates tokens against an issuer URL and the signing keys published at its JWKS endpoint, so moving token issuance changes both values. Plan for a period where APIs accept tokens from the old and new issuers, and test that each server reads the correct iss claim and aud value. Keycloak publishes its own keys per realm, so rotate them on a schedule and confirm that every resource server refreshes its cached JWKS.
Questions buyers ask before replacing Okta API Access Management
What does replacing Okta API Access Management cost, and what drives it up?
The cost is mostly labor and infrastructure, not a license, because Keycloak is licensed under Apache 2.0. Costs fall into one-time work (scoping, mapping custom authorization servers, scopes and claims to Keycloak clients and client scopes, testing token flows, and cutover) and recurring work (hosting, database, upgrades, monitoring and patching). The main drivers are the number of resource servers and scopes to rebuild, the amount of custom policy logic in Okta's token hooks, the high availability design you need, the database you run (Keycloak supports PostgreSQL 14 to 18 and several other databases), and whether you buy a support subscription such as the Red Hat build of Keycloak. Ask any provider for a quote that lists each of these as a separate line, with what is one-time and what recurs.
How long does it take to replace Okta API Access Management?
The timeline depends on scope, and no fixed duration applies to every environment. The work grows with the count of custom authorization servers, scopes, claims and machine-to-machine clients, and with how many applications must be re-pointed at new token endpoints. Teams with few resource servers and standard claims move faster than teams with custom token hooks and many services that validate tokens. Most engagements are fixed-scope, so the timeline is agreed in writing before work starts, along with deliverables. Ask for a phased plan that separates a pilot application from the full cutover and includes a rollback path.
Can our own team run a self-hosted authorization server without outside help?
Many teams can, but it requires people who understand OAuth 2.0 and OpenID Connect in depth, plus operations skills for Keycloak. Confirm that you have engineers who can design client registrations, scope and claim mappings, token lifetimes and key rotation, and who can run a Keycloak cluster with a synchronously replicated database. Also confirm who owns upgrades: the Keycloak Operator documentation strongly recommends manual approval mode for operator updates, so someone must review each release. A skills gap in any of these areas is the usual reason teams bring in an implementation partner for part of the work, such as design, testing or hardening.
Is Keycloak or Ory Hydra the better fit for replacing Okta API Access Management?
Keycloak fits most teams that also need a user directory, single sign-on for browser apps, SAML 2.0 and federation with LDAP or Active Directory in one product. It supports OpenID Connect, OAuth 2.0 and SAML 2.0, and it has built-in user federation. Ory Hydra fits teams that already have their own user management system and want a hardened OAuth 2.0 and OpenID Connect server that is controlled through headless APIs. Hydra is licensed under Apache-2.0 and is OpenID Certified, but identity, login screens and user storage are yours to build with components such as Ory Kratos. If you still run an Okta-style directory and SAML apps, Keycloak usually needs less custom work.
What is the Red Hat build of Keycloak, and is version 26.6 current?
The Red Hat build of Keycloak is Red Hat's supported distribution based on the open source Keycloak project, and it replaces Red Hat Single Sign-On. Red Hat's product page showed version 26.6 as its latest at the time of the research. The upstream project has since published 26.8.1 on October 13, 2026, so the version you deploy depends on which distribution you choose and when Red Hat ships its build. Confirm the current version and support window directly with Red Hat before you plan the upgrade path, and confirm which version your support contract covers.
Does a Keycloak support subscription replace DeployOpen support?
No. A Keycloak support subscription, such as one from Red Hat, covers the vendor's product support for the distribution it ships. DeployOpen plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside your own infrastructure, so the two cover different work. DeployOpen engagements are usually fixed-scope, with scope, deliverables and timelines agreed in writing first. Ongoing support, upgrades and continuous testing are available as retainers. Ask any partner which layer they cover, and ask the software vendor which layer its subscription covers, so nothing falls between them.
What to ask for in a written quote
Ask for a quote that splits cost into the components that behave differently over time. The one-time work is design and migration: mapping each Okta custom authorization server to a Keycloak realm or client scope set, rebuilding claims as protocol mappers, and moving machine-to-machine clients to service accounts with the client credentials grant. The recurring work is the database and high availability infrastructure (Keycloak supports PostgreSQL 14 to 18 and expects a synchronously replicated database in both supported HA designs), the operations and upgrade cycle, and any support subscription. If you choose the Ory Enterprise License for Hydra, or the Red Hat build of Keycloak, the subscription is a separate line item from the labor and should be quoted and renewed on its own terms. Ask the vendor to confirm which of those products the subscription covers and what it excludes.
Give the provider a precise scope to price against. List every authorization server by name and purpose, the approximate number of OAuth clients and resource servers behind each one, which grant types each client uses, and which claims and scopes downstream APIs read from tokens. Ask for the number of environments covered (production, staging and a test environment for token-flow regression), whether disaster recovery is included, and what availability and response commitments apply in writing. Confirm whether an upgrade plan for Keycloak minor releases, which the project ships several times a year with breaking changes opt-in, is part of the quote or sold as a retainer.
Require fixed-scope deliverables agreed in writing before work starts: a token and claims inventory, the target realm and client configuration as code, a cutover plan for each API consumer, rollback steps, and the evidence each control needs. Ask which items are acceptance tests and who signs them off. For every item marked out of scope, such as rewriting resource server authorization logic or building a token broker for legacy services, request a separate line so it does not surface as a change request after signature. A quote that cannot be traced to these artifacts is not yet comparable with another bid.
How DeployOpen scopes, delivers and supports API authorization replacement
DeployOpen plans, implements, integrates, hardens, documents and supports self-hosted open-source platforms inside your own infrastructure, including the authorization servers that replace Okta API Access Management. The work starts with a written scope that maps your custom authorization servers, scopes, claims and machine-to-machine clients to Keycloak or Ory Hydra before anything is built.
How we scope
- Inventory every custom authorization server, scope, claim and token consumer that Okta API Access Management serves today.
- Map each machine-to-machine client and resource API to a Keycloak client, client scope or Ory Hydra client, and record the gaps.
- Agree deliverables, timelines and acceptance criteria in writing, because most engagements are fixed-scope.
How we build
- Deploy the chosen authorization server in your cloud account, data center or air-gapped network, with the database and high availability design you approve.
- Recreate scopes, claims mappers and token lifetimes, then test token issuance and validation against each resource server.
- Run security testing of the authorization endpoints and token flows, and record the results alongside the configuration.
How we hand over
- Deliver written runbooks covering realm or client configuration, key rotation, backup and restore, and upgrade procedures.
- Document which Okta features were not replaced, such as any risk signals or workflows, so decisions stay visible to your team.
- Walk your platform, security and application owners through operations and confirm they can run the system without us.
How we support
- Ongoing support, upgrades and continuous security testing are available as retainers after handover.
- Upgrades follow the vendor's release process, and we test them in a non-production environment before they reach production.
- Ask any provider, including us, to confirm in writing who patches the authorization server and how quickly CVE fixes arrive.

