🎯 Definicja
Keycloak Roles to mechanizm RBAC (Role-Based Access Control) w systemie tożsamości Keycloak. Zamiast nadawać uprawnienia każdemu użytkownikowi z osobna (“Jan może kasować”, “Anna może kasować”), tworzymy Rolę “Admin” i przypisujemy ją Janowi i Annie.
🔑 Kluczowe punkty
- Realm Roles: Role globalne, widoczne dla wszystkich aplikacji w danej domenie (np.
global-admin). - Client Roles: Role specyficzne dla jednej aplikacji (np.
jira-users,one-desktop-users). - Composite Roles: Rola-matrioszka. Rola
SuperAdminmoże zawierać w sobie rolęAdminiUser.
📚 Szczegółowe wyjaśnienie
W kontekście Ataccama ONE: System używa Keycloaka do logowania. Mapowanie wygląda tak:
- Użytkownik loguje się w Keycloak.
- Keycloak wystawia token (JWT), w którym jest pole
roles: ['steward', 'viewer']. - Ataccama ONE odczytuje ten token i na jego podstawie odblokowuje przyciski w interfejsie. Jeśli zabierzesz rolę w Keycloak, użytkownik straci dostęp natychmiast po wygaśnięciu tokena (zazwyczaj 5-15 min).
💡 Przykład zastosowania
Nowy pracownik HR.
Zamiast klikać w 15 systemach, Administrator dodaje go do grupy “HR-Employees” w Keycloak.
Grupa ta ma przypisaną rolę hr-app-user.
Pracownik automatycznie może się zalogować do systemu płacowego, urlopowego i ewidencji czasu pracy.
📌 Źródła
- Keycloak Documentation - Role Based Access Control.
👽 Brudnopis
- Najlepsza praktyka: Przypisuj role do Grup, a Użytkowników do Grup. Unikaj przypisywania ról bezpośrednio do Użytkowników (“Role Explosion”).