Każdy przewodnik integracyjny na tym blogu zaczyna się w tym samym miejscu: masz serwer Notakey, na nim usługę, a w tej usłudze zarejestrowany telefon. Dalej przewodniki zajmują się już VPN-em, routerem albo aplikacją webową. Jeśli nie stoisz jeszcze na tej linii startu, stronę Notakey zbywają jednym czy dwoma zdaniami, a resztę zostawiają tobie.
Ten przewodnik to właśnie ta pominięta część. Kończy się testowym żądaniem na twoim telefonie i dwiema wartościami, o które pyta każda integracja: nazwą hosta serwera i identyfikatorem usługi.
Wszystko poniżej zostało wykonane na świeżo utworzonej instancji w chmurze, dokładnie w tej kolejności.
Krok 1: Utwórz instancję w chmurze
Wejdź na signup.notakey.com i wybierz Hosted Cloud Instance. Formularz pyta o imię i nazwisko, adres e-mail i kraj oraz o Instance name. Domena chmury dokleja się do tej nazwy automatycznie i razem tworzą one nazwę hosta:
yourcompany.notakey.cloud

Zwróć uwagę na domenę: notakey.cloud, a nie notakey.com. Ta nazwa hosta to
pierwsza z dwóch wartości, które będą potrzebne później. Skrypty i wtyczki
zwykle oczekują jej w gołej postaci, bez https:// z przodu. Aplikacja na
telefonie wymaga natomiast postaci z https://, co widać w kroku 5.
Continue to checkout przenosi do strony płatności Stripe, gdzie podaje się dane karty albo używa Apple Pay. Nie wybiera się tu żadnej liczby stanowisk. Strona rejestracji zaznacza, że karta kredytowa jest wymagana i że dostępny jest darmowy plan, a sama strona płatności nie wykazuje żadnej kwoty do zapłaty tego dnia.
Potem przez mniej więcej minutę widać ekran przygotowywania instancji, po czym otwiera się ona z czteroetapowym kreatorem konfiguracji: Welcome, Create user, Onboard user, Setup complete.
W kroku Create user zakładasz pierwsze konto administratora: nazwa użytkownika, hasło, które sam wybierasz, oraz imię i nazwisko.

Krok Onboard user rejestruje następnie twój własny telefon. Zainstaluj Notakey Authenticator, zeskanuj kod QR ze strony i zaloguj się nazwą użytkownika oraz hasłem, które przed chwilą powstały. Strona podaje też drogę ręczną: dodaj adres swojego serwera w aplikacji jako service domain i wybierz Administration Service.

Po zarejestrowaniu telefonu kreator kończy pracę i przenosi do panelu. Twój telefon należy teraz do wbudowanej usługi Administration Service tej instancji. To ma znaczenie w kroku 5, bo oznacza, że twój telefon ma już wpisaną twoją domenę.
Krok 2: Utwórz usługę
Usługa to jedna chroniona rzecz. VPN to jedna usługa, logowanie do aplikacji webowej druga, a każda z nich ma własny, odrębny zbiór użytkowników. W panelu otwórz Services → Manage i naciśnij Create a service.

Wymagane jest wyłącznie pole Name. Nazwę dobierz starannie, bo to właśnie ją użytkownicy widzą na telefonie za każdym razem, gdy mają coś zatwierdzić. „Office VPN” mówi im, co zatwierdzają. „Test 2” nie mówi nic.

Ustawienia domyślne w dalszej części formularza są rozsądne dla pierwszej
usługi i niczego w nich nie zmienialiśmy: poziom bezpieczeństwa to Hardware
protected, każdy użytkownik może zarejestrować jedno urządzenie, a
uproszczone nazwy użytkowników są dozwolone, więc użytkownik to john, a nie
john@domain.
Naciśnij Create. Na stronie usługi, która się otworzy, widać drugą potrzebną wartość, opisaną jako Service ID (Access ID):

Różne integracje nazywają tę wartość różnie. Skrypt dla MikroTika mówi o
ntkAccessId, wtyczki zwykle o Access ID albo identyfikatorze aplikacji.
Zawsze chodzi o ten sam UUID, który identyfikuje usługę, a nie twoje konto.
Druga usługa dostaje inny.
Krok 3: Włącz wymaganie rejestracji
To ten krok, który najczęściej umyka, a objaw bywa mylący: usługa istnieje, panel nie pokazuje żadnego błędu, a telefon jej nie znajduje.
W nowej usłudze nikt nie ma jak się zarejestrować. Otwórz Onboarding requirements w menu usługi, a strona powie to wprost:

Wymaganie rejestracji to sposób, w jaki człowiek dowodzi, kim jest, w chwili gdy przypina telefon do swojego konta użytkownika. Są cztery:
- Simple Credentials. Użytkownik wpisuje nazwę użytkownika i hasło, które ustawisz w panelu. Najszybszy sposób, by niewielki zespół mógł zacząć.
- Phone Number. Dwuetapowa weryfikacja SMS-em lub przez WhatsApp. Każdy użytkownik musi mieć na koncie główny numer telefonu.
- OpenID Connect. Użytkownik loguje się u dostawcy tożsamości, z którego już korzystacie, i stamtąd odczytywane są jego atrybuty.
- Manual (in-person). Ktoś z dostępem do panelu ręcznie zatwierdza każdą rejestrację.
Na potrzeby tego przewodnika naciśnij Enable obok Simple Credentials.

Jedna reguła z tej strony warta zapamiętania: aplikacja na telefonie pokazuje usługę jako dostępną tylko dopóki ma ona włączone co najmniej jedno wymaganie. Jeśli później usuniesz wymagania, u osób już zarejestrowanych wszystko działa dalej, ale dla wszystkich pozostałych usługa znika z listy i nowi użytkownicy nie mogą dołączyć. Gdy ktoś z zespołu zgłosi kiedyś, że usługi „nie ma”, zajrzyj najpierw tutaj.
Krok 4: Utwórz użytkownika
Otwórz Users w menu usługi i naciśnij Create a new user.

Pola Username i Full name są wymagane. Przy Simple Credentials trzeba też samodzielnie ustawić Password – nic nie generuje się automatycznie. To właśnie tego hasła użytkownik użyje na telefonie w następnym kroku, więc wybierz je, zapisz i przekaż tak, jak przekazujesz każde inne hasło początkowe.
Jeśli ta usługa ma chronić VPN albo logowanie do serwera, nazwa użytkownika
musi się tu zgadzać co do znaku z nazwą w tamtym systemie. Integracja adresuje
żądanie zatwierdzenia właśnie nazwą użytkownika. john na routerze i
john.snow w Notakey zawiodą po cichu – bez pusha i bez komunikatu o błędzie
– a to najczęstszy powód, dla którego pierwszy test integracji sprawia
wrażenie, jakby nic nie robił.
Gdy użytkownicy są już w katalogu
Ręczne zakładanie kont sprawdza się przy kilku osobach. Przy całej firmie nie trzeba ich zakładać wcale. Każda usługa ma stronę User sources, w menu obok Users, gdzie można podłączyć katalog, który już utrzymujecie. Do wyboru są trzy typy: Active Directory, LDAP i RADIUS.
Przy podłączonym źródle użytkowników ludzie rejestrują się sami. Otwierają usługę w aplikacji, logują się nazwą użytkownika i hasłem, które już mają w katalogu, i w tym właśnie momencie powstaje ich konto w Notakey. Wymaganie Phone Number działa tak samo, o ile katalog przechowuje dla każdej osoby właściwy numer telefonu. Nikomu nie zakładasz konta i nie masz żadnych haseł początkowych do rozdania.
Dalsza część przewodnika trzyma się konta założonego ręcznie, bo prowadzi do pierwszego zatwierdzenia bez konfigurowania czegokolwiek więcej.
Krok 5: Zarejestruj telefon
Zainstaluj aplikację Notakey Authenticator z App Store lub Google Play.
Aplikacja odnajduje usługi po domenie serwera. W Settings → Service domains trzyma listę serwerów i dla każdego z nich odczytuje wszystkie usługi, które mają włączoną rejestrację.

Twój własny telefon ma już twoją domenę – z kreatora konfiguracji. Dla wszystkich pozostałych są dwa sposoby, by ją dodać:
- wpisać
https://yourcompany.notakey.cloudw Service domains i nacisnąć Add domain, albo - zeskanować kod ukryty pod QR code add service na stronie usługi.
Adres wpisuj z https:// z przodu. Bez tego nazwa hosta w chmurze nie
zostanie odnaleziona. Aplikacja odpowiada liczbą wykrytych usług, co samo w
sobie jest przydatnym sprawdzianem: tutaj dwie – Administration Service oraz
usługa Office VPN z kroku 2.

Postać z samą nazwą hosta jest przeznaczona dla appliance hostowanych we własnej infrastrukturze, które publikują dla swojej domeny rekord usługi w DNS. Ten wariant opisuje notatka rekordy DNS SRV.

Gdy domena jest już dodana, otwórz w aplikacji Services. Office VPN figuruje na liście Available.

Dotknij jej, a aplikacja poprosi o dowód tożsamości wybrany w kroku 3. Przy Simple Credentials są to nazwa użytkownika i hasło ustawione w kroku 4:

Chwilę później aplikacja potwierdza, że usługa została włączona. Telefon przechowuje teraz klucz tego użytkownika w tej usłudze, a hasło spełniło swoje zadanie: od tej pory zatwierdzenie to jedno dotknięcie.

Krok 6: Wyślij testowe zatwierdzenie
Nie podłączaj jeszcze niczego. Najpierw udowodnij, że żądanie potrafi dotrzeć z twojego serwera na ten telefon – bez VPN-u, skryptu czy wtyczki po drodze.
W panelu otwórz utworzonego użytkownika. Strona pokazuje zarejestrowane urządzenie oraz przycisk Notification test.

Naciśnij go, a żądanie trafi do skrzynki Inbox w aplikacji:

Przyjrzyj się, co pokazuje karta żądania: wybraną przez ciebie nazwę usługi, serwer, z którego przyszło, treść prośby i czas, przez jaki żądanie pozostaje ważne. Dokładnie tę samą kartę zobaczą użytkownicy przy prawdziwym logowaniu, tyle że z prawdziwym opisem zamiast tekstu testowego. Zatwierdź żądanie albo je odrzuć. Tak czy inaczej, wiesz już, że cały łańcuch działa.
Jeśli nic nie przychodzi, problem leży między serwerem a telefonem, a nie w tym, co dopiero zamierzasz zintegrować – i właśnie dlatego ten test wykonuje się przed integracją. Sprawdź, czy telefon zezwala aplikacji na powiadomienia i czy urządzenie faktycznie figuruje na stronie użytkownika.
Co masz w tym momencie
Dwie wartości:
| Czego potrzebujesz | Gdzie to znaleźć | W tym przewodniku |
|---|---|---|
| Nazwa hosta serwera | nazwa instancji podana przy rejestracji | yourcompany.notakey.cloud |
| Service ID (Access ID) | strona usługi w panelu | po jednym UUID na usługę |
Oraz jedną sprawną drogę z serwera na telefon. Stąd wybierz już przewodnik dla tego, co chcesz chronić:
- VPN 2FA na MikroTik ze skryptami RouterOS.
Nazwa hosta trafia do
ntkHost, Service ID dontkAccessId. - VPN 2FA z RADIUS dla każdego VPN-u, który potrafi wskazać serwer RADIUS.
- 2FA dla SSH w systemie Linux z pam_radius.
- Windows Credential Provider dla Pulpitu zdalnego.
Przy wdrożeniu dla reszty zespołu powtarzają się tylko kroki 4 i 5: jedno konto na osobę, a każda osoba sama dodaje domenę i rejestruje swój telefon. Przy podłączonym źródle użytkowników odpada również krok 4 i dla każdej osoby zostaje już tylko krok 5.