Skip to content
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.
Go Shell Other
Branch: master
Clone or download

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci chore: clean up ci config Apr 6, 2020
.docker_compose fix(docker): Improve docker-compose example (#325) Mar 2, 2020
.github refactor: move docs to this repository (#396) Apr 6, 2020
.schema chore: rename schema IDs (#398) Apr 6, 2020
.schemas fix: add old schemas to resolve issues with old versions Apr 6, 2020
api feat(rule): Add glob matching strategy (#334) Feb 5, 2020
cmd refactor: move docs to this repository (#396) Apr 6, 2020
credentials fix: Improve id_token performance with caching (#367) Mar 5, 2020
docs chore: update docusaurus template (#405) Apr 7, 2020
driver refactor: move docs to this repository (#396) Apr 6, 2020
helper fix: Improve id_token performance with caching (#367) Mar 5, 2020
internal refactor: move docs to this repository (#396) Apr 6, 2020
pipeline chore: replace segment with ory fork (#391) Apr 3, 2020
proxy feat: Add MatchContext in the AuthenticationSession (#358) Mar 13, 2020
rule fix: add rule id to malformed configuration log error (#386) Mar 25, 2020
scripts refactor: move docs to this repository (#396) Apr 6, 2020
test feat(rule): Add glob matching strategy (#334) Feb 5, 2020
x feat: Add MatchContext in the AuthenticationSession (#358) Mar 13, 2020
.dockerignore server: Properly declare negroni middleware (#200) May 28, 2019
.gitattributes Tells linguist to ignore SDK files May 10, 2018
.gitignore feat(rule): Add glob matching strategy (#334) Feb 5, 2020
.golangci.yml ci: Adopt new release pipeline (#171) Apr 8, 2019
.goreleaser.yml fix(goreleaser): Update brew section Feb 14, 2020
CHANGELOG.md autogen(docs): regenerate and update changelog Apr 7, 2020
CODE_OF_CONDUCT.md Reduce deployment complexity and refactor internals (#185) May 17, 2019
CONTRIBUTING.md docs: Updates issue and pull request templates (#355) Feb 2, 2020
Dockerfile Add alpine-based Docker image (#318) Dec 18, 2019
Dockerfile-alpine Add alpine-based Docker image (#318) Dec 18, 2019
Dockerfile-dc fix(docker): Improve docker-compose example (#325) Mar 2, 2020
LICENSE Revert incorrect license changes Oct 28, 2019
Makefile refactor: move docs to this repository (#396) Apr 6, 2020
README.md refactor: move docs to this repository (#396) Apr 6, 2020
SECURITY.md docs: Updates issue and pull request templates (#355) Feb 2, 2020
UPGRADE.md refactor: move docs to this repository (#396) Apr 6, 2020
doc.go all: Updates license header Feb 27, 2018
doc_swagger.go all: Updates license header Feb 27, 2018
docker-compose.yml feat: Enable OpenTracing (#376) Mar 14, 2020
go.mod autogen(docs): generate and format documentation Apr 6, 2020
go.sum autogen(docs): generate and format documentation Apr 6, 2020
install.sh Resolve issue with install.sh script (#187) May 14, 2019
main.go Fix profiling env variable not being picked up (#343) Jan 20, 2020
package.json Move to new SDK pipeline (#333) Jan 13, 2020

README.md

ORY Oathkeeper - Cloud Native Identity & Access Proxy

Chat | Forums | Newsletter

API Docs | Guide | Code Docs

Support this project!

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 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:

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.

CircleCI Coverage Status Go Report Card


Installation

Head over to the ORY Developer Documentation 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. We thank everyone involved - from submitting bug reports and feature requests, to contributing patches, to sponsoring our work. Our community is 1000+ strong and growing rapidly. The ORY stack protects 1.200.000.000+ API requests every month with over 15.000+ active service nodes. We would have never been able to achieve this 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 hi@ory.sh now!

Please consider giving back by becoming a sponsor of our open source work on Patreon or Open Collective.

Type Name Logo Website
Sponsor Raspberry PI Foundation Raspberry PI Foundation raspberrypi.org
Contributor Kyma Project Kyma Project kyma-project.io
Sponsor ThoughtWorks ThoughtWorks thoughtworks.com
Sponsor Tulip Tulip Retail tulip.com
Sponsor Cashdeck / All My Funds All My Funds cashdeck.com.au
Sponsor 3Rein 3Rein 3rein.com
Contributor Hootsuite Hootsuite hootsuite.com
Adopter * Segment Segment segment.com
Adopter * Arduino Arduino arduino.cc
Sponsor OrderMyGear OrderMyGear ordermygear.com

We also want to thank all individual contributors

as well as all of our backers

and past & current supporters (in alphabetical order) on Patreon: Alexander Alimovs, Billy, Chancy Kennedy, Drozzy, Edwin Trejos, Howard Edidin, Ken Adler Oz Haven, Stefan Hans, TheCrealm.

* Uses one of ORY's major projects in production.

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 designed to run best on a Container Orchestration Systems 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 is an API-first Identity and User Management system that is built according to cloud architecture best practices. 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 is an OpenID Certified™ OAuth2 and OpenID Connect Provider can connect to any existing identity database (LDAP, AD, KeyCloak, PHP+MySQL, ...) and user interface.

ORY Oathkeeper: Identity & Access Proxy

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 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 and send us an email to hi@ory.sh instead.

Telemetry

Our services collect summarized, anonymized data which can optionally be turned off. Click here to learn more.

Documentation

Guide

The Guide is available here.

HTTP API documentation

The HTTP API is documented here.

Upgrading and Changelog

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

Command line documentation

Run oathkeeper -h or oathkeeper help.

Develop

Developing with ORY Oathkeeper is as easy as:

$ cd ~
$ go get -d -u github.com/ory/oathkeeper
$ cd $GOPATH/src/github.com/ory/oathkeeper
$ export GO111MODULE=on
$ go test ./...
You can’t perform that action at this time.