3.2 KiB
3.2 KiB
THECR3W-DEV — INTEGRACJA KEYCLOAK IAM (STAGE 2 ARCHITECTURE)
Wersja: 1.0.0 | Data: 2026-10-31
1. Wymagania i Środowisko
- Adres instancji:
https://login.thecr3wnet.com - Realm:
master(Wymaganie bezwzględne Właściciela Projektu) - Protokół: OpenID Connect (OIDC) / OAuth 2.0
- Flow uwierzytelniania Frontend: Authorization Code Flow z PKCE (Proof Key for Code Exchange, S256)
- Flow uwierzytelniania Backend: Bearer Token JWT (walidacja sygnatury kluczami JWKS z
https://login.thecr3wnet.com/realms/master/protocol/openid-connect/certs)
2. Minimalna Konfiguracja w Keycloak (Zasada Least Privilege)
Aby nie naruszać istniejących użytkowników i konfiguracji w realm master, TheCr3w-dev wymaga utworzenia wyłącznie dwóch odseparowanych klientów:
2.1. Klient Frontend: thecr3w-admin-panel
- Client ID:
thecr3w-admin-panel - Client Protocol:
openid-connect - Access Type / Client Authentication:
Public(wyłączony Client Secret) - Standard Flow Enabled:
ON - Direct Access Grants Enabled:
OFF - Valid Redirect URIs:
https://admin.thecr3wnet.com/*http://localhost:3000/*(do testów lokalnych)
- Web Origins:
https://admin.thecr3wnet.comhttp://localhost:3000
- PKCE Code Challenge Method:
S256
2.2. Klient Backend: thecr3w-backend
- Client ID:
thecr3w-backend - Client Protocol:
openid-connect - Access Type / Client Authentication:
Confidential(posiada Client Secret przekazywany przezKEYCLOAK_CLIENT_SECRET) - Service Accounts Enabled:
ON(dla operacji CI/CD i komunikacji machine-to-machine) - Authorization Enabled:
ON
3. Matryca Ról Klienta (Client Roles)
Wszystkie role tworzone są wewnątrz klienta thecr3w-backend, a NIE jako role realm:
| Nazwa Roli Klienta | Opis i Uprawnienia |
|---|---|
thecr3w:admin |
Pełna administracja całym systemem, zarządzanie serwerami zewnętrznymi, audyt. |
thecr3w:release-manager |
Zarządzanie wydaniami aplikacji Android i Windows, generowanie adresów uploadu, publikacja i wycofywanie wydań. |
thecr3w:approver |
Zatwierdzanie manifestów wdrożeń produkcyjnych. |
thecr3w:deployer |
Zgłaszanie manifestów wdrożeniowych, uruchamianie wdrożeń na staging/dev, synchronizacja plików. |
thecr3w:viewer |
Podgląd dashboardu, listy wydań, historii wdrożeń i logów audytowych. |
4. Walidacja Tokenów w ASP.NET Core Backend
Konfiguracja uwierzytelniania w Program.cs (.NET 9):
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.Authority = "https://login.thecr3wnet.com/realms/master";
options.Audience = "thecr3w-backend";
options.RequireHttpsMetadata = true;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidIssuer = "https://login.thecr3wnet.com/realms/master",
ValidateAudience = true,
ValidAudience = "thecr3w-backend",
ValidateLifetime = true,
ClockSkew = TimeSpan.FromMinutes(1)
};
});