Skip to content

Commit

Permalink
Update README (#160)
Browse files Browse the repository at this point in the history
  • Loading branch information
tacurran authored and aeneasr committed Jan 2, 2020
1 parent f4b7812 commit 533775b
Showing 1 changed file with 27 additions and 15 deletions.
42 changes: 27 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<h4 align="center">
<a href="https://discord.gg/PAMQWkr">Chat</a> |
<a href="https://community.ory.am/">Forums</a> |
<a href="https://community.ory.sh/">Forums</a> |
<a href="http://eepurl.com/di390P">Newsletter</a><br/><br/>
<a href="https://www.ory.sh/docs/next/kratos/">Guide</a> |
<a href="https://www.ory.sh/docs/next/kratos/sdk/api">API Docs</a> |
Expand All @@ -20,32 +20,44 @@
<a href="#backers" alt="sponsors on Open Collective"><img src="https://opencollective.com/ory/backers/badge.svg" /></a> <a href="#sponsors" alt="Sponsors on Open Collective"><img src="https://opencollective.com/ory/sponsors/badge.svg" /></a>
</p>

ORY Kratos is the first and only cloud native Identity and User Management system in the world. The days where you would implement a User Login for the 10th time are finally over! ORY Kratos includes
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!

- **user login and registration** using a variety of configurable authentication mechanisms: **Username/Email + Password**, **Social Sign In** ("Sign in with GitHub, Google, ..."), Passwordless and others.
- **multi-factor authentication** supporting a wide range of protocols such as [Google Authenticator](https://en.wikipedia.org/wiki/Google_Authenticator) (formalized as [RFC 6238](https://tools.ietf.org/html/rfc6238) and [IETF RFC 4226](https://tools.ietf.org/html/rfc4226)).
- **account verification** and **account recovery** by several means: E-Mail, Recovery Codes, ...
- **storing user information** in a way that does not enforce *our* data model on *you*, but allows you to define what data certain users may store using [JSON Schema](https://json-schema.org/). If you have more than one identity type no problem - every identity can have its own JSON Schema - even versioned!
- **headless UI** - instead of learning our custom (and probably not that great) template engine, just bring your own! ORY Kratos is all APIs and you can write your UI in the language (JavaScript, Node, Java, PHP, ...) and framework (React, Vue, Angular, ...) you like! Check out our [reference UI implementation](https://github.com/ory/kratos-selfservice-ui-node) - it's below 100 lines of code!
- **a 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 would blow the scope of this introduction.
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](https://en.wikipedia.org/wiki/Google_Authenticator) (formalized as [RFC 6238](https://tools.ietf.org/html/rfc6238) and [IETF RFC 4226](https://tools.ietf.org/html/rfc4226)).
- **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](https://json-schema.org/). 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](https://github.com/ory/kratos-selfservice-ui-node) - 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](https://www.ory.sh/docs/next/kratos).

## 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 head over to [milestones](https://github.com/ory/kratos/milestones).
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](https://github.com/ory/kratos/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" which interacts with ORY Kratos. 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 for you 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 "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. **Include links to docs here.** If you want OAuth2 (you want to become the new "Sign in with Google" provider), we have ORY Hydra that integrates natively with ORY Kratos!
- You decide what happens after sign up and login (each customizable on its own): Redirect the user to a certain page? Create a Stripe account? Require account activation via email before being allowed to sign in?
- 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

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

## Documentation
Expand Down

0 comments on commit 533775b

Please sign in to comment.