docs: add Forgejo Keycloak OIDC integration guide and CLI setup script
Some checks are pending
TheCr3w Docker Build and Deploy Pipeline / build-and-package (push) Waiting to run
Some checks are pending
TheCr3w Docker Build and Deploy Pipeline / build-and-package (push) Waiting to run
This commit is contained in:
parent
7daee26d3d
commit
dfec61e2cd
2 changed files with 112 additions and 0 deletions
86
docs/FORGEJO-KEYCLOAK.md
Normal file
86
docs/FORGEJO-KEYCLOAK.md
Normal file
|
|
@ -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 `<TWÓJ_CLIENT_SECRET>` wartością skopiowaną z Keycloak:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker exec -u 1000 forgejo forgejo admin auth add-oauth \
|
||||||
|
--name Keycloak \
|
||||||
|
--provider openidConnect \
|
||||||
|
--key forgejo \
|
||||||
|
--secret "<TWÓJ_CLIENT_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.
|
||||||
26
scripts/setup_forgejo_keycloak.sh
Normal file
26
scripts/setup_forgejo_keycloak.sh
Normal file
|
|
@ -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 <KEYCLOAK_CLIENT_SECRET>"
|
||||||
|
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."
|
||||||
Loading…
Reference in a new issue