Jak upewnić się, że osoby odchodzące faktycznie tracą dostęp wszędzie?

by
Dawid Winiarski
Last update:
July 18, 2026

Kiedy ktoś odchodzi z firmy, wyłączasz jego konto w katalogu i zakładasz, że drzwi są już zamknięte. Dla aplikacji za single sign-on to założenie zwykle się sprawdza. Dla całej reszty nie, a powód to rozróżnienie, które zaskakuje wiele zespołów: logowanie się i posiadanie konta to dwie różne rzeczy, sterowane dwoma różnymi mechanizmami.

Ten przewodnik jest dla osoby odpowiedzialnej za tożsamość w europejskiej firmie z sektora mid-market: lidera IT, szefa bezpieczeństwa, admina prowadzącego katalog. Wyjaśnia, dlaczego single sign-on nikogo nie deprowizjonuje, co automatyzuje SCIM, jaką lukę w offboardingu domyka, gdzie przestaje pomagać i jak wdrożyć go dla aplikacji, na których naprawdę zależy.

Na koniec powinieneś umieć spojrzeć na swój ekosystem aplikacji i dla każdej ważnej z nich powiedzieć, czy osoba odchodząca traci dostęp automatycznie, ręcznie, czy wcale, oraz wiedzieć, co zrobić z aplikacjami z tych dwóch ostatnich kategorii.

  • Single sign-on kontroluje uwierzytelnianie, czyli kto może się zalogować. Nie kontroluje stanu konta, czyli tego, czy konto istnieje i jest aktywne. Wyłączenie kogoś u dostawcy tożsamości blokuje nowe logowania, ale samo w sobie nie dezaktywuje jego kont w połączonych aplikacjach (Scalekit, 2026; WorkOS, 2026).
  • SCIM (System for Cross-domain Identity Management) to standard IETF, RFC 7643 i RFC 7644, który pozwala dostawcy tożsamości automatycznie tworzyć, aktualizować i dezaktywować konta w połączonych aplikacjach, na podstawie zdarzeń w katalogu (IETF, 2015; Microsoft, 2026).
  • Deprowizjonowanie przez SCIM prawie nigdy nie oznacza usunięcia rekordu. Zarówno Okta, jak i Microsoft Entra ID dezaktywują użytkownika, wysyłając PATCH ustawiający active na false, co wyłącza konto i, u dostawców, którzy na to reagują, kończy aktywne sesje (Microsoft, 2026; źródła branżowe, 2026).
  • Luka, którą domyka SCIM, to konto osierocone: aplikacja, w której osoba odchodząca nigdy nie zostaje wylogowana ani usunięta, bo nic automatycznego nigdy nie zareagowało na jej odejście.
  • SCIM nie jest uniwersalny. Wśród 721 przeanalizowanych aplikacji SaaS 57% nie ma SCIM w żadnym planie cenowym, a kolejne 42% blokuje go za planem enterprise, tak zwanym podatkiem SCIM. Tylko około 1,2% udostępnia go w planie podstawowym (Stitchflow, 2026).
  • Praktyczna odpowiedź to wdrożenie według priorytetów: najpierw włącz SCIM dla aplikacji z najbardziej wrażliwym dostępem, prowadź jawną listę aplikacji, które zostają ręczne, i traktuj tę listę jako element każdego offboardingu.

Dlaczego single sign-on nikogo nie deprowizjonuje

To zamieszanie jest zrozumiałe, bo single sign-on sprawia wrażenie, że powinien pokrywać offboarding. Ludzie logują się do wszystkich swoich aplikacji przez dostawcę tożsamości, więc wyłączenie ich tam powinno wyłączyć wszystko. W praktyce single sign-on i provisioning odpowiadają na dwa różne pytania, a osoba odchodząca ujawnia tę różnicę.

Single sign-on, dostarczany przez SAML lub OIDC, odpowiada na pytanie: czy ta osoba może się teraz uwierzytelnić? Kiedy aplikacja jest za single sign-on, ufa dostawcy tożsamości, że poświadczy użytkownika w momencie logowania. SCIM odpowiada na inne pytanie: czy ta osoba ma konto w aplikacji i czy jest ono aktywne? Single sign-on decyduje, kto może wejść, provisioning decyduje, kto istnieje (Scalekit, 2026).

To rozróżnienie ma ostrą krawędź przy offboardingu. Asercje SAML są przekazywane do aplikacji tylko podczas zdarzenia logowania, więc aplikacja nie dowiaduje się niczego między logowaniami. Kiedy admin wyłącza użytkownika u dostawcy tożsamości, aplikacja nie jest o tym informowana. Osoba nie może już rozpocząć nowego logowania przez single sign-on, ale każda sesja, którą już ma, działa dalej aż do wygaśnięcia, co może potrwać godziny albo dni, a samo konto pozostaje obecne i aktywne w aplikacji (WorkOS, 2026; Scalekit, 2026).

Dwa częste wzorce pogarszają sytuację:

  • Provisioning just-in-time tworzy konto przy pierwszym logowaniu przez single sign-on, co jest wygodne, ale potrafi tylko tworzyć, nigdy usuwać. Uruchamia się przy zdarzeniu logowania, a osoba odchodząca, która przestała się logować, nigdy go nie wywoła. Konto po prostu zostaje jako osierocone, dopóki ktoś nie usunie go ręcznie (Clerk, 2026).
  • Lokalne dane logowania za frontowymi drzwiami single sign-on. Wiele aplikacji pozwala użytkownikom ustawić hasło niezależnie od single sign-on. Jeśli ta ścieżka nie zostanie wyłączona, osoba odchodząca może całkowicie ominąć dostawcę tożsamości i zalogować się bezpośrednio. Wyłączenie konta w katalogu nic nie robi lokalnemu logowaniu, którego katalog nigdy nie kontrolował.

Uczciwe podsumowanie jest takie, że single sign-on bez automatycznego provisioningu daje czyste uwierzytelnianie i brudne deprowizjonowanie. Frontowe drzwi są zamknięte, a boczne drzwi i ludzie, którzy już są w środku, zostają czyimś ręcznym problemem.

Co automatyzuje SCIM

SCIM to otwarty standard opublikowany przez IETF jako RFC 7643, który definiuje schemat danych dla użytkowników i grup, oraz RFC 7644, który definiuje protokół REST: endpointy, zachowanie żądań i odpowiedzi oraz uwierzytelnianie (IETF, 2015). W praktyce oznacza to, że dostawca tożsamości, Microsoft Entra ID, Okta, Google Workspace i inni, może zarządzać kontami w połączonej aplikacji przez wspólne API, zamiast przez własną konsolę tej aplikacji (Microsoft, 2026).

Mapuje się bezpośrednio na cykl joiner, mover, leaver:

  • Joiner. Nowa osoba dodana do katalogu i do odpowiedniej grupy dostępu automatycznie dostaje utworzone konto w każdej połączonej aplikacji. Provisioning uruchamia się na podstawie zdarzenia w katalogu, zamiast czekać, aż ktoś ręcznie skonfiguruje każde narzędzie.
  • Mover. Kiedy ktoś zmienia rolę i zmienia się jego przynależność do grup, SCIM aktualizuje jego konta w aplikacjach, tak żeby dostęp odzwierciedlał to, co robi teraz, zamiast narastać o wszystko, co kiedykolwiek robił.
  • Leaver. Kiedy konto w katalogu zostaje dezaktywowane, SCIM przekazuje tę zmianę do każdej połączonej aplikacji i tam też wyłącza konto.

Warto precyzyjnie opisać mechanikę przypadku leavera, bo to tam znajduje się wartość bezpieczeństwa. Deprowizjonowanie przez SCIM rzadko oznacza twarde usunięcie. Zarówno Okta, jak i Microsoft Entra ID dezaktywują użytkownika, wysyłając żądanie PATCH, które ustawia atrybut active konta na false (Microsoft, 2026; źródła branżowe, 2026). Aplikacja otrzymuje tę zmianę w momencie jej wystąpienia, niezależnie od tego, kiedy użytkownik ostatnio się logował. Konto zostaje wyłączone, a u dostawców, którzy traktują dezaktywację jako zdarzenie kończące sesję, aktywne sesje są kończone, zamiast pozwolić im wygasnąć samodzielnie. Niektóre aplikacje archiwizują wyłączony rekord do celów audytowych zamiast go całkowicie usuwać, co zwykle jest tym, czego chcesz, bo dowód na to, że konto zostało zamknięte, sam w sobie jest przydatny (Microsoft, 2026).

Zmiana polega na przejściu od procesu zależnego od pamięci do procesu zależnego od zdarzenia w katalogu. Bez SCIM każde zdarzenie joiner, mover i leaver to ręczna czynność powtarzana osobno dla każdej aplikacji, która zachodzi tylko wtedy, gdy ktoś o niej pamięta. Z SCIM zmiana w katalogu jest wyzwalaczem, a aplikacje podążają za nią.

Jaką lukę w offboardingu domyka

Konkretny problem, który rozwiązuje SCIM, to konto osierocone: aktywne konto należące do kogoś, kto odszedł, w aplikacji, którą nikt aktywnie nie zarządza. Powstaje w przewidywalny sposób. Osoba odchodząca miała konto. Single sign-on uniemożliwił jej rozpoczynanie nowych logowań, więc dla kogoś zerkającego na katalog offboarding wyglądał na zakończony. Ale konto nigdy nie zostało wyłączone w aplikacji, więc siedzi tam aktywne, dostępne przez lokalne hasło, długo żyjącą sesję albo token, niewidoczne, dopóki nie ujawni go audyt albo incydent.

To nie jest rzadki przypadek brzegowy. W ekosystemach SaaS duża część kont, które powinny zostać zamknięte przy offboardingu, nie zostaje zamknięta, a ludzie często zachowują dostęp do co najmniej jednego systemu byłego pracodawcy po odejściu (często cytowana, samodzielnie zgłaszana liczba pochodzi z Beyond Identity, 2022). Kluczowa dla compliance część SCIM to dokładnie to: natychmiastowa, automatyczna dezaktywacja, kiedy ktoś jest offboardowany, dzięki czemu konto osierocone nigdy nie powstaje (Stitchflow, 2026).

Doprecyzowanie zasięgu. SCIM domyka lukę dla aplikacji, które są jednocześnie połączone z dostawcą tożsamości i mają włączony SCIM. Nie robi nic dla aplikacji, które są całkowicie poza single sign-on, narzędzi, do których ludzie zapisali się na służbowy e-mail, o których katalog nigdy nie wiedział. To najpierw problem odkrywania, a dopiero potem problem provisioningu, i pokrywają go przewodniki o offboardingu przywołane na końcu. SCIM jest automatycznym zabezpieczeniem dla połączonego ekosystemu aplikacji, nie dla całego ekosystemu.

Gdzie SCIM przestaje pomagać

SCIM to dobra odpowiedź, ale też częściowa, bo nie masz kontroli nad tym, czy dana aplikacja go wspiera. Liczą się dwa ograniczenia.

Pierwsze to fakt, że nie każda aplikacja w ogóle ma SCIM. W analizie 721 aplikacji SaaS 57% nie miało wsparcia SCIM w żadnym planie cenowym. Dla tych narzędzi automatyczny provisioning przez standard po prostu nie jest dostępny, a cykl życia zostaje ręczny, bez względu na to, jak bardzo chciałbyś, żeby było inaczej (Stitchflow, 2026).

Drugie to podatek SCIM: wśród aplikacji, które go wspierają, 42% blokuje go za planem enterprise, mimo że sama funkcjonalność jest już zbudowana. Tylko około 1,2% aplikacji udostępnia SCIM w planie podstawowym lub wejściowym. To celowy wzorzec. Jak ujmuje to jedna z branżowych analiz, single sign-on wpływa na wygodę logowania, na którą użytkownicy końcowi głośno narzekają, więc dostawcy w większości zostali zmuszeni oferować go w niższych planach, podczas gdy SCIM wpływa na ryzyko bezpieczeństwa i audytu, które odczuwa tylko zespół IT, więc dostawcy mogą bezpiecznie zablokować go za najdroższym planem (Stitchflow, 2026).

Łączny efekt jest taki, że pomiędzy aplikacjami bez SCIM a aplikacjami, które blokują go za opłatą, w typowym ekosystemie zdecydowana większość albo nie może zostać zautomatyzowana w ten sposób, albo wymagałaby kosztu upgrade'u. To strukturalny powód, dla którego w pełni zautomatyzowany cykl życia rzadko jest osiągalny dla każdego narzędzia, i dlaczego realistycznym celem jest automatyzacja aplikacji, na których naprawdę zależy, przy jednoczesnym prowadzeniu jawnej, aktualizowanej listy reszty.

Zanim wdrożysz SCIM, warto znać kilka mniejszych ograniczeń:

  • Grupy u dostawcy tożsamości nie zawsze mapują się czysto na role czy tenanty własne aplikacji. Bez uzgodnionej konwencji provisioning oparty na grupach może nadmiernie przyznawać dostęp albo przypisywać go źle, więc mapowanie trzeba ustalić przed uruchomieniem.
  • Dopasowanie atrybutów musi być jednoznaczne. Jeśli reguła łącząca tożsamość z katalogu z istniejącym kontem w aplikacji jest luźna, SCIM może utworzyć duplikat zamiast przejąć istniejące konto. Ustal źródło prawdy dla nazwy użytkownika i e-maila, zanim go włączysz.
  • SCIM egzekwuje model dostępu, który mu dasz. Jeśli struktura twoich grup przyznaje za dużo, SCIM automatycznie przyznaje za dużo.

Jak wdrożyć go dla aplikacji, na których naprawdę zależy

Wdrożenie SCIM działa najlepiej jako program z priorytetami, a nie przełącznik włączany naraz dla wszystkiego. Poniższy kształt pochodzi z wytycznych głównych dostawców tożsamości i z relacji praktyków.

  1. Zbuduj mapę wsparcia. Przejrzyj inwentarz aplikacji i zapisz dla każdej, czy wspiera SCIM i w którym planie. Większość głównych dostawców publikuje to w dokumentacji dla developerów albo w centrum pomocy dla adminów. Mapa zwykle dzieli ekosystem na trzy grupy: SCIM działający, SCIM dostępny, ale nieskonfigurowany, oraz SCIM nieobecny albo za upgrade'em planu.
  2. Ustal kolejność według ryzyka, nie według łatwości. Zacznij od aplikacji, w których pominięty offboarding niesie realne konsekwencje: tych przechowujących dane klientów, dane finansowe, informacje o pracownikach, kod źródłowy albo dostęp produkcyjny. To narzędzia, w których konto osierocone szkodzi najbardziej, więc zasługują na wysiłek konfiguracji jako pierwsze.
  3. Konfiguruj ostrożnie i testuj przed uruchomieniem. Włączenie SCIM między dostawcą tożsamości a aplikacją oznacza utworzenie konta serwisowego albo rejestracji aplikacji u dostawcy tożsamości, skonfigurowanie endpointu SCIM aplikacji, zmapowanie atrybutów z katalogu na pola aplikacji i przepuszczenie testowego użytkownika przez cały przepływ. Ostrożny wzorzec to najpierw włączenie akcji aktualizacji, potwierdzenie, że działają poprawnie, a dopiero potem włączenie tworzenia i wyłączania. Sprawdź logi zarówno dostawcy tożsamości, jak i logi audytowe aplikacji, żeby potwierdzić, co zostało wysłane i co zostało zaakceptowane (Microsoft, 2026; wytyczne praktyków, 2026).
  4. Steruj dostępem przez grupy. Przypisz dostęp do przynależności do grup u dostawcy tożsamości, zamiast do indywidualnych przypisań. Ktoś dodany do grupy Sales dostaje narzędzia sprzedażowe i traci je po usunięciu z grupy, a zmiany ról przechodzą przez ten sam mechanizm co joinery i leavery. Dzięki temu automatyzacja jest tania w utrzymaniu, pod warunkiem że mapowanie grup na role zostało uzgodnione wcześniej.
  5. Przepuść przez to prawdziwego joinera i prawdziwego leavera. Zanim zaufasz integracji SCIM danej aplikacji, potwierdź, że dostęp faktycznie pojawia się dla nowej osoby i faktycznie znika dla osoby odchodzącej, w tej konkretnej aplikacji. Automatyczne deprowizjonowanie to wynik, na którym zależy, więc uczyń go jawnym kryterium sukcesu.
  6. Prowadź jawną listę tego, co zostaje ręczne. Każda aplikacja bez aktywnego SCIM, czy to dlatego, że go nie wspiera, czy dlatego, że zdecydowałeś się nie płacić za upgrade, należy do każdej listy kontrolnej offboardingu i każdego przeglądu dostępów, właśnie dlatego, że nic automatycznego nie wyłapie tam pominięcia. Widoczna lista ma tendencję do kurczenia się z czasem, bo każdy wpis to stały argument za upgrade'em albo pracą konfiguracyjną, podczas gdy niewidoczna luka po prostu trwa.
  7. Rozszerzaj etapami. Kiedy aplikacje o wysokim priorytecie są już stabilne, rozszerzaj według działu albo poziomu aplikacji, żeby kontrolować blast radius, jeśli mapowanie okaże się błędne.

Zrobiony w ten sposób ekosystem z czasem dzieli się na dwie wyraźniejsze grupy: rosnący zbiór ważnych aplikacji, gdzie offboarding jest automatyczny, i kurczący się, nazwany ogon, gdzie jest ręczny, ale przynajmniej rozliczony. To bardziej obronna pozycja niż wdrożenie single sign-on, które wygląda na kompletne, a po cichu zostawia za sobą aktywne konta.

Źródła

  • IETF, RFC 7643 (SCIM Core Schema) · https://www.rfc-editor.org/rfc/rfc7643 (schemat użytkowników i grup w standardzie)
  • IETF, RFC 7644 (SCIM Protocol) · https://www.rfc-editor.org/rfc/rfc7644 (protokół REST, endpointy i semantyka PATCH)
  • Microsoft, What Is SCIM? · https://www.microsoft.com/en-us/security/business/security-101/what-is-scim (SCIM jako standard automatyzujący tworzenie, aktualizację, dezaktywację)
  • Microsoft Entra ID, Use SCIM to provision users and groups · https://learn.microsoft.com/en-us/entra/identity/app-provisioning/use-scim-to-provision-users-and-groups (jak Entra działa jako klient SCIM; dezaktywacja przez active=false)
  • Scalekit, SCIM vs SSO · https://www.scalekit.com/blog/scim-vs-sso (single sign-on decyduje, kto może się zalogować; SCIM decyduje, kto istnieje)
  • WorkOS, SCIM vs SAML · https://workos.com/blog/scim-vs-saml (asercje SAML przekazywane tylko przy logowaniu; SCIM przekazuje dezaktywację między logowaniami)
  • Clerk, Just-in-Time Provisioning during SAML SSO · https://clerk.com/docs/guides/configure/auth-strategies/enterprise-connections/jit-provisioning (JIT może tworzyć, ale nie deprowizjonować; konta osierocone)
  • Stitchflow, SCIM vs the SSO Tax · https://www.stitchflow.com/blog/scim-vs-sso-tax-manual-provisioning (721 aplikacji: 57% bez SCIM, 42% za opłatą, 1,2% w planie podstawowym; podatek SCIM)
  • Microsoft Entra ID, What is automated app user provisioning · https://learn.microsoft.com/en-us/entra/identity/app-provisioning/user-provisioning (provisioning oparty na grupach, automatyzacja cyklu życia)
  • Beyond Identity, former-employee access survey, 2022 (self-reported) · https://www.beyondidentity.com (ludzie często zachowują dostęp do systemu byłego pracodawcy po odejściu)
Subscribe to unshadowed.

Subscribe to receive the latest blog posts to your inbox and stay up to date with

By subscribing you agree to with our Privacy Policy.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

let's start with a conversation

Most first conversations start with not quite knowing what you have or where to begin. That's normal, and it's exactly where we're useful.

Tell us what prompted this. An upcoming audit, an incident, a client's security questionnaire, or just a sense that things have gotten messy.

We'll take it from there

Julian Machowski
Head of Technical Sales
+48 783 762 997
julian@unshadowit.com
Let's connect on LinkedIn
Message received. We'll be in touch soon.
Something failed. Try again or call us directly.