Każdy przewodnik integracyjny na tym blogu zaczyna się w tym samym miejscu: mają Państwo 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 stoją Państwo jeszcze na tej linii startu, stronę Notakey zbywają jednym czy dwoma zdaniami, a resztę zostawiają Państwu.
Ten przewodnik to właśnie ta pominięta część. Kończy się testowym żądaniem na Państwa 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: Utworzenie instancji w chmurze
Należy wejść na signup.notakey.com i wybrać 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

Warto zwrócić 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łada się pierwsze konto administratora: nazwa użytkownika, samodzielnie wybrane hasło oraz imię i nazwisko.

Krok Onboard user rejestruje następnie Państwa własny telefon. Należy zainstalować Notakey Authenticator, zeskanować kod QR ze strony i zalogować się nazwą użytkownika oraz hasłem, które przed chwilą powstały. Strona podaje też drogę ręczną: dodać adres swojego serwera w aplikacji jako service domain i wybrać Administration Service.

Po zarejestrowaniu telefonu kreator kończy pracę i przenosi do panelu. Państwa telefon należy teraz do wbudowanej usługi Administration Service tej instancji. To ma znaczenie w kroku 5, bo oznacza, że Państwa telefon ma już wpisaną Państwa domenę.
Krok 2: Utworzenie usługi
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 należy otworzyć Services → Manage i nacisnąć Create a service.

Wymagane jest wyłącznie pole Name. Nazwę warto dobrać 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.
Należy nacisnąć 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 Państwa konto.
Druga usługa dostaje inny.
Krok 3: Włączenie wymagania 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ć. Po otwarciu Onboarding requirements w menu usługi 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 ustawią Państwo 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ż korzystają Państwo, 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 należy nacisnąć 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 usuną Państwo 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”, należy zajrzeć najpierw tutaj.
Krok 4: Utworzenie użytkownika
Należy otworzyć Users w menu usługi i nacisnąć 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 należy je wybrać, zapisać i przekazać tak, jak 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ż Państwo utrzymują. 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 trzeba zakładać konta i nie ma ż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: Rejestracja telefonu
Należy zainstalować 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ę.

Państwa własny telefon ma już Państwa 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 należy wpisywać 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, należy otworzyć w aplikacji Services. Office VPN figuruje na liście Available.

Po jej dotknięciu 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: Wysłanie testowego zatwierdzenia
Nie należy jeszcze niczego podłączać. Najpierw trzeba udowodnić, że żądanie potrafi dotrzeć z Państwa serwera na ten telefon – bez VPN-u, skryptu czy wtyczki po drodze.
W panelu należy otworzyć utworzonego użytkownika. Strona pokazuje zarejestrowane urządzenie oraz przycisk Notification test.

Po jego naciśnięciu żądanie trafi do skrzynki Inbox w aplikacji:

Warto przyjrzeć się, co pokazuje karta żądania: wybraną przez Państwa 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. Żądanie można zatwierdzić albo odrzucić. Tak czy inaczej, wiadomo 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 zamierzają Państwo zintegrować – i właśnie dlatego ten test wykonuje się przed integracją. Należy sprawdzić, czy telefon zezwala aplikacji na powiadomienia i czy urządzenie faktycznie figuruje na stronie użytkownika.
Co mają Państwo w tym momencie
Dwie wartości:
| Co jest potrzebne | 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 można już wybrać przewodnik dla tego, co chcą Państwo 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.