diff --git a/docs/FORGEJO-KEYCLOAK.md b/docs/FORGEJO-KEYCLOAK.md new file mode 100644 index 0000000..1b1d283 --- /dev/null +++ b/docs/FORGEJO-KEYCLOAK.md @@ -0,0 +1,86 @@ +# THECR3W-DEV — INTEGRACJA FORGEJO Z KEYCLOAK (OIDC) +## Instancja Keycloak: `https://login.thecr3wnet.com` (Realm: `master`) +## Instancja Forgejo: `https://git.thecr3wnet.com` + +--- + +## 1. Krok 1: Utworzenie Klienta OIDC w Keycloak + +Zaloguj się do panelu administracyjnego Keycloak (`https://login.thecr3wnet.com/admin/master/console/`). +Upewnij się, że jesteś w wymaganym realm: **`master`**. + +1. Przejdź do: **Clients** -> **Create client**. +2. **General Settings:** + - **Client type:** `OpenID Connect` + - **Client ID:** `forgejo` + - **Name:** `TheCr3w Forgejo Git` + - Kliknij *Next*. +3. **Capability config:** + - **Client authentication:** `ON` (Confidential client) + - **Authorization:** `OFF` + - **Authentication flow:** + - Zaznacz: `Standard flow` (Authorization Code Flow) + - Odznacz: `Direct access grants`, `Implicit flow` + - Kliknij *Next*. +4. **Login settings:** + - **Root URL:** `https://git.thecr3wnet.com` + - **Home URL:** `https://git.thecr3wnet.com/` + - **Valid redirect URIs:** + - `https://git.thecr3wnet.com/user/oauth2/Keycloak/callback` + - `https://git.thecr3wnet.com/user/oauth2/keycloak/callback` + - **Valid post logout redirect URIs:** + - `https://git.thecr3wnet.com/` + - **Web origins:** + - `https://git.thecr3wnet.com` + - Kliknij *Save*. +5. **Pobranie Client Secret:** + - Przejdź do zakładki **Credentials**. + - Skopiuj wartość pola **Client Secret** (będzie potrzebna w Forgejo). + +--- + +## 2. Krok 2: Konfiguracja Źródła Uwierzytelniania w Forgejo + +Możesz to skonfigurować na dwa sposoby: + +### Sposób A: Jednym poleceniem w terminalu SSH na serwerze (Rekomendowane) + +Zastąp `` wartością skopiowaną z Keycloak: + +```bash +docker exec -u 1000 forgejo forgejo admin auth add-oauth \ + --name Keycloak \ + --provider openidConnect \ + --key forgejo \ + --secret "" \ + --auto-discovery-url https://login.thecr3wnet.com/realms/master/.well-known/openid-configuration +``` + +--- + +### Sposób B: Przez interfejs graficzny Forgejo + +1. Zaloguj się na konto administratora w `https://git.thecr3wnet.com`. +2. Kliknij ikonę profilu w prawym górnym rogu -> **Site Administration** (Zarządzanie witryną). +3. Przejdź do zakładki **Authentication Sources** (Źródła uwierzytelniania) -> kliknij **Add Authentication Source**. +4. Wypełnij formularz: + - **Authentication Type:** `OAuth2` + - **Authentication Name:** `Keycloak` + - **OAuth2 Provider:** `OpenID Connect` + - **Client ID (Key):** `forgejo` + - **Client Secret:** Wklej skopiowany `Client Secret` z Keycloak + - **OpenID Connect Auto Discovery URL:** + `https://login.thecr3wnet.com/realms/master/.well-known/openid-configuration` + - Zaznacz opcje: + - `Enable Auto-Registration` (Automatyczne zakładanie kont przy pierwszym logowaniu) + - `Activate Users` (Aktywuj użytkowników automatycznie) +5. Kliknij **Add Authentication Source**. + +--- + +## 3. Krok 3: Logowanie i Weryfikacja + +1. Otwórz w oknie incognito: `https://git.thecr3wnet.com/user/login`. +2. Na ekranie logowania pojawi się niebieski przycisk: **Zaloguj przez Keycloak**. +3. Po kliknięciu zostaniesz przekierowany do `https://login.thecr3wnet.com` (realm `master`). +4. Po podaniu loginu i hasła nastąpi automatyczny powrót do Forgejo z zalogowanym użytkownikiem. diff --git a/scripts/setup_forgejo_keycloak.sh b/scripts/setup_forgejo_keycloak.sh new file mode 100644 index 0000000..e60997f --- /dev/null +++ b/scripts/setup_forgejo_keycloak.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# ============================================================================== +# TheCr3w-dev — Dodanie Keycloak OIDC do Forgejo przez CLI +# ============================================================================== + +set -eo pipefail + +SECRET="$1" + +if [ -z "$SECRET" ]; then + echo "Użycie: ./scripts/setup_forgejo_keycloak.sh " + echo "Pobierz Client Secret z Keycloak: Clients -> forgejo -> Credentials -> Client Secret" + exit 1 +fi + +echo "Dodawanie Keycloak OIDC do Forgejo..." + +docker exec -u 1000 forgejo forgejo admin auth add-oauth \ + --name Keycloak \ + --provider openidConnect \ + --key forgejo \ + --secret "$SECRET" \ + --auto-discovery-url https://login.thecr3wnet.com/realms/master/.well-known/openid-configuration + +echo "✓ Źródło uwierzytelniania Keycloak zostało pomyślnie dodane do Forgejo!" +echo "Możesz teraz logować się na https://git.thecr3wnet.com za pomocą Keycloak."