feat: docs rehaul, fix missing context in console, quickstarts (#1212)

* onboarding components, routing, steps

* onboarding component, toc

* fix onboarding mixin

* header

* refactor docs

* fix layout

* cleanup routing

* docs routing

* fix conventions

* de en routing

* docs, guide contents, nav

* rem i18n support

* fix routing from docs

* rollup onwarn changes, preload

* update svelte plugin, update rollup config

* move docs

* revert img style, remove code table

* rem de completely

* rollup optim, template

* angular quickstart, quickstart overview page, update deps

* fix link

* pack, slug

* prefetch binding, hidden links

* export log

* guards route ch

* fix homepage

* angular docs

* docs

* resolve fsh

* overview

* docs

* docs

* packages fix race condition

* nav, home link

* add vue, aspnet

* doc optimizations

* embed status pal

* angular guide

* angular guide

* dotnet, angular guide

* viewbox

* typo

* block onboarding route for non iam writers

* set links from component data

* fix: fetch org context in guard, more main cnt (#1192)

* change get started guide, fix code blockquotes, typos

* flutter guide

* h2 spacing

* highlight strong

* plus

* rm start sublinks

* add proxy quickstart

* regex

* prevent outside click, fix project grant write

Co-authored-by: Florian Forster <florian@caos.ch>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
This commit is contained in:
Max Peintner
2021-02-16 16:59:18 +01:00
committed by GitHub
parent 30a06e5bec
commit 27be460c07
168 changed files with 2306 additions and 1652 deletions

View File

@@ -1,5 +0,0 @@
---
title: Übersicht
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -2,6 +2,8 @@
title: Overview
---
This documentation describes the structure of ZITADEL, its role system and in parallel the use of [console](https://console.zitadel.ch), our administration UI for ZITADEL.
> All documentations are under active work and subject to change soon!
### Features

View File

@@ -1,5 +0,0 @@
---
title: Console
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,5 +0,0 @@
---
title: Organisationen
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,5 +0,0 @@
---
title: Projekte
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,5 +0,0 @@
---
title: Clients
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -13,7 +13,7 @@ Typical types of applications are:
* User Agent (Single-Page-Application)
* Native
Check out our [Integration Guide](integrate#Overview) for more information.
Check out our [Integration Guide](quickstarts#Overview) for more information.
### Manage clients

View File

@@ -1,5 +0,0 @@
---
title: Rollen
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -10,7 +10,7 @@ title: Roles
For more information about how **roles** can be consumed, have a look the protocol specific information.
- [OpenID Connect / OAuth](integrate#How_to_consume_authorizations_in_your_application_or_service)
- [OpenID Connect / OAuth](quickstarts#How_to_consume_authorizations_in_your_application_or_service)
### Manage Roles

View File

@@ -1,5 +0,0 @@
---
title: Benutzer
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,5 +0,0 @@
---
title: Richtlinien
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,5 +0,0 @@
---
title: Identitäts Provider
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,5 +0,0 @@
---
title: Authorizations
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,5 +0,0 @@
---
title: Management Rollen
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,5 +0,0 @@
---
title: ZITADEL Rollen
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,5 +0,0 @@
---
title: Audit
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,5 +0,0 @@
---
title: System Administration
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -38,7 +38,7 @@ There is even a possibility to regenerate a read model.
</figure>
</div>
> Additional infos to the architecture of ZITADEL is located in [Architecture Docs](documentation#Architecture)
> Additional infos to the architecture of ZITADEL is located in [Architecture Docs](architecture#Architecture)
### Secret Handling

View File

@@ -1,35 +0,0 @@
<meta property="description" content="{$_('home_seo.description')}" />
<meta property="og:url" content="https://docs.zitadel.ch" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Administration" />
<meta property="og:description" content="Erfahren Sie mehr über die Administration von ZITADEL" />
<meta property="og:image" content="https://www.zitadel.ch/zitadel-social-preview25.png" />
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@caos_ch">
<meta name="twitter:title" content="Administration" />
<meta name="twitter:description" content="Erfahren Sie mehr über die Administration von ZITADEL" />
<meta name="twitter:image" content="https://www.zitadel.ch/zitadel-social-preview25.png">
<script type='application/ld+json'>
{
"@context" : "http://schema.org/",
"@type" : "WebPage",
"about": {
"name":"Administrations Dokumentation",
"description":"Erfahren Sie mehr über die Administration von ZITADEL",
},
"author": {
"name":"caos AG",
"address":"Teufener Strasse 19, 9000 St.Gallen",
"email":"hi@caos.ch"
},
"copyrightYear":"2020",
"creator": {
"name":"caos AG",
"address":"Teufener Strasse 19, 9000 St.Gallen",
"email":"hi@caos.ch"
},
}
</script>

View File

@@ -1,35 +0,0 @@
<meta property="description" content="How to administrate ZITADEL" />
<meta property="og:url" content="https://docs.zitadel.ch" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Administration Documentation" />
<meta property="og:description" content="How to administrate ZITADEL" />
<meta property="og:image" content="https://www.zitadel.ch/zitadel-social-preview25.png" />
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@zitadel_ch">
<meta name="twitter:title" content="Administration Documentation" />
<meta name="twitter:description" content="How to administrate ZITADEL" />
<meta name="twitter:image" content="https://www.zitadel.ch/zitadel-social-preview25.png">
<script type='application/ld+json'>
{
"@context" : "http://schema.org/",
"@type" : "WebPage",
"about": {
"name":"Administration Documentation",
"description":"How to administrate ZITADEL",
},
"author": {
"name":"caos AG",
"address":"Teufener Strasse 19, 9000 St.Gallen",
"email":"hi@caos.ch"
},
"copyrightYear":"2020",
"creator": {
"name":"caos AG",
"address":"Teufener Strasse 19, 9000 St.Gallen",
"email":"hi@caos.ch"
},
}
</script>

View File

@@ -0,0 +1,16 @@
---
title: Angular
---
<div style="display: flex; align-items: center;">
<img src="logos/zitadel-logo-solo-darkdesign.svg" height="160px" alt="zitadel"/>
<i style="font-size: 40px; height: 40px; margin: 0 15px;" class="las la-plus"></i>
<img src="tech/angular.svg" height="200px" alt="angular"/>
</div>
This Integration guide shows you the recommended way to integrate **ZITADEL** into your Angular Application.
It demonstrates how to add a user login to your application and fetch some data from the user info endpoint.
At the end of the guide you should have an application able to login a user and read the user profile.
> Note that our **ZITADEL Console** is also written in Angular and can therefore be used as a reference.

View File

@@ -0,0 +1,29 @@
---
title: Configure Zitadel
---
### Setup Application and get Keys
Before we can start building our application we have do do a few configuration steps in ZITADEL Console.
You will need to provide some information about your app. We recommend creating a new app to start from scratch. Navigate to your [Project](https://console.zitadel.ch/projects) and add a new application at the top of the page.
Select Web Application and continue.
We recommend that you use [Authorization Code](architecture#Authorization_Code) in combination with [Proof Key for Code Exchange](architecture#Proof_Key_for_Code_Exchange) for all web applications.
> Make sure Authentication Method is set to `NONE` and the Application Type is set to `SPA` or `NATIVE`.
#### Redirect URLs
A redirect URL is a URL in your application where ZITADEL redirects the user after they have authenticated. Set your url to the domain the web app will be deployed to or use `localhost:4200` for development as Angular will be running on port 4200.
> If you are following along with the sample project you downloaded from our templates, you should set the Allowed Callback URL to http://localhost:4200/auth/callback. You will also have to set dev mode to `true` as this will enable unsecure http for the moment.
If you want to redirect the users back to a route on your application after they have logged out, add an optional redirect in the post redirectURI field.
Continue and Create the application.
#### Client ID and Secret
After successful app creation a popup will appear showing you your clientID as well as a secret.
Copy your client ID as it will be needed in the next step.
> Note: You will be able to regenerate the secret at a later time, though it is not needed for SPAs with Authorization Code Flow.

View File

@@ -0,0 +1,198 @@
---
title: Angular Setup
---
### Install Angular dependencies
You need to install an oauth / oidc client to connect with ZITADEL. Run the following command:
```bash
npm install angular-oauth2-oidc
```
This library helps integrating ZITADEL Authentication in your Angular Application.
### Create and configure Auth Module
Add the Auth module to your Angular imports in AppModule and setup the AuthConfig in a constant above.
```ts
...
import { AuthConfig, OAuthModule } from 'angular-oauth2-oidc';
const authConfig: AuthConfig = {
clientId: 'YOUR CLIENT ID',
redirectUri: 'http://localhost:4200/auth/callback', // change this to your domain later or use window.location.origin.
scope: 'openid profile email',
responseType: 'code',
oidc: true,
};
@NgModule({
declarations: [
AppComponent,
SignedoutComponent,
],
imports: [
OAuthModule..forRoot(),
...
```
Set **openid**, **profile** and **email** as scope, **code** as responseType, and oidc to **true**.
Then create a Authentication Service to provide the functions to authenticate your user.
You can use Angulars schematics to do so:
``` bash
ng g component services/auth
```
This will create an AuthService automatically for you.
Copy the following code to your service. This code provides a function `authenticate()` which redirects the user to ZITADEL. After the user has logged in it will be redirected back to your redirectURI set in Auth Module and Console. Make sure both correspond, otherwise ZITADEL will throw an error.
```ts
import { AuthConfig, OAuthService } from 'angular-oauth2-oidc';
export default class AuthService {
private authConfig!: AuthConfig;
private _authenticated: boolean = false;
private readonly _authenticationChanged: BehaviorSubject<
boolean
> = new BehaviorSubject(this.authenticated);
constructor(
private oauthService: OAuthService,
private statehandler: StatehandlerService,
) { }
public get authenticated(): boolean {
return this._authenticated;
}
public get authenticationChanged(): Observable<boolean> {
return this._authenticationChanged;
}
public getOIDCUser(): Observable<any> {
return from(this.oauthService.loadUserProfile());
}
public async authenticate(): Promise<boolean> {
this.oauthService.configure(this.authConfig);
this.oauthService.strictDiscoveryDocumentValidation = false;
await this.oauthService.loadDiscoveryDocumentAndTryLogin();
this._authenticated = this.oauthService.hasValidAccessToken();
if (!this.oauthService.hasValidIdToken() || !this.authenticated || partialConfig || force) {
const newState = setState ? await this.statehandler.createState().toPromise() : undefined;
this.oauthService.initCodeFlow(newState);
}
this._authenticationChanged.next(this.authenticated);
return this.authenticated;
}
public signout(): void {
this.oauthService.logOut();
this._authenticated = false;
this._authenticationChanged.next(false);
}
}
```
### Add Login in your application
To login a user, a component or a guard is needed.
- A component provides a button prompting the user to start the login flow.
`authenticate()` redirects your user to ZITADEL.ch for authentication. Upon successfull Authentication, ZITADEL will redirect the user back to your previously defined Redirect URL.
- A guard can be setup to check if the user has a valid **Access Token** to proceed. This will check if the user has a stored **accesstoken** in storage or otherwise prompt the user to login.
The use of this components totally depends on your application. In most cases you need both.
To create a component use
``` bash
ng g component components/login
```
and then inject the authService to call `authenticate()`.
Same for the guard:
``` bash
ng g guard guards/auth
```
This code shows the AuthGuard used in our Console.
```ts
import { AuthService } from 'src/app/services/auth.service';
@Injectable({
providedIn: 'root',
})
export class AuthGuard implements CanActivate {
constructor(private auth: AuthService) { }
public canActivate(
_: ActivatedRouteSnapshot,
state: RouterStateSnapshot,
): Observable<boolean> | Promise<boolean> | boolean {
if (!this.auth.authenticated) {
return this.auth.authenticate();
}
return this.auth.authenticated;
}
}
```
it can easily be added to your RouterModule.
```ts
...
const routes: Routes = [
{
path: '',
loadChildren: () => import('./pages/home/home.module').then(m => m.HomeModule),
canActivate: [AuthGuard],
},
...
```
### Add Logout in your application
The authService and Library also provides a useful function for logging out your users. Just call `auth.signout()` to log out your user. Note that you can also configure your Logout Redirect URL if you want your Users to be redirected after logout.
```ts
import { AuthService } from 'src/app/services/auth.service.ts';
export class SomeComponentWithLogout {
constructor(private authService: AuthService){}
public signout(): Promise<void> {
return this.authService.signout();
}
}
```
### Show User Information
To fetch user data, ZITADELS user info endpoint has to be called. This data contains sensitive information and artifacts related to your users identity and the scopes you defined in your Auth Config.
Our AuthService already includes a function called getOIDCUser(). You can call it whereever you need this information.
```ts
import { AuthService } from 'src/app/services/auth.service.ts';
export class SomeComponentWithUserInfo {
constructor(public authService: AuthService){}
}
```
and in your html
```html
<div *ngIf="(authService.getOIDCUser | async) as oidcInfo">
<p>{{oidcInfo | json}}</p>
</div>
```

View File

@@ -0,0 +1,9 @@
---
title: Completion
---
### What next?
You have successfully integrated ZITADEL in your Angular Application! Now you can proceed implementing our APIs to include Authorization. Refer to our [Docs](apis#Authentication_API) or checkout our Console Code on [Github](https://github.com/caos/zitadel) which is using GRPC to access data.
For more information about creating an angular application we refer to [Angular](https://angular.io/start) and for more information about the used oauth/oidc library consider reading their docs at [angular-oauth2-oidc](https://github.com/manfredsteyer/angular-oauth2-oidc).

View File

@@ -3,6 +3,8 @@ title: Overview
description: …
---
<i class="las la-code" style="font-size: 100px; height: 100px; color:#6c8eef" ></i>
> All documentations are under active work and subject to change soon!
### APIs

View File

@@ -2,6 +2,8 @@
title: Overview
---
<i class="las la-project-diagram" style="font-size: 100px; height: 100px; color:#6c8eef"></i>
> All documentations are under active work and subject to change soon!
This part of the **ZITADEL** documentation comprises three major subject areas:

View File

@@ -97,3 +97,4 @@ With this design even the outage of a whole data-center would have a minimal imp
<figcaption itemprop="caption description">Multi-Cluster Architecture</figcaption>
</figure>
</div>

View File

@@ -3,22 +3,21 @@ title: OpenID Connect 1.0 & OAuth 2.0
---
### Endpoints and Domains
This chapter documents the [OpenID Connect 1.0](https://openid.net/connect/) and [OAuth 2.0](https://oauth.net/2/) features provided by **ZITADEL**.
Under normal circumstances **ZITADEL** need four domain names to operate properly.
| Domain Name | Example | Description |
|:------------|:----------------------|--------------------------------------------------------------------------------------------------------------------------------------|
| issuer | `issuer.zitadel.ch` | Provides the [OpenID Connect 1.0 Discovery Endpoint](#openid-connect-10-discovery) |
| api | `api.zitadel.ch` | All ZITADEL API's are located under this domain see [API explanation](develop#APIs) for details |
| issuer | `issuer.zitadel.ch` | Provides the [OpenID Connect 1.0 Discovery Endpoint](#OpenID_Connect_1_0_Discovery) |
| api | `api.zitadel.ch` | All ZITADEL API's are located under this domain see [API explanation](apis#APIs) for details |
| login | `accounts.zitadel.ch` | The accounts.* page provides server renderer pages like login and register and as well the authorization_endpoint for OpenID Connect |
| console | `console.zitadel.ch` | With the console.* domain we serve the assets for the management gui |
#### OpenID Connect 1.0 Discovery
The OpenID Connect Discovery Endpoint is located within the issuer domain.
For example with [zitadel.ch](zitadel.ch) this would be the domain [issuer.zitadel.ch](issuer.zitadel.ch). This would give us [https://issuer.zitadel.ch/.well-known/openid-configuration](https://issuer.zitadel.ch/.well-known/openid-configuration).
For example with [zitadel.ch](https://zitadel.ch), issuer.zitadel.ch would be the domain. This would give us [https://issuer.zitadel.ch/.well-known/openid-configuration](https://issuer.zitadel.ch/.well-known/openid-configuration).
**Link to spec.** [OpenID Connect Discovery 1.0 incorporating errata set 1](https://openid.net/specs/openid-connect-discovery-1_0.html)
@@ -50,7 +49,7 @@ For example with [zitadel.ch](zitadel.ch) this would be the domain [issuer.zitad
#### OAuth 2.0 Metadata
**ZITADEL** does not yet provide a OAuth 2.0 Metadata endpoint but instead provides a [OpenID Connect Discovery Endpoint](#openid-connect-10-discovery).
**ZITADEL** does not yet provide a OAuth 2.0 Metadata endpoint but instead provides a [OpenID Connect Discovery Endpoint](#OpenID_Connect_1_0_Discovery).
### Scopes
@@ -287,3 +286,4 @@ curl --request POST \
#### Security Assertion Markup Language (SAML) 2.0 Profile
**Link to spec.** [Security Assertion Markup Language (SAML) 2.0 Profile for OAuth 2.0 Client Authentication and Authorization Grants](https://tools.ietf.org/html/rfc7522)

View File

@@ -0,0 +1,15 @@
---
title: ASP.NET Auth and Authz
description: ...
---
<div style="display: flex; align-items: center;">
<img src="logos/zitadel-logo-solo-darkdesign.svg" height="160px" alt="zitadel"/>
<i style="font-size: 40px; height: 40px; margin: 0 15px;" class="las la-plus"></i>
<img src="tech/net.svg" height="160px" alt="aspnet"/>
</div>
> This quickstart is not yet released. Come back later!
This Integration guide shows you the recommended way on how to integrate **ZITADEL** into your ASP NET Backend.

View File

@@ -1,6 +0,0 @@
---
title: Übersicht
description: …
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,6 +0,0 @@
---
title: Authentication API
description: …
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,6 +0,0 @@
---
title: Management API
description: …
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,6 +0,0 @@
---
title: Admin API
description: …
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,5 +0,0 @@
---
title: Übersicht
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,20 +0,0 @@
---
title: Prinzipien
---
- Seien Sie bei Ihren Entscheidungen transparent
- Zustandsloses Anwendungsdesign
- Das System der Aufzeichnungen ist der Ereignisspeicher
- Alles andere muss regeneriert werden können
- Versuchen Sie nicht, komplexe Probleme außerhalb des IAM-Bereichs zu lösen
- Verwenden Sie skalierbaren Speicher für den Ereignisspeicher und die Abfragemodelle
- Versuchen Sie, wenn immer möglich idempotent zu sein
- Reduzieren Sie die Notwendigkeit von System- oder externen Abhängigkeiten so weit wie möglich
- Automatisierung einbeziehen
- Zuerst die Design-API
- Optimieren Sie alle Komponenten für den Betrieb am zweiten Tag
- Verwenden Sie nur Open-Source-Projekte mit permissiven Lizenzen
- Rollen Sie nicht Ihre eigene Krypto
- Standard so weit wie möglich einbeziehen
- Nutzen Sie die Funktionen der Plattform
- Mit einem CDN und einer WAF laufen können

View File

@@ -1,5 +0,0 @@
---
title: Architektur
---
> TBD

View File

@@ -1,5 +0,0 @@
---
title: OpenID Connect 1.0 & OAuth 2.0
---
> TBD

78
site/docs/export-log Normal file
View File

@@ -0,0 +1,78 @@
4.66 kB service-worker-index.html
10.5 kB index.html
1.15 kB icons/favicon.ico
481 B manifest.json
3.17 kB prism.css
11.6 kB default-skin/default-skin.css
14.8 kB client/client-48a0d285.css
3.88 kB client/index-5d76bab7.css
4.14 kB photoswipe.css
33.9 kB client/client.ea30bda8.js
559 B client/inject_styles.5607aec6.js
18.1 kB client/index.6f1d050b.js
5.54 kB start.json
967 B quickstarts.json
6.45 kB logos/zitadel-logo-light.svg
8.3 kB logos/zitadel-logo-solo-darkdesign.svg
18 kB start/index.html
14.9 kB img/develop2.png
10.1 kB img/projects2.png
11.1 kB img/personal2.png
7.96 kB quickstarts/index.html
15.2 kB use/index.html
22.8 kB apis/index.html
73.1 kB img/accounts_org_register.png
10.3 kB client/[slug]-3cb415b8.css
1.52 kB client/index-4d174bf5.css
20.7 kB client/[slug].aebb20dc.js
4.16 kB client/index.c2043c63.js
114 kB architecture/index.html
207 kB img/accounts_password.png
199 kB img/accounts_page.png
899 B tech/angular.svg
1.79 kB tech/dart.svg
2.29 kB tech/golang.svg
200 kB img/accounts_otp_verify.png
21.3 kB img/zitadel_software_architecture.png
10.4 kB img/zitadel_cluster_architecture.png
184 kB administrate/index.html
39 kB angular/index.html
38.9 kB dart/index.html
38.8 kB go/index.html
7.37 kB img/zitadel_multicluster_architecture.png
31 kB img/console_user_entry.png
83.5 kB img/console_admin_entry.png
167 kB img/console_admin_system.png
129 kB img/console_org_domain_default.png
126 kB img/console_org_domain_add.png
142 kB img/console_org_domain_added.png
126 kB img/console_user_personal_information.png
135 kB img/console_org_domain_verify.png
52.8 kB img/console_user_personal_info.png
15 kB img/console_projects_empty.png
40.2 kB img/console_projects_my_first_project.png
40.7 kB img/console_org_domain_verified.png
178 kB img/console_org_manage_roles_2.png
129 kB img/console_org_manage_roles_1.png
38.1 kB img/console_org_domain_verify_dns.png
112 kB img/console_project_manage_roles_1.png
19.5 kB img/console_clients_my_first_spa_wizard_1.png
21.6 kB img/console_clients_my_first_spa_wizard_4.png
22.3 kB img/console_clients_my_first_spa_wizard_3.png
28.3 kB img/console_clients_my_first_spa_config.png
27.1 kB img/console_user_list_search.png
159 kB img/console_project_manage_roles_2.png
25.2 kB img/console_user_list.png
16.3 kB img/console_clients_my_first_spa_wizard_2.png
38.8 kB img/console_authz_add_1.png
77.2 kB administrate.json
26.6 kB img/console_authz_overview.png
186 kB img/console_user_manage_roles_1.png
47.9 kB img/console_user_manage_roles_2.png
110 kB img/console_user_create_done.png
36.1 kB img/console_authz_add_2.png
34.1 kB img/console_authz_add_3.png
29.6 kB img/console_user_create_form.png
6.53 kB apis.json
142 kB img/console_iam_admin_failed.png
167 kB img/console_iam_admin_views.png

View File

@@ -0,0 +1,14 @@
---
title: Flutter Login
description: ...
---
<div style="display: flex; align-items: center;">
<img src="logos/zitadel-logo-solo-darkdesign.svg" height="160px" alt="zitadel"/>
<i style="font-size: 40px; height: 40px; margin: 0 15px;" class="las la-plus"></i>
<img src="tech/flutter.svg" height="150px" alt="flutter"/>
</div>
> This quickstart is not yet released. Come back later!
This Integration guide shows you the recommended way on how to integrate **ZITADEL** into your Dart Application.

View File

@@ -0,0 +1,15 @@
---
title: Dart Login
description: ...
---
<div style="display: flex; align-items: center;">
<img src="logos/zitadel-logo-solo-darkdesign.svg" height="160px" alt="zitadel"/>
<i style="font-size: 40px; height: 40px; margin: 0 15px;" class="las la-plus"></i>
<img src="tech/golang.svg" height="80px" alt="golang"/>
</div>
> This quickstart is not yet released. Come back later!
This Integration guide shows you the recommended way on how to integrate **ZITADEL** into your Go Lang Backend.

View File

@@ -1,6 +0,0 @@
---
title: Übersicht
description: ...
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,6 +0,0 @@
---
title: Single Page Application
description: ...
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,6 +0,0 @@
---
title: Server Side Application
description: ...
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,6 +0,0 @@
---
title: Mobile Application
description: ...
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,6 +0,0 @@
---
title: Native Application
description: ...
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,6 +0,0 @@
---
title: Proxy / WAF
description: ...
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,6 +0,0 @@
---
title: API
description: ...
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,6 +0,0 @@
---
title: Products
description: ...
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -0,0 +1,13 @@
---
title: OAuth 2.0 Proxy
---
<div style="display: flex; align-items: center;">
<img src="logos/zitadel-logo-solo-darkdesign.svg" height="160px" alt="zitadel"/>
<i style="font-size: 40px; height: 40px; margin: 0 15px;" class="las la-plus"></i>
<img src="tech/oauth2-proxy.svg" height="200px" alt="oauth2-proxy"/>
</div>
### OAuth2 Proxy Project
[OAuth2-proxy](https://github.com/oauth2-proxy/oauth2-proxy) is a project which allows services to delegate the authentication flow to a IDP, for example **ZITADEL**

View File

@@ -0,0 +1,29 @@
---
title: Configure Zitadel
---
### Setup Application and get Keys
Before we can start building our application we have do do a few configuration steps in ZITADEL Console.
You will need to provide some information about your app. We recommend creating a new app to start from scratch. Navigate to your [Project](https://console.zitadel.ch/projects) and add a new application at the top of the page.
Select Web Application and continue.
We recommend that you use [Authorization Code](architecture#Authorization_Code) for the OAuth 2.0 Proxy.
> Make sure Authentication Method is set to `BASIC` and the Application Type is set to `Web`.
#### Redirect URLs
A redirect URL is a URL in your application where ZITADEL redirects the user after they have authenticated. Set your url to the domain the proxy will be deployed to or use the default one `http://127.0.0.1:4180/oauth2/callback`.
> If you are following along with the sample project you downloaded from our templates, you should set the Allowed Callback URL to http://localhost:4200/auth/callback. You will also have to set dev mode to `true` as this will enable unsecure http for the moment.
If you want to redirect the users back to a route on your application after they have logged out, add an optional redirect in the post redirectURI field.
Continue and Create the application.
#### Client ID and Secret
After successful app creation a popup will appear showing you your clientID as well as a secret.
Copy your client ID and Secrets as it will be needed in the next step.
> Note: You will be able to regenerate the secret at a later time if you loose it.

View File

@@ -0,0 +1,28 @@
---
title: OAuth 2.0 Proxy Setup
---
### Authentication Example
```toml
provider = "oidc"
user_id_claim = "sub" #uses the subject as ID instead of the email
provider_display_name = "ZITADEL"
redirect_url = "http://127.0.0.1:4180/oauth2/callback"
oidc_issuer_url = "https://issuer.zitadel.ch"
upstreams = [
"https://example.corp.com"
]
email_domains = [
"*"
]
client_id = "{ZITADEL_GENERATED_CLIENT_ID}"
client_secret = "{ZITADEL_GENERATED_CLIENT_SECRET}"
pass_access_token = true
cookie_secret = "{SUPPLY_SOME_SECRET_HERE}"
skip_provider_button = true
cookie_secure = false #localdev only false
http_address = "127.0.0.1:4180" #localdev only
```
> This was tested with version `oauth2-proxy v6.1.1 (built with go1.14.2)`

View File

@@ -0,0 +1,7 @@
---
title: Completion
---
### What next?
You have successfully integrated ZITADEL in your proxy!

View File

@@ -13,4 +13,4 @@ This Integration guide gives you recommendations on how to integrate different C
- Native App
- Reverse Proxy
For more details about how **ZITADEL** treats [scopes](documentation#Scopes) and [claims](documentation#Claims) see the [documentations](documentation).
For more details about how **ZITADEL** treats [scopes](architecture#Scopes) and [claims](architecture#Claims) see the [documentations](architecture).

View File

@@ -5,7 +5,7 @@ description: ...
### SPA Protocol and Flow recommendation
If your [client](administrate#Clients) is a single page application (SPA) we recommend that you use [Authorization Code](documentation#Authorization_Code) in combination with [Proof Key for Code Exchange](documentation#Proof_Key_for_Code_Exchange).
If your [client](administrate#Clients) is a single page application (SPA) we recommend that you use [Authorization Code](architecture#Authorization_Code) in combination with [Proof Key for Code Exchange](architecture#Proof_Key_for_Code_Exchange).
This flow has great support with most modern languages and frameworks and is the recommended default.

View File

@@ -1,6 +0,0 @@
---
title: Schnellstart
description: ...
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -1,54 +0,0 @@
---
title: Quick-Start
description: A quick-start reference for the impatient reader.
---
> All documentations are under active work and subject to change soon!
### Trying out ZITADEL
You can either use our cloud-instance [ZITADEL.ch](https://zitadel.ch) or deploy a dedicated **ZITADEL** instance. To get started, we recommend you try out our free tier on [ZITADEL.ch](https://zitadel.ch).
### Use ZITADEL.ch
To use ZITADEL in your project you need to:
1. Set up a new [client](administrate#What_are_clients) and [users](administrate#What_are_users) in our [Console](administrate#What_is_Console);
2. Configure your project to use ZITADEL.
To register your free [organisation](administrate#Organisations), visit this link [register organisation](https://accounts.zitadel.ch/register/org).
After accepting the TOS and filling out all the required fields you will receive an email with further instructions.
<div class="zitadel-gallery" itemscope itemtype="http://schema.org/ImageGallery">
<figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
<a href="img/accounts_org_register.png" itemprop="contentUrl" data-size="1472x1000">
<img src="img/accounts_org_register.png" itemprop="thumbnail" alt="Organisation Overview" />
</a>
<figcaption itemprop="caption description">Organisation Register</figcaption>
</figure>
</div>
#### Verify your domain name (optional)
When you verify your domain you get the benefit that your [organisations](administrate#Organisations) [users](administrate#Users) can use this domain as **preferred logonname**. You find a more detailed explanation [How ZITADEL handles usernames](administrate#How_ZITADEL_handles_usernames).
The verification process is documented [here](administrate#Verify_a_domain_name)
#### Add Users to your organisation
To add new user just follow [this guide](administrate#Create_Users)
#### Setup an application
First [create a project](administrate#Create_a_project)
Then create within this [project](administrate#Projects) a [new client](administrate#Create_a_client)
The wizard should provide some guidance what client is the proper for you. If you are still unsure consult our [Integration Guide](integrate#Overview)
### Use ORBOS to install ZITADEL
> This will be added later on
### Install ZITADEL with static manifest
> This will be added later on

View File

@@ -0,0 +1,19 @@
---
title: Welcome to ZITADEL
description: A quick-start reference for the impatient reader.
---
Most applications need to know the identity of a user allowing to securely store user data in the cloud and provide the same personalised experience across all of the user's devices.
ZITADEL's authentication provides backend services, easy-to-use SDKs, and ready-made UI libraries to authenticate users in your application. It supports authentication using passwords and applies additional security with the help of a second factor, for example OTP, to ensure a safe and secure access.
It additionally leverages industry standards like OAuth 2.0 and OpenID Connect such that it can be easily integrated in your custom backend.
This documentation demonstrates the different installation methods of ZITADEL and provides a quick start guide on how to register your organization as well as creating your first project.
> All documentations are under active work and subject to change soon!
## Trying out ZITADEL
### Installation Types
You can either use our cloud-instance [zitadel.ch](https://zitadel.ch) or deploy a dedicated **ZITADEL** instance. To get started, we recommend you to try out our free tier first.

View File

@@ -0,0 +1,39 @@
---
title: ZITADEL.ch
description: A quick-start reference to use our cloud instance zitadel.ch
---
### Use cloud instance zitadel.ch
To create a ZITADEL project, you have to register as an organization first. Click [here](https://accounts.zitadel.ch/register/org) to register.
You will receive an email prompting you to verify your mail.
Then go to your [Console Projects](https://console.zitadel.ch/projects) view and create a new project.
<div class="zitadel-gallery" itemscope itemtype="http://schema.org/ImageGallery">
<figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
<a href="img/accounts_org_register_light.png" itemprop="contentUrl" data-size="840x1398">
<img src="img/accounts_org_register_light.png" itemprop="thumbnail" alt="Organisation Overview" />
</a>
<figcaption itemprop="caption description">Organisation Register</figcaption>
</figure>
</div>
Now you can proceed adding [users](administrate#What_are_users) to your organization as well as integrating your applications. We refer to our administration [documentation](administrate#What_are_clients) as well as our [quickstarts](quickstarts) to do so.
#### Verify your domain name (optional)
If you verify a domain you get the benefit that your organisations users can use this domain as the **preferred logonname**. You find a more detailed explanation on [how ZITADEL handles usernames](administrate#How_ZITADEL_handles_usernames) here.
The verification process is documented [here](administrate#Verify_a_domain_name)
#### Elect Managers
ZITADEL allows you to give other users control over ZITADEL Console itself. This can be restricted to some kind of write and/or read. This can be especially useful for directing administration over several users. You can have managers able to edit project settings and others able to create/add users only.
Read the [administration](administrate#ZITADEL_Roles) guide for more information.
> Note: ZITADEL Managers are always located on the right sidepanel of console.
#### Integrating an application
After creating your project you can start integrating your applications.
After choosing your [project](https://console.zitadel.ch/projects) add a client application on the top of the page.
The wizard should provide some guidance what client is the proper for you. If you are still unsure consult our [Quickstart Guides](quickstarts).

View File

@@ -0,0 +1,7 @@
---
title: ORBOS
---
### Use ORBOS to install ZITADEL
> This will be added later on

View File

@@ -0,0 +1,7 @@
---
title: Static Manifest
---
### Install ZITADEL with static manifest
> This will be added later on

View File

@@ -1,5 +0,0 @@
---
title: Benutzerhandbuch
---
> This Language is not yet translated. Please consult the English version.

View File

@@ -2,6 +2,8 @@
title: User Manual
---
<i class="las la-book-reader" style="font-size: 100px; height: 100px; color:#6c8eef"></i>
> All documentations are under active work and subject to change soon!
### Self Register User

View File

@@ -0,0 +1,15 @@
---
title: Vue Login and User Endpoint
description: ...
---
<div style="display: flex; align-items: center;">
<img src="logos/zitadel-logo-solo-darkdesign.svg" height="160px" alt="zitadel"/>
<i style="font-size: 40px; height: 40px; margin: 0 15px;" class="las la-plus"></i>
<img src="tech/vue.svg" height="140px" alt="vue"/>
</div>
> This quickstart is not yet released. Come back later!
This Integration guide shows you the recommended way on how to integrate **ZITADEL** into your Vue Frontend Application.