Case Study
OpenAI leverages Ory to support over 400M weekly active users
Ory Homepage
Ory Keto

Global, granular
and lightning-fast Access Control

Headless and configurable authentication and user management,
including MFA, social login, custom identities and more.

Access control systems often falter under heavy load, struggling with consistency and responsiveness. Ory Keto addresses this by delivering minimal latency and strong consistency, even at high request volumes.

Split-second
decision making

Ory Keto is an open source lightning fast permission and authorization. Its design is based on Google Zanzibar and it ships gRPC and REST APIs.

Built for availability

Ory Keto is written in Go and we provide SDKs for every language. It works behind any framework and integrates with any existing data structures and identifiers. Our documentation makes integrating Ory Keto a piece of cake.

Manage and Check Permissions

Determine if an entity (user, service, IoT) is allowed to perform an action using HTTP or gRPC APIs.

Powered by Open Source

Ory Kratos is open source and evolves with every pull-request.

Padis Logo
Padis Logo
Padis Logo
Akibur Rahman
Akibur Rahman

Akibur Rahman

System Architect

Ory components met modern technical standards, seamlessly integrated into our system, and were easily customizable to our needs.

Ory Keto features at a glance

Low Latency and Highly Available

Ory Keto implements Google Zanzibar and has maintained 95th-percentile latency of less than 10 ms and availability greater than 99.99% over years of production use.

Flexible Permission Management

Ory Keto integrates with any existing data structures and identifiers.

Global Access Control

Deploy around the globe and provide a fast response no matter where your users are.

Integrations

Deploy Ory Keto on your preferred infrastructure

Deploy on any infrastructure and take full control over authentication and user workflows of your application.

policy.ts
import { Namespace, Context } from "@ory/keto-namespace-types"

class User implements Namespace {}

class Document implements Namespace {
  related: {
    owners: User[]
    editors: User[]
    viewers: User[]
    parents: Folder[]
  }

  permits = {
    view: (ctx: Context): boolean =>
      this.related.viewers.includes(ctx.subject) ||
      this.related.editors.includes(ctx.subject) ||
      this.related.owners.includes(ctx.subject) ||
      this.related.parents.traverse((parent) => parent.permits.view(ctx)),
  }
}

class Folder implements Namespace {
  related: {
    owners: User[]
    editors: User[]
    viewers: User[]
    parents: Folder[]
  }
}

Try Ory today Start for free