Auth0 is a service that abstracts how users authenticate to applications.
You can connect any application (written in any language or on any stack) to Auth0 and define its connection, the method used to authenticate the users of that application:
- Custom credentials: username + passwords
- Social network logins: Google, Facebook, Twitter, and any OAuth2, OAuth1 or OpenID Connect provider
- Enterprise directories: LDAP, Google Apps, Office 365, ADFS, AD, SAML-P, WS-Federation, etc.
- Passwordless systems: Touch ID, one time codes on SMS, or email
Video: Developer Overview
This video will give you a walkthrough of Auth0 and how it will help save you time adding identity to your application.
Integrate Auth0 with your Application
Auth0 ships SDKs for all major platforms (.NET, Java, PHP, Python, node, iOS, and many more), but the use of Auth0 SDKs is not required. Virtually anything able to send HTTP requests can integrate with Auth0.
The best solution for integrating Auth0 with your application is to use Auth0's Hosted Login Page. Using the Hosted Login Page is an incredibly simple process, and circumvents the dangers of cross-origin authentication. The Hosted Login Page uses the Lock widget to allow your users to authenticate by default, but has other starting templates as well. You can customize the login page in the Hosted Pages Editor in your dashboard.
Access your APIs
Auth0's API authorization features allow you to manage the authorization requirements for server-to-server and client-to-server applications, using the OAuth 2.0 protocol. Using Auth0, you can easily support different flows in your own APIs without worrying about the OAuth 2.0/OpenID Connect specification, or the many other technical aspects of API authorization.
An Extensible Platform
Auth0 offers several ways to extend the platform's functionality:
Hooks: Hooks allow you to customize the behavior of Auth0 using Node.js code that is executed against extensibility points (which are comparable to webhooks that come with a server). They are Webtasks associated with specific extensibility points of the Auth0 platform. Auth0 invokes the Hooks at runtime to execute your custom logic. Hooks will eventually replace Rules, the current Auth0 extensibility method. Currently, you can use both Hooks and Rules, but Auth0 will implement new functionality in Hooks.
Extensions: Auth0 Extensions enable you to install applications or run commands/scripts that extend the functionality of the Auth0 base product. You can either use one of the pre-defined extensions, provided by Auth0, or create your own. Some of the actions you can do with extensions are manage the authorizations for users (using groups, roles and permissions), import/export users, export logs to other services, deploy scripts from external repositories, and more.
Auth0 is a service usually running in the cloud, but it can also be deployed in Private Instances (PI). PIs are dedicated installations of Auth0. You may choose to run PIs in Auth0's datacenters (which are separate from those that run the multi-tenant services), in your own cloud hosting environments (e.g. AWS, Azure, Rackspace, DigitalOcean), or even on-premises.
The public, multi-tenant cloud service version of Auth0 supports a domain name based off of
auth0.com. Auth0 assigns Clients deployed using this service a domain name in one of the two formats:
For example, if your company is My Company, you would receive some or all of the following addresses:
mycompany.auth0.com mycompany.eu.auth0.com mycompany.au.auth0.com
You may choose to use a custom domain name that obscures the Auth0 reference, such as
mycompany.com. Using a custom domain name requires a single-tenant implementation of Auth0, which can be deployed in one of three locations:
- The Auth0-managed cloud
- A customer-managed cloud
- An on-premise installation
Due to the additional features offered by these three options, these deployment options do come with a higher cost.
If you are unable to use a multi-tenant cloud service due to compliance or other policy requirements, please take a look at the PSaaS Appliance.