Warrant

Warrant 是基于 Google Zanzibar 的高度可扩展的集中式授权服务。使用它可以定义、执行、查询和审计应用程序授权和访问控制。『Warrant is a highly scalable, centralized authorization service based on Google Zanzibar. Use it to define, enforce, query, and audit application authorization and access control.』

Github星跟踪图

Warrant - Google Zanzibar-inspired, Fine-Grained Authorization Service

Warrant is a highly scalable, centralized, fine-grained authorization service for defining, storing, querying, checking, and auditing application authorization models and access rules. At its core, Warrant is a relationship based access control (ReBAC) engine (inspired by Google Zanzibar) capable of enforcing any authorization paradigm, including role based access control (RBAC) (e.g. [user:1] has [permission:view-billing-details]), attribute based access control (ABAC) (e.g. [user:1] can [view] [department:accounting] if [geo == "us"]), and relationship based access control (ReBAC) (e.g. [user:1] is an [editor] of [document:docA]). It is especially useful for implementing fine-grained access control (FGAC) in internal and/or customer-facing applications.

Features

  • HTTP APIs for managing your authorization model, access rules, and other Warrant resources (roles, permissions, features, tenants, users, etc.) from an application, a CLI tool, etc.
  • Real-time, low-latency API for performing access checks in your application(s) at runtime (e.g. is [user:A] an [editor] of [tenant:X]?)
  • Integrates with in-house and third-party authn/identity providers like Auth0, Firebase, and more
  • Officially supported SDKs for popular languages and frameworks (backend and frontend)
  • Support for a number of databases, including: MySQL, Postgres, and SQLite (in-memory or file)

Use Cases

Warrant is built specifically for application authorization and access control, particularly for product, security, and compliance use-cases. Examples of problems Warrant solves are:

  • Add role based access control (RBAC) to your SaaS application with the ability for your customers to self-manage their roles and permissions via the Warrant self-service dashboard or your own custom dashboard built using Warrant's component library.
  • Allow customers to define and manage their own roles & permissions for their tenant (organization)
  • Add 'fine-grained role-based access control' (role based access to specific resources)
  • Implement fine-grained, object/resource-level authorization specific to your application's data model ([user:1] is an [editor] of [document:x])
  • Add centralized and auditable access control around your internal applications and tools.
  • Implement 'approval flows' (i.e. request access to a resource from an admin -> admin approves access).
  • Add Google Docs-like sharing and permissioning for your application's resources and objects.
  • Gate access to SaaS features based on your product's pricing tiers and feature packages.
  • Satisfy auditing and compliance requirements of frameworks and standards such as SOC2, HIPAA, GDPR and CCPA.

Getting Started

Check out the development guide to learn how to run Warrant locally and refer to the deployment examples for examples of self-hosting Warrant using Docker or Kubernetes.

Resources

SDKs

Warrant's native SDKs are compatible with both the cloud and open-source versions of Warrant. We currently support SDKs for:

Documentation

Visit our docs to learn more about Warrant's key concepts & architecture and view our quickstarts & API reference.

Limitations

Serving check and query requests with low latency at high throughput requires running Warrant as a distributed service with the use of Warrant-Tokens (also referred to as Zookies in Google Zanzibar). As a result, this open source version of Warrant is only capable of handling low-to-moderate throughput and is best suited for POCs, development/test environments, and low throughput use-cases.

Get <10ms Latency at Scale

Warrant Cloud

The quickest and easiest way to get low-latency performance for high-throughput production usage is to use Warrant Cloud, a fully managed, serverless offering of Warrant. With Warrant Cloud, you don't need to worry about managing multiple instances of Warrant or its underlying datastore (e.g. Postgres, MySQL, etc). It can scale to millions of warrants and hundreds of millions of check and query requests while still providing <10ms latencies. You can sign up for a free account here.

Warrant Cloud is compatible with the same APIs as this open source version and provides additional functionality like:

  • An admin dashboard for quickly managing your authorization model and access rules via an intuitive, easy-to-use UI
  • Batch endpoints
  • Multi-region availability
  • Improved access check latency & throughput for large scale use cases

Once you've created an account, refer to our docs to get started.

Enterprise Self-Hosted

Customers looking to self-host Warrant for low-latency, high-throughput production use cases can run a licensed version of Warrant Cloud themselves. To learn more about this option, schedule a call or contact us.

Contributing

Contributions are welcome. Please see our contributing guide for more details.

主要指标

概览
名称与所有者warrant-dev/warrant
主编程语言Go
编程语言 (语言数: 4)
平台
许可证Apache License 2.0
所有者活动
创建于2023-02-14 23:22:46
推送于2025-04-16 23:04:42
最后一次提交
发布数110
最新版本名称v1.15.1 (发布于 )
第一版名称v0.1.0 (发布于 )
用户参与
星数1.3k
关注者数6
派生数50
提交数287
已启用问题?
问题数38
打开的问题数16
拉请求数281
打开的拉请求数8
关闭的拉请求数19
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?