
ORY Kratos is the first and only cloud native Identity and User Management System in the world. Finally, it is no longer necessary to implement a User Login process for the umpteenth time!
ORY Kratos includes:
- User login and registration using a variety of configurable authentication mechanisms: Username/Email + Password, Social Sign In ("Sign in with GitHub, Google, ..."), with or without password and others.
- Multi-factor authentication supporting a wide range of protocols such as Google Authenticator (formalized as RFC 6238 and IETF RFC 4226).
- Account verification and account recovery by several methods: E-Mail, recovery codes, ...
- Storing user information in a way that does not enforce our normative data model on you. With ORY Kratos developers define the dataset users may store using JSON Schema. ORY Kratos supports multiple identity types - every identity can have its own JSON Schema - even versioned!
- Headless UI - instead of learning some custom, and probably inferior, template engine, developers can choose their own! ORY Kratos is all APIs. UI's can be programmed in various languages (JavaScript, Node, Java, PHP, ...) and numerous framework (React, Vue, Angular, ...)! Check out the reference UI implementation - it's less than 100 lines of code!
- Workflow engine to decide what happens after, for example, a user signs up (redirect somewhere? require activation before login? issue session right away?) as well as to notify other systems on certain actions ("create a Stripe account after sign up", "synchronize with newsletter", ...).
- ... and of course many more features that will be discussed outside of the Introduction in the Ory Kratos documentation here.
Timeline
ORY Kratos is not yet released and is undergoing continuous and active development. The core featureset is done but several more steps are required before version 0.0.1 can be released. To find out the current progress, planned features for each milestone, and more information please refer to milestones.
What's different?
This section is a work in progress.
-
There is no templating as with other full-stack solutions. You implement a "login, registration, ... UI" that interacts with ORY Kratos. For instance:
-
Want Progressive Registration? No problem.
-
Just need a username on sign up? Sure!
-
How about your favorite pet name as a required sign up field? Of course!
-
While other solutions support an API-driven approach, they leave you with the burden of making things secure, e.g. CSRF Tokens, storing state, and so on. In ORY Kratos, all of this is done using - among others - HTTP Redirection.
-
ORY Kratos does not need OAuth2 and OpenID Connect. We know that big players in the market have tried selling you OAuth2 and OpenID Connect for years as "the most secure" and "a very easy to use" protocol. Fact is, OAuth2 and OpenID Connect are not designed for first-party use ("I just want people to be able to log into my mobile app"). ORY Kratos makes integration a one-minute process using a HTTP Reverse Proxy. [Reverse proxy] (https://en.wikipedia.org/wiki/Reverse_proxy) (https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html) Include links to docs here. Ory Hydra is a OAuth2 Server and OpenID Certified™ OpenID Connect Provider written in Go - cloud native, security-first, open source API security for your infrastructure. If the goal is to become the new "Sign in with Google" provider, use ORY Hydra and natively integrate with ORY Kratos!
-
The "Sign Up" and "Login" process is customisable. The developer determines next step after sign up and login, for instance:
"Redirect the user to a certain page?"
"Create a Stripe account?" or
"Require account activation via email before being allowed to sign in?"
Telemetry
Ory's services collect summarized, anonymized data that 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 kratos -h
or kratos help
.