An open API service indexing awesome lists of open source software.

https://github.com/ory/oathkeeper

A cloud native Identity & Access Proxy / API (IAP) and Access Control Decision API that authenticates, authorizes, and mutates incoming HTTP(s) requests. Inspired by the BeyondCorp / Zero Trust white paper. Written in Go.
https://github.com/ory/oathkeeper

api-gateway golang hacktoberfest oauth2 openid-connect ory ory-oathkeeper reverse-proxy

Last synced: 10 days ago
JSON representation

A cloud native Identity & Access Proxy / API (IAP) and Access Control Decision API that authenticates, authorizes, and mutates incoming HTTP(s) requests. Inspired by the BeyondCorp / Zero Trust white paper. Written in Go.

Awesome Lists containing this project

README

        

ORY Oathkeeper - Cloud Native Identity & Access Proxy


Chat |
Discussions |
Newsletter


API Docs |
Guide |
Code Docs


Support this project!


Work in Open Source, Ory is hiring!

---


Build Status
Coverage Status
Go Report Card
PkgGoDev


ORY Oathkeeper is an Identity & Access Proxy (IAP) and Access Control Decision
API that authorizes HTTP requests based on sets of Access Rules. The BeyondCorp
Model is designed by [Google](https://cloud.google.com/beyondcorp/) and secures
applications in Zero-Trust networks.

An Identity & Access Proxy is typically deployed in front of (think API Gateway)
web-facing applications and is capable of authenticating and optionally
authorizing access requests. The Access Control Decision API can be deployed
alongside an existing API Gateway or reverse proxy. ORY Oathkeeper's Access
Control Decision API works with:

- [Ambassador](https://github.com/datawire/ambassador) via
[auth service](https://www.getambassador.io/reference/services/auth-service).
- [Envoy](https://www.envoyproxy.io) via the
[External Authorization HTTP Filter](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/ext_authz_filter)
- [AWS API Gateway](https://aws.amazon.com/api-gateway/) via
[Custom Authorizers](https://aws.amazon.com/de/blogs/compute/introducing-custom-authorizers-in-amazon-api-gateway/)
- [Nginx](https://www.nginx.com) via
[Authentication Based on Subrequest Result](https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-subrequest-authentication/)

among others.

This service is stable, but under active development and may introduce breaking
changes in future releases. Any breaking change will have extensive
documentation and upgrade instructions.

## Ory Network Hybrid Support Plan

Ory offers a support plan for Ory Network Hybrid, including Ory on private cloud
deployments. If you have a self-hosted solution and would like help, consider a
support plan! The team at Ory has years of experience in cloud computing. Ory's
offering is the only official program for qualified support from the
maintainers. For more information see the
**[website](https://www.ory.sh/support/)** or
**[book a meeting](https://www.ory.sh/contact/)**!

## Project Renaming

The Ory Oathkeeper project was started in 2017 in Germany and owes its name to
the Sword [Oathkeeper](https://gameofthrones.fandom.com/wiki/Oathkeeper) from
Game of Thrones. We also understand that the name is politically charged in the
US as it is shared with a far-right militia organization in the US called "Oath
Keepers".

To take a stand against extremism and avoid any confusion to the name's origin,
we will be renaming the project in the near future. Please be patient with us as
we work on this complicated change of various CIs, tools, scripts, and
automations.

---

- [Installation](#installation)
- [Who's using it?](#whos-using-it)
- [Ecosystem](#ecosystem)
- [ORY Kratos: Identity and User Infrastructure and Management](#ory-kratos-identity-and-user-infrastructure-and-management)
- [ORY Hydra: OAuth2 & OpenID Connect Server](#ory-hydra-oauth2--openid-connect-server)
- [ORY Oathkeeper: Identity & Access Proxy](#ory-oathkeeper-identity--access-proxy)
- [ORY Keto: Access Control Policies as a Server](#ory-keto-access-control-policies-as-a-server)
- [Security](#security)
- [Disclosing vulnerabilities](#disclosing-vulnerabilities)
- [Telemetry](#telemetry)
- [Documentation](#documentation)
- [Guide](#guide)
- [HTTP API documentation](#http-api-documentation)
- [Upgrading and Changelog](#upgrading-and-changelog)
- [Command line documentation](#command-line-documentation)
- [Develop](#develop)

## Installation

Head over to the
[ORY Developer Documentation](https://www.ory.sh/oathkeeper/docs/install) to
learn how to install ORY Oathkeeper on Linux, macOS, Windows, and Docker and how
to build ORY Oathkeeper from source.

## Who's using it?

The Ory community stands on the shoulders of individuals, companies, and
maintainers. The Ory team thanks everyone involved - from submitting bug reports
and feature requests, to contributing patches and documentation. The Ory
community counts more than 50.000 members and is growing. The Ory stack protects
7.000.000.000+ API requests every day across thousands of companies. None of
this would have been possible without each and everyone of you!

The following list represents companies that have accompanied us along the way
and that have made outstanding contributions to our ecosystem. _If you think
that your company deserves a spot here, reach out to
[email protected] now_!



Name
Logo
Website
Case Study




OpenAI



OpenAI


openai.com
OpenAI Case Study


Fandom



Fandom


fandom.com
Fandom Case Study


Lumin



Lumin


luminpdf.com
Lumin Case Study


Sencrop



Sencrop


sencrop.com
Sencrop Case Study


OSINT Industries



OSINT Industries


osint.industries
OSINT Industries Case Study


HGV



HGV


hgv.it
HGV Case Study


Maxroll



Maxroll


maxroll.gg
Maxroll Case Study


Zezam



Zezam


zezam.io
Zezam Case Study


T.RowePrice



T.RowePrice


troweprice.com


Mistral



Mistral


mistral.ai


Axel Springer



Axel Springer


axelspringer.com


Hemnet



Hemnet


hemnet.se


Cisco



Cisco


cisco.com


Presidencia de la República Dominicana



Presidencia de la República Dominicana


presidencia.gob.do


Moonpig



Moonpig


moonpig.com


Booster



Booster


choosebooster.com


Zaptec



Zaptec


zaptec.com


Klarna



Klarna


klarna.com


Raspberry PI Foundation



Raspberry PI Foundation


raspberrypi.org


Tulip



Tulip Retail


tulip.com


Hootsuite



Hootsuite


hootsuite.com


Segment



Segment


segment.com


Arduino



Arduino


arduino.cc


Sainsbury's



Sainsbury's


sainsburys.co.uk


Contraste



Contraste


contraste.com


inMusic



InMusic


inmusicbrands.com


Buhta



Buhta


buhta.com



Amplitude



amplitude.com


amplitude.com


TIER IV
Kyma Project
Serlo
Padis


Cloudbear
Security Onion Solutions
Factly
All My Funds


Nortal
OrderMyGear
R2Devops
Paralus


dyrector.io
pinniped.dev
pvotal.tech


Many thanks to all individual contributors

## Ecosystem

We build Ory on several guiding principles when it comes to our architecture
design:

- Minimal dependencies
- Runs everywhere
- Scales without effort
- Minimize room for human and network errors

Ory's architecture is designed to run best on a Container Orchestration system
such as Kubernetes, CloudFoundry, OpenShift, and similar projects. Binaries are
small (5-15MB) and available for all popular processor types (ARM, AMD64, i386)
and operating systems (FreeBSD, Linux, macOS, Windows) without system
dependencies (Java, Node, Ruby, libxml, ...).

### Ory Kratos: Identity and User Infrastructure and Management

[Ory Kratos](https://github.com/ory/kratos) is an API-first Identity and User
Management system that is built according to
[cloud architecture best practices](https://www.ory.sh/docs/next/ecosystem/software-architecture-philosophy).
It implements core use cases that almost every software application needs to
deal with: Self-service Login and Registration, Multi-Factor Authentication
(MFA/2FA), Account Recovery and Verification, Profile, and Account Management.

### Ory Hydra: OAuth2 & OpenID Connect Server

[Ory Hydra](https://github.com/ory/hydra) is an OpenID Certified™ OAuth2 and
OpenID Connect Provider which easily connects to any existing identity system by
writing a tiny "bridge" application. It gives absolute control over the user
interface and user experience flows.

### Ory Oathkeeper: Identity & Access Proxy

[Ory Oathkeeper](https://github.com/ory/oathkeeper) is a BeyondCorp/Zero Trust
Identity & Access Proxy (IAP) with configurable authentication, authorization,
and request mutation rules for your web services: Authenticate JWT, Access
Tokens, API Keys, mTLS; Check if the contained subject is allowed to perform the
request; Encode resulting content into custom headers (`X-User-ID`), JSON Web
Tokens and more!

### Ory Keto: Access Control Policies as a Server

[Ory Keto](https://github.com/ory/keto) is a policy decision point. It uses a
set of access control policies, similar to AWS IAM Policies, in order to
determine whether a subject (user, application, service, car, ...) is authorized
to perform a certain action on a resource.

## Security

### Disclosing vulnerabilities

If you think you found a security vulnerability, please refrain from posting it
publicly on the forums, the chat, or GitHub. You can find all info for
responsible disclosure in our
[security.txt](https://www.ory.sh/.well-known/security.txt).

## Telemetry

Our services collect summarized, anonymized data which can optionally be turned
off. Click [here](https://www.ory.sh/docs/ecosystem/sqa) to learn more.

## Documentation

### Guide

The Guide is available [here](https://www.ory.sh/oathkeeper/docs/).

### HTTP API documentation

The HTTP API is documented
[here](https://www.ory.sh/oathkeeper/docs/reference/api).

### Upgrading and Changelog

New releases might introduce breaking changes. To help you identify and
incorporate those changes, we document these changes in
[UPGRADE.md](./UPGRADE.md) and [CHANGELOG.md](./CHANGELOG.md).

### Command line documentation

Run `oathkeeper -h` or `oathkeeper help`.

### Develop

Developing with ORY Oathkeeper is as easy as:

```shell
$ cd ~
$ go get -d -u github.com/ory/oathkeeper
$ cd $GOPATH/src/github.com/ory/oathkeeper
$ export GO111MODULE=on
$ go test ./...
```