Konfiguracja strony logowania

Portal /login uwierzytelnia bezpośrednio przez Keycloak (bez przekierowania). Obsługuje trzy metody:
- Login i hasło -- ROPC grant via
oidc-client-ts - Logowanie przez Google -- Keycloak IdP brokering (
kc_idp_hint=google) - Rejestracja --
POST /api/account/register(Keycloak Admin API), potem auto-login via ROPC
Logowanie Google OAuth (opcjonalne)
Pomiń tę sekcję, jeśli nie potrzebujesz logowania przez Google -- przycisk wyświetli błąd, jeśli nie jest skonfigurowany.
Konfiguracja krok po kroku
- Otwórz Google Cloud Console > Credentials
- Utwórz OAuth 2.0 Client ID (typ: Web application)
- Dodaj autoryzowany URI przekierowania:
{APP_EXTERNAL_BASE_URL}/auth/realms/openksef/broker/google/endpoint
Przykłady:
- Z ngrok:
https://abc123.ngrok-free.app/auth/realms/openksef/broker/google/endpoint - Lokalnie:
http://localhost:8080/auth/realms/openksef/broker/google/endpoint
-
Wprowadź dane w kreatorze konfiguracji (Krok 5: Integracje > Google OAuth)
Lub ustaw ręcznie w
.env:
GOOGLE_CLIENT_ID=123456789-abcdef.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-xxxxxxxxxxxxxxxxxxxxxxxx
- Jeśli ustawiasz ręcznie, zrestartuj Keycloak:
docker compose restart keycloak
Rejestracja użytkowników
Endpoint rejestracji wymaga service account Keycloak z uprawnieniem manage-users.
Jeśli użyłeś kreatora konfiguracji, jest to skonfigurowane automatycznie.
Konfiguracja ręczna
- Otwórz konsolę Keycloak: http://localhost:8082/auth/admin (admin / admin)
- Przejdź do Clients > openksef-api > Credentials
- Skopiuj Client Secret
- Ustaw w
.env:
API_CLIENT_SECRET=<wklej-secret>
-
Upewnij się, że service account ma uprawnienie
manage-users:- Clients > openksef-api > Service Account Roles
- Przypisz
realm-management>manage-users
-
Zrestartuj API:
docker compose restart api
informacja
Bez API_CLIENT_SECRET rejestracja zwraca 503 Service Unavailable. Logowanie i Google sign-in działają niezależnie.