# Keycloak Setup für r/place ## Keycloak Installation ### Docker (Empfohlen) ```bash docker run -d \ --name keycloak \ -p 8080:8080 \ -e KEYCLOAK_ADMIN=admin \ -e KEYCLOAK_ADMIN_PASSWORD=admin \ quay.io/keycloak/keycloak:latest \ start-dev ``` ### Standalone Installation 1. Lade Keycloak von https://www.keycloak.org/downloads herunter 2. Entpacke das Archiv 3. Starte Keycloak: `bin/kc.sh start-dev` ## Konfiguration ### 1. Admin Console öffnen Gehe zu http://localhost:8080/admin und melde dich mit admin/admin an. ### 2. Realm erstellen 1. Klicke auf "Create Realm" 2. Name: `rplace` 3. Klicke "Create" ### 3. Client erstellen 1. Gehe zu "Clients" → "Create client" 2. Client ID: `rplace-client` 3. Client type: `OpenID Connect` 4. Klicke "Next" 5. Client authentication: `OFF` (Public client) 6. Standard flow: `ON` 7. Direct access grants: `ON` 8. Klicke "Save" ### 4. Client Settings 1. Gehe zu deinem Client `rplace-client` 2. Settings Tab: - Valid redirect URIs: `http://localhost:5000/*` - Valid post logout redirect URIs: `http://localhost:5000/*` - Web origins: `http://localhost:5000` 3. Klicke "Save" ### 5. Test User erstellen 1. Gehe zu "Users" → "Add user" 2. Username: `testuser` 3. Klicke "Create" 4. Gehe zum "Credentials" Tab 5. Setze ein Passwort und deaktiviere "Temporary" ## r/place Konfiguration Bearbeite `config.cfg`: ```ini ENABLE_KEYCLOAK=true KEYCLOAK_REALM=rplace KEYCLOAK_AUTH_URL=http://localhost:8080 KEYCLOAK_CLIENT_ID=rplace-client ``` ## Erweiterte Konfiguration ### HTTPS (Produktion) Für Produktionsumgebungen: ```ini KEYCLOAK_AUTH_URL=https://dein-keycloak-server.de ``` ### Benutzer-Attribute Du kannst zusätzliche Benutzerattribute in Keycloak konfigurieren: 1. Gehe zu "Client scopes" 2. Bearbeite "profile" scope 3. Füge Mappers für zusätzliche Attribute hinzu ### Sicherheit - Ändere Admin-Passwort - Konfiguriere SSL/TLS - Setze starke Passwort-Richtlinien - Aktiviere Brute-Force-Schutz ## Fehlerbehebung ### CORS-Probleme Stelle sicher, dass die Web origins korrekt konfiguriert sind. ### Token-Probleme Überprüfe die Client-Konfiguration und Redirect-URIs. ### Verbindungsprobleme Stelle sicher, dass Keycloak erreichbar ist und die URLs korrekt sind.