# Keycloak Client Anlegen Diese Schritte legen den Client fuer `desktop.kusche.berlin` in Keycloak an. ## Ziel Wir brauchen einen eigenen OpenID-Client fuer die Desktop-Shell, damit: - der Login ueber Keycloak laeuft - der Ruecksprung sauber auf `desktop.kusche.berlin` erfolgt - spaeter ein eigenes Login-Theme fuer diesen Client genutzt werden kann ## Vorab benoetigte Daten Vor dem Anlegen solltest du diese Werte kennen: - Keycloak Basis-URL - Beispiel: `https://auth.kusche.berlin` - Realm-Name - Beispiel: `kusche-berlin` - Staging-Domain - Beispiel: `https://desktop-staging.kusche.berlin` - Live-Domain - Beispiel: `https://desktop.kusche.berlin` ## Client anlegen 1. In Keycloak einloggen. 2. Den passenden Realm auswaehlen. 3. `Clients` aufrufen. 4. `Create client` klicken. ## Grunddaten Diese Werte setzen: - `Client type`: `OpenID Connect` - `Client ID`: `desktop-kusche-berlin` - `Name`: `Desktop Kusche Berlin` - `Description`: `Desktop Shell Login fuer Kusche.Berlin` Dann `Next`. ## Capability config Diese Werte setzen: - `Client authentication`: `On` - `Authorization`: `Off` - `Standard flow`: `On` - `Direct access grants`: `Off` - `Implicit flow`: `Off` - `Service accounts roles`: `Off` Dann `Next`. ## Login config Diese Werte setzen: - `Root URL`: - Staging zuerst: `https://desktop-staging.kusche.berlin` - `Home URL`: - `https://desktop-staging.kusche.berlin/` - `Valid redirect URIs`: - `https://desktop-staging.kusche.berlin/auth/callback` - spaeter zusaetzlich live: - `https://desktop.kusche.berlin/auth/callback` - `Valid post logout redirect URIs`: - `https://desktop-staging.kusche.berlin/` - spaeter zusaetzlich live: - `https://desktop.kusche.berlin/` - `Web origins`: - `https://desktop-staging.kusche.berlin` - spaeter zusaetzlich live: - `https://desktop.kusche.berlin` Dann `Save`. ## Client Secret holen Nach dem Speichern: 1. Den neuen Client oeffnen. 2. Auf `Credentials` gehen. 3. Das generierte Secret kopieren. Dieses Secret bitte noch nicht ins Repo schreiben. ## Optional aber sinnvoll Diese Einstellungen danach noch pruefen: - `Login theme` - spaeter auf das eigene Desktop-Theme setzen - `Consent required` - `Off` - `Display on consent screen` - `Off` ## Werte fuer unser Projekt Nach dem Anlegen brauchen wir diese finalen Werte: - `base_url` - Beispiel: `https://auth.kusche.berlin` - `realm` - Beispiel: `kusche-berlin` - `client_id` - `desktop-kusche-berlin` - `client_secret` - aus `Credentials` ## Danach im Projekt eintragen Die Werte kommen danach in eine Umgebungsdatei, nicht in die allgemeine Basisdatei. Geplant ist: - `config/staging/keycloak.php` - `config/prod/keycloak.php` Beispielstruktur: ```php true, 'enforce_login' => true, 'allow_desktop_preview' => false, 'base_url' => 'https://auth.kusche.berlin', 'realm' => 'kusche-berlin', 'client_id' => 'desktop-kusche-berlin', 'client_secret' => 'HIER_DAS_SECRET', 'redirect_path' => '/auth/callback', 'scopes' => ['openid', 'profile', 'email'], ]; ``` ## Wichtig - `client_secret` gehoert nicht in `config/keycloak.php` - nur in `config/staging/keycloak.php` bzw. `config/prod/keycloak.php` - wenn Staging und Live unterschiedliche Keycloak-Clients bekommen sollen, dann je Umgebung eigene `client_id` und eigenes Secret nutzen ## Rueckmeldung an Codex Wenn der Client angelegt ist, brauche ich von dir nur: - `base_url` - `realm` - `client_id` - ob Staging und Live denselben Client nutzen sollen oder getrennte Clients Das Secret musst du mir nicht im Chat schicken, wenn du es lieber direkt lokal in die Env-Datei eintragen willst.