23 lipca 2026

SSO bez hasła z Notakey: przewodnik konfiguracji krok po kroku

Połącz Gitea, Proxmox lub dowolną aplikację OIDC z Notakey: utwórz usługę, zarejestruj klienta, ustaw politykę haseł. Realne komendy, realne pułapki.

Po przejściu tego przewodnika użytkownicy logują się do aplikacji zatwierdzeniem z telefonu — wpisują nazwę użytkownika albo skanują kod QR, po czym potwierdzają w aplikacji Notakey. Na stronie logowania nie ma pola na hasło. Hasło wciąż istnieje, ale ma dokładnie jedno obowiązkowe zadanie: jest wymagane raz, przy rejestracji urządzenia, żeby wygenerować klucz użytkownika. Wszystko, co dzieje się później, to decyzja administratora dotycząca polityki — i ten przewodnik pokazuje dokładnie, gdzie każda z tych polityk się ustawia.

Każda usługa Notakey — te same, których już Państwo używają do 2FA w VPN, Windows czy Wi-Fi — może działać również jako dostawca OpenID Connect. Nie trzeba do tego osobnego produktu: wystarczy włączyć OIDC dla usługi w Dashboardzie, zarejestrować aplikację jako klienta i wskazać jej punkty końcowe udostępnione przez Notakey. Żadnych certyfikatów SAML, żadnego osobnego serwera dostawcy tożsamości do utrzymania.

your app ──OIDC──▶ Notakey service (OIDC provider)

                        ├──▶ user repository: onboarded devices in this service
                        └──▶ push ──▶ user's phone: read, approve

(Klasyczne aplikacje korporacyjne obsługujące wyłącznie SAML — Google Workspace, AWS — wymagają zamiast tego osobnego dostawcy tożsamości SAML od Notakey; gdzie go znaleźć, pokazuje ostatnia sekcja.)

Ekran logowania Notakey dla usługi bez hasła: tylko pole na nazwę użytkownika i przycisk Login — pola na hasło nie ma wcale.

Jak naprawdę działa tu hasło

To temat wymagający precyzji, bo słowo „bez hasła“ bywa nadużywane:

  • Jedyne obowiązkowe hasło pojawia się przy onboardingu. Ustawione w Dashboardzie albo pobrane z Active Directory, jest sprawdzane raz — gdy użytkownik rejestruje urządzenie i w bezpiecznym sprzęcie telefonu generowany jest jego klucz.
  • Codzienne logowanie obywa się bez niego. Użytkownik wpisuje nazwę użytkownika albo skanuje kod QR — stronę logowania można ograniczyć do samego skanowania, bez żadnego pola do wypełnienia. Weryfikacją tożsamości jest podpisane zatwierdzenie w aplikacji.
  • Wszystko poza tym to ustawienie, nie sztywna reguła. Jedna aplikacja może wymagać dodatkowego potwierdzenia w aplikacji, druga hasła, trzecia jednego i drugiego. Hasło można też pytać cyklicznie, żeby po prostu nie wyszło z pamięci użytkownika. Wszystko to konfiguruje się na jednym ekranie — pokazanym w kroku 5.

Krok 1 — Wybierz usługę

Skorzystaj z istniejącej usługi Notakey, jeśli jej użytkownicy pokrywają się już z aplikacją, którą Państwo podłączają, albo utwórz nową (Services → Manage → New), jeśli ta aplikacja ma mieć własną, niezależną politykę haseł. Polityka z kroku 5 obowiązuje dla całej usługi, a nie osobno dla każdego klienta — to jest czynnik decydujący.

Krok 2 — Włącz OpenID Connect

Otwórz usługę, przejdź do OpenID Connect configuration → Configure i zaznacz Enabled. Resztę na razie zostaw bez zmian — opcje Require password i Require mfa ustawimy świadomie w kroku 5, a nie przypadkiem już tutaj. Zapisz.

Ekran konfiguracji OpenID Connect dla usługi: Enabled, Require password, Password cache, Require mfa, Mfa cache oraz pola czasu trwania sesji (pasek boczny rozmyty).

Krok 3 — Skopiuj punkty końcowe

Wróć do OpenID Connect configuration i kliknij Show. Notakey wygenerował już dokument discovery, a pod nim poszczególne punkty końcowe:

https://<your-dashboard-host>/oidc/services/<access-id>/.well-known/openid-configuration

Większości oprogramowania obsługującego OIDC wystarczy ten jeden adres URL — wklej go w pole „auto discovery“ albo „issuer“, a aplikacja sama pobierze punkty końcowe authorization, token, userinfo i JWKS. <access-id> to ten sam identyfikator, który widać na stronie samej usługi.

Krok 4 — Zarejestruj aplikację jako klienta

W ramach usługi wejdź w OpenID Connect configuration → Clients → New client. Notakey wygeneruje za Państwa Client ID i losowy Secret.

Zanim zapiszesz, dwie rzeczy warte uwagi: pole Secret jest zamaskowane i po opuszczeniu strony Notakey już go nie pokaże, więc skopiuj je od razu — albo zaznacz pole i wklej własny sekret, co działa równie dobrze, a łatwiej go później odnaleźć. Pole Redirect URIs musi zaś zgadzać się co do znaku z adresem URL, który aplikacja zwraca podczas logowania — brakujący ukośnik na końcu wystarczy, żeby wszystko przestało działać (patrz pułapka niżej).

Uzupełnij:

  • Description — cokolwiek, co pomoże potem rozpoznać ten wpis.
  • Secret — skopiowany wygenerowany sekret albo własny, wpisany na jego miejsce.
  • Redirect URIs — adres URL callbacku OAuth aplikacji. Jeśli aplikacja jest dostępna pod kilkoma adresami, oddziel je przecinkami.
  • Logout URI — adres, na który przekierować przeglądarkę po wylogowaniu. Opcjonalne.

Gdy zarejestrujesz kilka aplikacji, lista klientów usługi wygląda tak:

Lista klientów OpenID Connect dla usługi z dwoma zarejestrowanymi klientami — Gitea i Proxmox — oba włączone (pasek boczny i wartości Client ID rozmyte).

Krok 5 — Wskaż aplikacji Notakey

Dokładne kroki zależą od aplikacji, ale schemat jest zawsze ten sam: adres issuer albo discovery, client ID, client secret. Dwa przykłady z prawdziwych narzędzi samodzielnie hostowanych:

Gitea ma na to gotową komendę CLI — bez formularza w przeglądarce, bez restartu:

gitea admin auth add-oauth \
  --name notakey \
  --provider openidConnect \
  --key <client-id> \
  --secret <client-secret> \
  --auto-discover-url https://<dashboard-host>/oidc/services/<access-id>/.well-known/openid-configuration \
  --scopes openid --scopes profile --scopes email

Na stronie logowania Gitei od razu pojawia się przycisk „Sign in with notakey“, obok istniejącego formularza z hasłem — nic nie znika.

Strona logowania Gitea z nowym przyciskiem „Sign in with notakey” obok istniejącego formularza nazwa użytkownika/hasło i opcji passkey.

Proxmox VE traktuje to jako osobny realm uwierzytelniania, dodawany do tych, które już istnieją:

pveum realm add notakey --type openid \
  --issuer-url https://<dashboard-host>/oidc/services/<access-id> \
  --client-id <client-id> \
  --client-key <client-secret> \
  --username-claim sub \
  --scopes "openid email profile" \
  --autocreate 1

--issuer-url to tu adres discovery bez końcówki /.well-known/openid-configuration — Proxmox dokleja ją sam. --autocreate 1 przy pierwszym udanym logowaniu tworzy odpowiadającego użytkownika Proxmoksa, ale bez żadnych uprawnień, dopóki nie nada się ich wprost — dostępu nie rozda przez przypadek.

Krok 6 — Ustaw politykę haseł

To właśnie ta część „decyzji administratora“ w praktyce, znów na ekranie OpenID Connect configuration → Configure:

  • Require password odznaczone, Require mfa zaznaczone: przepływ bez hasła opisany na początku przewodnika. Logowanie to nazwa użytkownika (albo QR) plus zatwierdzenie z telefonu, nic więcej.
  • Require password zaznaczone, Password cache pozostawione na 0: hasło przy każdym logowaniu, dodatkowo do zatwierdzenia — klasyczne dwa składniki.
  • Require password zaznaczone, a Password cache ustawione w sekundach (np. 2592000 dla 30 dni): na co dzień bez hasła, z ponownym pytaniem o nie dopiero po upływie tego okresu — wyłącznie po to, żeby użytkownik go nie zapomniał. Mfa cache działa tak samo dla kroku zatwierdzenia, jeśli kiedyś zechcą Państwo cache’ować i jego.

Ponieważ to ustawienie obowiązuje dla całej usługi, aplikacja wymagająca innej polityki niż jej sąsiedzi powinna dostać własną usługę — wracamy do wyboru z kroku 1.

Gdy coś nie działa

  • Błąd redirect_uri mismatch niemal zawsze oznacza ukośnik na końcu: jedne aplikacje wysyłają https://app.example.com, inne https://app.example.com/, a Notakey porównuje ciąg znak po znaku. Sprawdź w logach nginksa albo samej aplikacji dosłowną wartość redirect_uri=, którą wysłała, i zarejestruj dokładnie taką.
  • Jeśli adres discovery zwraca 404, sprawdź jeszcze raz, czy Enabled faktycznie zostało zapisane w kroku 2 — ekran konfiguracji, który wygląda dobrze, ale nigdy nie został wysłany, to najczęstsza wpadka.
  • Log Authentication activities w ramach usługi pokazuje każdą próbę, która dotarła do Notakey. Jeśli jakaś próba się tam nie pojawia, aplikacja w ogóle nie dotarła do punktu authorization — najpierw sprawdź client ID i adres discovery.

Czego ten przewodnik świadomie nie obejmuje

Klasyczne integracje SAML 2.0 dla aplikacji mówiących wyłącznie tym protokołem — Google Workspace, AWS i podobne — idą przez osobnego dostawcę tożsamości SAML od Notakey, nie przez ścieżkę OIDC opisaną powyżej. Poza zakresem tego przewodnika zostają też LDAP/Active Directory jako repozytorium użytkowników, konfiguracje wielodostępowe (multi-tenant) i własny branding. Wszystko to znajduje się w dokumentacji CLI i API wraz z pełnymi tabelami parametrów — ten przewodnik to najkrótsza droga od zera do działającego logowania bez hasła.

Zobacz to, zanim zbudujesz

Najszybszym sposobem, by ocenić sam przepływ logowania, jest wypróbowanie zatwierdzenia na własnym telefonie: wypróbuj demo na żywo i podpisz żądanie w około dwie minuty, albo poproś o prezentację, a odwzorujemy Państwa aplikacje i politykę haseł w pilotaż na Państwa własnej infrastrukturze.

← Wszystkie artykuły

Pierwsze logowanie bez hasła jeszcze w tym tygodniu

30 minut rozmowy z inżynierem, a nie prezentacja handlowa. Wspólnie zaplanujemy, jak uruchomić działający projekt pilotażowy w Państwa środowisku VPN, SSO lub Windows.