Centralizowana autoryzacja i platforma aplikacyjna
Jedno logowanie, jedno zarządzanie użytkownikami i uprawnieniami dla wszystkich aplikacji wewnętrznych i dla klientów w Atrea. Zbudowaliśmy centralną platformę opartą na Zitadel z własnym ekranem logowania, obsługą wielu marek, precyzyjnie konfigurowalnymi uprawnieniami i powiadomieniami.
- Client
- Atrea s.r.o
- Year
- 2026
- Technologies
TypeScript Node.js Express PostgreSQL TypeORM Zitadel OpenID Connect Next.js Vue.js Web Push Docker
Zadanie
Atrea obsługuje szereg aplikacji internetowych dla pracowników, partnerów biznesowych i klientów. Każda z nich do tej pory rozwiązywała logowanie, użytkowników i uprawnienia na swój sposób. Oznaczało to wiele kont dla jednej osoby, rozproszone zarządzanie uprawnieniami i każdorazowo programowaną od nowa logikę dostępu.
Celem było stworzenie jednej wspólnej platformy, z której może korzystać każda nowa i istniejąca aplikacja, oferującej pojedyncze logowanie, centralne zarządzanie uprawnieniami oraz współdzielone usługi, takie jak powiadomienia czy opinie użytkowników.
Rozwiązanie
Pojedyncze logowanie (SSO)
Jako dostawcę tożsamości wybraliśmy platformę IAM typu open-source Zitadel. Jednak ekrany logowania napisaliśmy sami (Next.js nad Session API v2), dzięki czemu rejestracja, resetowanie hasła oraz uwierzytelnianie wieloskładnikowe (MFA) wyglądają i działają dokładnie według potrzeb Atrea. Pracownicy logują się swoim firmowym kontem Microsoft, a użytkownicy zewnętrzni za pomocą adresu e-mail i hasła.
Wiele marek na jednej platformie
Jedna instalacja obsługuje wiele marek i organizacji. Każda marka ma własny wygląd logowania, własną domenę, szablony e-mail oraz serwer SMTP do wysyłki. Marka jest ustalana centralnie na podstawie aplikacji i mechanizmu callback, dzięki czemu użytkownik nigdy nie trafi do niewłaściwego środowiska.
Uprawnienia w jednym miejscu
Aplikacje nie muszą już niczego obliczać, cała logika uprawnień znajduje się w usłudze centralnej:
- role w ramach każdej aplikacji oraz automatyczne przypisywanie roli na podstawie domeny e-mail,
- uprawnienia binarne i stopniowane (zabronione / podgląd / edycja) w strukturze drzewiastej,
- uprawnienia do konkretnych rekordów (np. udostępnienie jednego projektu kolegi),
- administratorzy aplikacji i superadministratorzy z dziennikiem audytu wszystkich zmian.
Role i uprawnienia są w trakcie logowania wklejane bezpośrednio do tokena dostępowego (JWT). Dzięki temu frontend wie, co użytkownik powinien widzieć, bez dodatkowych zapytań. Backend innych aplikacji weryfikuje uprawnienia jednym wywołaniem API.
Współdzielone usługi dla wszystkich aplikacji
- Powiadomienia przez e-mail i Web Push, z szablonami dla każdego typu wiadomości, masową wysyłką i ustawieniami subskrypcji użytkownika.
- Wielojęzyczność z centralnym rejestrem języków, językami zapasowymi i automatycznym tłumaczeniem szablonów.
- Opinie i wsparcie bezpośrednio z aplikacji, w tym załączniki i powiadomienia o zmianie statusu.
- Profile użytkowników i preferencje współdzielone między aplikacjami.
Administracja
Dla administratorów stworzyliśmy panel administracyjny w Vue 3. Znajdują się w nim użytkownicy, role i uprawnienia, aplikacje i ich klienci OIDC, marki, ustawienia poczty e-mail, szablony powiadomień, wsparcie oraz audyt. Do platformy należy również dokumentacja deweloperska (VitePress) z wersją dostosowaną dla asystentów AI, dzięki której deweloperzy mogą szybko i w spójny sposób podłączać nowe aplikacje.
Wynik
- Jedno konto dla wszystkich aplikacji Atrea i firmowe SSO przez Microsoft.
- Nowa aplikacja podłącza się w kilka dni zamiast tygodni rozwoju własnego logowania i zarządzania uprawnieniami.
- Zarządzanie dostępem w jednym miejscu, w tym natychmiastowe zablokowanie użytkownika w całej platformie.
- Gotowość na wiele marek i rynków dzięki obsłudze wielu marek i języków.
- Platforma obsługuje już produkcyjne aplikacje Atrea, a kolejne są do niej stopniowo przenoszone.
