Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

initial overview page #3396

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 9 additions & 44 deletions astro/src/content/docs/get-started/index.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Getting Started
title: Get Started Overview
description: Learn what FusionAuth is and how to get started using it.
navcategory: getting-started
section: get started
Expand All @@ -12,7 +12,9 @@ import LoginAfter from 'src/diagrams/quickstarts/login-after.astro';
FusionAuth is a modern platform for Customer Identity and Access Management (CIAM). FusionAuth provides APIs and a responsive web user interface to support
login, registration, localized email, multi-factor authentication, reporting and much more.

If you're looking for employee login or a replacement for Active Directory - you may be in the wrong place. While FusionAuth can be used for nearly any application, we do not offer native desktop integration and replacing Active Directory is not on our roadmap. However, if you're looking for a solution to manage end users that can perform at scale, then keep reading.
If you're looking for employee login or a replacement for Active Directory, you may be in the wrong place. While FusionAuth can be used for nearly any application, we do not offer native desktop integration and replacing Active Directory is not on our roadmap.

However, if you're looking for a solution to manage end users that can perform at scale, then keep reading.

Here's a typical application login flow before FusionAuth.

Expand All @@ -22,51 +24,14 @@ And here's the same application login flow when FusionAuth is introduced.

<LoginAfter alt="Login after FusionAuth" />

## Core Concepts

Legacy identity technologies have complex hierarchy and cryptic terminology like realms, principals, subjects and distinguished names. In order to simplify something perceived to be complex, the best approach is to go back to the basics, to the atomic elements and throw everything else away.

When we built FusionAuth we took the back to basics approach. We identified two atomic elements of identify, Users and Applications. Everyone has Users, and Users need to be authenticated to Applications. For this reason FusionAuth is built upon four core elements:

* Users - someone that can log into things
* Applications - things that Users log into
* Registrations - the connection between a User and an Application they have access to
* Tenants - A way to logically isolate Applications, Users and Registrations

### Users

A user is uniquely identified in any particular tenant by an email address or username. [Learn more.](/docs/get-started/core-concepts/users)

### Applications

A FusionAuth Application represents an authenticated resource such as a web application, mobile application or any other application that requires authenticated users. A FusionAuth Application is defined by a name and a set of Roles. [Learn more.](/docs/get-started/core-concepts/applications)

### Registrations

A User can be registered to one or more FusionAuth Applications. A User Registration can define one to many Application Roles. [Learn more.](/docs/get-started/core-concepts/registrations)

### Tenants

Tenants are way to separate Users, Applications and Registrations into separate containers. Inside a Tenant, you can define any number of Users, Applications and Registrations. Across Tenants, you can define duplicate Applications, Users and Registrations.
## What's Next?

For example, you might have two Tenants and inside both Tenants you might have an Application named `Web Based Payroll` and a User with the email address `[email protected]`. Each of these Users might have a Registration to the `Web Based Payroll` Application. And finally, each of these Users might have different passwords and data. [Learn more.](/docs/get-started/core-concepts/tenants)
Looking for a tutorial to get up to speed quickly on what FusionAuth offers? Or do you want to understand the three steps to implement awesome auth features in your application? [Start Here](/docs/get-started/start-here) will do both.

## Getting Started
Want to understand the concepts of FusionAuth [Core Concepts](/docs/get-started/core-concepts) covers important concepts.

First you will need to install and configure FusionAuth before starting your integration. Here are some links to get you started:
You can install [FusionAuth locally](/docs/get-started/download-and-install) or use a [FusionAuth Cloud](/docs/get-started/run-in-the-cloud) deployment.

### Quick Start
* [5-Minute Setup Guide](/docs/quickstarts/5-minute-setup-guide)
* [Register a User and Login](/docs/lifecycle/register-users/register-user-login-api)
* [Self-service Registration](/docs/lifecycle/register-users/basic-registration-forms)
* [Common Configuration](/docs/get-started/run-in-the-cloud/common-configuration)
Learn about the [common use cases](/docs/get-started/use-cases) you can implement with FusionAuth.

### Install Options
* [FastPath Install](/docs/get-started/download-and-install/fast-path)
* [Docker](/docs/get-started/download-and-install/docker)
* [Package Installation](/docs/get-started/download-and-install/fusionauth-app)
* [All Options](/docs/get-started/download-and-install)

### Create a User and call an API
* [Register a User and Login](/docs/lifecycle/register-users/register-user-login-api)
* [API Docs](/docs/apis/)
27 changes: 27 additions & 0 deletions astro/src/content/docs/get-started/start-here/add.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
title: Add Functionality
description: This is where you get to add all kinds of great functionality to your application with little to no effort.
section: get started
subcategory: start here
navOrder: 100
---
import StartDiagram from 'src/diagrams/docs/get-started/start-here/launch-delegate-add.astro';
import ListHostedLoginPagesUseCases from 'src/content/docs/_shared/_list-hosted-login-pages-use-cases.mdx';

<StartDiagram />
This is where the fun is! Your application now gets access to all kinds of authentication based functionality. By using FusionAuth for your authentication solution, you get access to all of these workflows:

<ListHostedLoginPagesUseCases />

How you enable functionality depends on what you are looking for. Here is a list of common functionality you might want to enable or customize.

* [Login with Google](/docs/lifecycle/authenticate-users/identity-providers/social/google)
* [Login with SAML](docs/lifecycle/authenticate-users/identity-providers/overview-samlv2)
* [Multi-factor authentication](/docs/lifecycle/authenticate-users/multi-factor-authentication)
* [Email verification](TODO)
* [Magic links](/docs/lifecycle/authenticate-users/passwordless/magic-links)
* [Set up self-service registration](/docs/lifecycle/register-users/basic-registration-forms)
* [Customize the login and other pages](/docs/customize/look-and-feel/)
* [Customize emails](/docs/customize/email-and-messages/)
* [Log users out](/docs/lifecycle/authenticate-users/logout-session-management)

18 changes: 18 additions & 0 deletions astro/src/content/docs/get-started/start-here/delegate.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
title: Delegate Authentication
description: You can delegate an application's authentication and authorization needs to FusionAuth using the Authorization Code grant.
section: get started
subcategory: start here
navOrder: 50
---
import StartDiagram from 'src/diagrams/docs/get-started/start-here/launch-delegate-add.astro';

Next, you need to update your application to delegate authentication to FusionAuth.

You have a few options:

* Most frameworks have an OIDC library. If you are familiar with one, you can use it, since FusionAuth supports OIDC. Here's a [curated list of OIDC libraries](https://oauth.net/code/).
* FusionAuth provides SDKs for the most common JavaScript frameworks: [Angular](/docs/sdks/angular-sdk), [React](/docs/sdks/react-sdk), and [Vue](/docs/sdks/vue-sdk).
* FusionAuth provides mobile SDKs: [Android](/docs/sdks/android-sdk). iOS support is coming soon, but you can use [iOS AppAuth](https://github.com/openid/AppAuth-iOS) until then.
* Client library TODO do we want to build this out

112 changes: 112 additions & 0 deletions astro/src/content/docs/get-started/start-here/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
---
title: Hands-on Tutorial
description: Curious about what FusionAuth can do? Start here to learn about it.
section: get started
subcategory: start here
navOrder: 0
---
import DockerComposeFiles from 'src/content/docs/get-started/download-and-install/_docker-compose-files.mdx';
import ListHostedLoginPagesUseCases from 'src/content/docs/_shared/_list-hosted-login-pages-use-cases.mdx';
import StartDiagram from 'src/diagrams/docs/get-started/start-here/launch-delegate-add.astro';

To get started with FusionAuth, you need to do three tasks:

* Launch FusionAuth
* Delegate authentication
* Add functionality to your application

Here's a diagram of this process.

<StartDiagram alt="Launch, then delegate, then add functionality" />

Let's walk through an example.

## Prerequisites

* git
* Docker (if you want to follow the Docker instructions)

## Launch FusionAuth

FusionAuth is downloadable software, so you need to run it somewhere. For this guide, you can either

* Use Docker to install and run FusionAuth and the application
* Use GitPod to run FusionAuth in the cloud in your GitPod account, with no software install needed.

### Docker

<DockerComposeFiles />

TODO need to have this take a kickstart from the tutorial app.

### GitPod

TODO

### What Did You Just Do?

You launched a standalone authentication server and configured it. You set up a user with the email address `[email protected]` and the password `password`, which you will use in the next step.

## Delegate Authentication

Next, you need to update an application to delegate authentication to FusionAuth. This guide will use a simple nodejs application, but any language that supports OIDC or REST APIs will work. You can view working examples in over 20 languages in our [quickstarts](/docs/quickstarts).

TODO maybe use nodejs quickstart as a base https://fusionauth.io/docs/quickstarts/quickstart-javascript-express-web

### Docker

minimum to do here is:

* disable normal login (which goes against in memory database)
* update login button to point to fusionauth

Check failure on line 61 in astro/src/content/docs/get-started/start-here/index.mdx

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'fusionauth'? Raw Output: {"message": "[Vale.Spelling] Did you really mean 'fusionauth'?", "location": {"path": "astro/src/content/docs/get-started/start-here/index.mdx", "range": {"start": {"line": 61, "column": 35}}}, "severity": "ERROR"}


### GitPod

### What Did You Just Do?

You updated a JavaScript application and changed it from authenticating locally to using FusionAuth.

## Add Functionality

By delegating authentication to FusionAuth, your application gets access to authentication and authorization functionality, such as multi-factor authentication, social sign-on, self-service registration and more.

Enabling your users to log in with a different identity store is can reduce friction and user frustration. Let's enable:

* Login with Google
* Login with SAML

You can choose to do one or both of these.

### Login With Google

TODO set up sample google project

### Login With SAML

login against sandbox

Is there anything else that would be cool to show here?

### What Did You Just Do?

You enabled login functionality which your application can benefit from without touching a single line of code.

## Next Steps

You can dig deeper into options for:

* [launching FusionAuth](/docs/get-started/start-here/launch)
* [options for delegating](/docs/get-started/start-here/delegate)
* [adding functionality](/docs/get-started/start-here/add)

## Quickstarts

Looking for something quicker?

Quickstarts walk you through the Launch and Delegate steps, leaving you with a running application in your framework or language of choice, to which you can add functionality.

If you have Docker installed and one of over 20 frameworks and languages, you can run through [our quickstarts](/docs/quickstarts).

Each quickstart includes a complete runnable application and a shell application you can build out by following the step-by-step integration instructions.

24 changes: 24 additions & 0 deletions astro/src/content/docs/get-started/start-here/launch.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
title: Launch FusionAuth
description: To get started with FusionAuth, launch the application.
section: get started
subcategory: start here
navOrder: 10
---
import StartDiagram from 'src/diagrams/docs/get-started/start-here/launch-delegate-add.astro';
import ListHostedLoginPagesUseCases from 'src/content/docs/_shared/_list-hosted-login-pages-use-cases.mdx';

FusionAuth is downloadable software, so you need to run it somewhere.

There are many options.

* Download FusionAuth and run it on your own laptop, using [Docker and Docker Compose](/docs/get-started/download-and-install/docker) to avoid installing a database.
* Download FusionAuth as a [ZIP, DEB or RPM](/docs/get-started/download-and-install/fusionauth-app) if you have a database installed and want to use it.
* This option requires proceeding through maintenance mode where you'll configure a connection to a database.
* Use [GitPod to run it in the cloud](TODO) in your GitPod account.
* [Spin up a free trial instance in FusionAuth Cloud](TODOexpressfreetrial) if you don't want to install anything locally.
* [Use our public sandbox account](https://sandbox.fusionauth.io) if you want to look around the admin UI and integrate with a free, public cloud instance.
* Did we mention this was PUBLIC?

After all of these, you'll have to step through [Setup Wizard](/docs/get-started/download-and-install/setup-wizard) to configure your first user. You'll also be prompted to set up your first application in the admin UI, which corresponds to your mobile or web application. TODO

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
import Diagram from 'src/components/mermaid/FlowchartDiagram.astro';
const { alt } = Astro.props;
//language=Mermaid
const diagram = `
graph TD
launch[Launch FusionAuth] --> delegate[Configure your application to delegate authentication to FusionAuth]
delegate --> add[Add authentication related functionality to your application]
`;
---
<Diagram code={diagram} alt={alt}/>


2 changes: 1 addition & 1 deletion astro/src/tools/docs/categoriesToFloatToTop.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"get started" : {
"EXAMPLE REMOVE ALL CAPS TEXT TO TEST download and install" : true
"start here" : true
}
}
Loading