Senior Identity Management Engineer

Uwierzytelnianie, które działa na produkcji

Projektuję i wdrażam uwierzytelnianie, autoryzację i SSO w Microsoft Entra ID i Azure AD B2C, tak żeby rozwiązanie nadążało za rozwojem firmy. Przy bardziej złożonych uprawnieniach, do poziomu pojedynczych zasobów, korzystam z OpenFGA. Z .NET pracuję od 17 lat, z Azure od 2010.

id_tokenprzykład, EdDSA

header

{ "alg": "EdDSA", "typ": "JWT", "kid": "edgarus-sample" }

payload

{"iss": "https://edgarus.eu","sub": "przemyslaw-gawdzik","name": "Przemysław Gawdzik","role": "Senior Identity Management Engineer","scp": "entra-id azure-ad-b2c oauth2 oidc dotnet","azure_since": 2010,"dotnet_years": 17,"degree": "inżynier, sieci komputerowe i systemy rozproszone"}

signature

U0S2Xy8WLOa-6X48NrPWV5GbIzrb2PG548c-RUI9VZDTy0jXeRTAJECgffXPiPuDNVF01ILg09nDcTmadJ5CCg

podpis zweryfikowanypodpis nieprawidłowy

azure_since
2010, zaczynałem jako trener Windows Azure
dotnet_years
17, C# i ASP.NET Core
identity
Entra ID, External ID, Azure AD B2C
authorization
OAuth 2.0, OIDC, OpenFGA

Czym się zajmuję

Backend, dostęp i wdrożenia w praktyce się przenikają, więc w projekcie zwykle odpowiadam za wszystkie trzy.

identity

Uwierzytelnianie i dostęp

Jak użytkownicy się logują, co mogą zrobić i jak aplikacje łączą się ze sobą. Na co dzień to Microsoft Entra ID, External ID, Azure AD B2C, OAuth 2.0 i OpenID Connect, a tam, gdzie mają sens, także SSO i MFA. W OpenFGA opisuję uprawnienia jako relacje między użytkownikami a zasobami, jak w przykładowym modelu.

Entra ID, Azure AD B2C, External ID, OAuth 2.0, OIDC, OpenFGA, CIAM

model openfga, przykład
model
  schema 1.1

type user

type tenant
  relations
    define member: [user]
    define admin: [user]

type document
  relations
    define org: [tenant]
    define viewer: [user] or member from org
    define editor: [user] or admin from org

backend

Bezpieczne aplikacje w .NET

Tożsamość nie kończy się na konfiguracji w Entra ID. Buduję też same aplikacje w C# i ASP.NET Core: API, które weryfikują tożsamość, egzekwują uprawnienia i realizują logikę biznesową oraz integracje. DDD, TDD i SOLID pilnują, żeby kod był czytelny, przetestowany i łatwy do zmiany.

C#, ASP.NET Core, polityki autoryzacji, DDD, TDD

delivery

Od kodu do wdrożenia

Azure, kontenery i CI/CD, żeby wdrożenie było nudne i powtarzalne. Infrastrukturę trzymam w kodzie, a konfigurację w repozytorium. Po wdrożeniu czytam logi, metryki i ślady żądań, bo chcę wiedzieć, co naprawdę się dzieje. Nowe pomysły z sieci, bezpieczeństwa i automatyzacji sprawdzam najpierw w homelabie, zanim trafią do klienta.

Azure, CI/CD, kontenery, OpenTelemetry, homelab

Open source

Publikuję jako Edgarus79 w organizacji edgarus-labs na GitHubie

O mnie

Projektuję i buduję rozwiązania tożsamościowe w Azure, w tym systemy CIAM. Odpowiadam za całość: architekturę, kod, automatyzację, infrastrukturę i utrzymanie produkcji.

Mam tytuł inżyniera w zakresie sieci komputerowych i systemów rozproszonych (WSPA w Lublinie).

doświadczenie

  1. 2022-2024Senior .NET Developer, Cloud Infrastructure ConsultantPredica (obecnie SoftwareOne)
  2. 2019-2022Senior Software Developer, ConsultantCloudTeam
  3. 2011-2019Software Developer, ConsultantAction Centrum Edukacyjne
  4. 2010-2011Windows Azure Trainer, Consultant, DeveloperABC Data Centrum Edukacyjne

Jak pracuję

Testy

Test ma sens wtedy, gdy pada przy prawdziwej regresji, także w nietypowych przypadkach. Test, który przechodzi mimo błędu w kodzie, niczego nie chroni.

Testy jednostkowe obejmują reguły, obliczenia i przypadki brzegowe w izolacji. Integracyjne sprawdzają, czy API, baza danych i uwierzytelnianie działają razem. End-to-end przechodzą najważniejsze ścieżki użytkownika, także te, w których coś idzie nie tak.

Dostarczanie

Zanim wybiorę narzędzie, pytam, co ma działać, kto będzie z tego korzystać i kto to potem utrzyma.

Wolę małe zmiany, które łatwo przejrzeć, przetestować i naprawić. Czytelny kod, sensowne logi i zapisane decyzje są ważne, bo następna osoba, która otworzy projekt, to często ja.

Masz coś do zbudowania albo naprawienia?

Formularz trafia prosto do mojej skrzynki.

Wolisz LinkedIn? Napisz do mnie tam

Bez plików cookie i bez analityki. Motyw dopasowuje się do ustawień systemu. Po zmianie języka strona pamięta do 30 sekund, w którym miejscu czytasz, żeby druga wersja otworzyła się w tym samym miejscu.

od 5 do 5000 znaków

Formularz sprawdza pod kątem spamu Cloudflare Turnstile, który działa w tle. Wysyłając wiadomość, przyjmujesz do wiadomości Turnstile Privacy Addendum firmy Cloudflare.

Jak wykorzystuję Twoje dane

Imię, adres e-mail i treść wiadomości wykorzystuję tylko po to, żeby odpowiedzieć. Wiadomość dociera do mnie przez serwis Resend. Nie profiluję tych danych, nie sprzedaję ich i nie używam do marketingu.