Mikroserwis zarządzania użytkownikami

E-Learning / Szkolenia korporacyjne

PHP 8.1

Migracja zakończona

50%

Szybsze operacje użytkowników

SSO

Integracja SSO dla enterprise

Przegląd

Monolityczna aplikacja PHP Circusstreet miała trudności z spełnieniem wymagań klientów enterprise wymagających integracji SSO. Zaprojektowałem i zbudowałem nowy mikroserwis zarządzania użytkownikami od podstaw, prowadząc jednocześnie migrację PHP7 do PHP8.1 na całej platformie.

Kontekst biznesowy

Circusstreet dostarcza szkolenia z marketingu cyfrowego dla klientów korporacyjnych, w tym firmom z listy Fortune 500. Gdy ich klienci enterprise zaczęli wymagać integracji SSO (SAML, OAuth2), istniejący monolit PHP nie mógł tego obsłużyć bez znaczącego refactoringu. Zarządzanie użytkownikami było głęboko zintegrowane z logiką biznesową, co powodowało, że każda zmiana w autoryzacji wymagała testowania i wdrożenia całej aplikacji. Jednocześnie codebase działał na PHP 7.4, który zbliżał się do końca wsparcia.

Wyzwanie

Monolityczna aplikacja nie skalowała się dla klientów enterprise. Zarządzanie użytkownikami było ściśle powiązane i wymagało ekstrakcji do osobnego serwisu z obsługą SSO.

  • Ściśle powiązane zarządzanie użytkownikami w legacy monolicie
  • Klienci enterprise wymagający SSO SAML/OAuth2
  • Przestarzały codebase PHP7 z problemami bezpieczeństwa

Rozwiązanie

Wyekstrahowaliśmy zarządzanie użytkownikami do samodzielnego mikroserwisu Symfony z pełną obsługą OAuth2/SAML, a następnie systematycznie zaktualizowaliśmy wszystkie serwisy do PHP8.1.

  • Zaprojektowanie i budowa mikroserwisu zarządzania użytkownikami od zera
  • Prowadzenie migracji PHP7 do PHP8.1 we wszystkich serwisach
  • Implementacja OAuth2/SSO dla klientów enterprise

Podejście i metodologia

Zdefiniowaliśmy jasne granice używając agregatów DDD - użytkownicy, organizacje, uprawnienia i integracje SSO stały się wyraźnymi domenami. Zbudowaliśmy mikroserwis od zera używając Symfony 6 z przejrzystymi endpointami API. Każda funkcja enterprise SSO została zaprojektowana jako rozszerzenie podstawowej autoryzacji, a nie osobna logika. Równolegle prowadziłem migrację PHP 7 do 8.1 na wszystkich serwisach, używając Rector i PHPStan do automatyzacji większości pracy.

Szczegóły implementacji

Mikroserwis zarządzania użytkownikami

Zbudowano nowy mikroserwis oparty na Symfony obsługujący wszystkie operacje użytkowników, uwierzytelnianie i autoryzację. Zaimplementowano czyste granice API używając agregatów DDD.

Integracja SSO dla Enterprise

Zaimplementowano pełną obsługę OAuth2 i SAML 2.0 dla klientów enterprise, umożliwiając płynną integrację single sign-on z Azure AD, Okta i innymi dostawcami tożsamości.

Kluczowe decyzje

  • Mikroserwis od zera zamiast refactoringu monolitu - czystsze granice i możliwość wdrażania enterprise SSO bez ryzyka dla głównej aplikacji
  • Symfony 6 z FOSOAuthServerBundle i OneloginSamlBundle - sprawdzone biblioteki enterprise zmniejszające ryzyko bezpieczeństwa
  • Automatyczna migracja PHP z Rector - przyspieszenie procesu ~10x w porównaniu z ręczną migracją

Stack technologiczny

PHP 8.1 Symfony PostgreSQL RabbitMQ OAuth2 Docker

Powiązane usługi

Poniższe usługi zostały wykorzystane w tym projekcie do osiągnięcia pomyślnych rezultatów.

Wnioski z projektu

  • Wymagania enterprise SSO są bardziej złożone niż się wydaje - provisioning użytkowników, mapowanie grup i just-in-time provisioning wymagają starannego planowania
  • Migracja PHP może być w dużej mierze zautomatyzowana - Rector z niestandardowymi regułami obsłużył 85% wymaganych zmian
  • Zaczynaj od typowych wymagań IdP (Azure AD, Okta) - pokrywa to 90% potrzeb klientów enterprise

Informacje o projekcie

Czas realizacji

6 miesięcy (mikroserwis + migracja PHP)

Zespół

2 developerów backend + 1 frontend

Rezultaty

PHP 8.1

Migracja zakończona

50%

Szybsze operacje użytkowników

SSO

Integracja SSO dla enterprise

Masz podobne wyzwanie?

Porozmawiajmy, jak mogę pomóc Twojemu projektowi odnieść sukces dzięki sprawdzonym rozwiązaniom architektonicznym i AI.