Skip to main content
  • »
  • ZARZĄDZANIE KONTEM »
  • Jak aktywować dostęp OpenStack CLI do chmury NSIS przy użyciu uwierzytelniania dwuskładnikowego

Jak aktywować dostęp OpenStack CLI do chmury NSIS przy użyciu uwierzytelniania dwuskładnikowego

Uwierzytelnianie dwuskładnikowe

Aby zalogować się do witryny, zwykle wpisuje się nazwę użytkownika i adres e-mail podany podczas tworzenia konta. Te dane podaje się raz i stąd pochodzi nazwa uwierzytelnianie „jednoskładnikowe”. Uwierzytelnianie dwuskładnikowe wymaga podania tych samych danych, ale jest to tylko pierwszy krok; w chmurze NSIS drugim krokiem jest

  • wygenerowanie sześciocyfrowego kodu przy użyciu odpowiedniego oprogramowania, a następnie

  • przesłanie go do chmury jako element dodatkowej certyfikacji.

Parametry chmury służące do uwierzytelniania, a następnie do dostępu do OpenStack CLI, znajdują się w tak zwanym pliku RC. Ten artykuł pomoże ci go pobrać i używać, aby najpierw uwierzytelnić się, a następnie uzyskać dostęp do chmury za pomocą poleceń OpenStack CLI.

Co obejmuje ten artykuł?

  • Jak pobrać plik RC

  • Który plik RC OpenStack pobrać

  • Zawartość pobranego pliku RC

  • Jak aktywować pobrany plik RC

  • Uwierzytelnianie dwuskładnikowe

  • Testowanie połączenia

  • Rozwiązywanie błędów

Wymagania wstępne

Nr 1 Konto

Jest wymagane konto hostingowe NSIS z dostępem do interfejsu Horizon: https://horizon.cloudferro.com.

Nr 2 2FA

Ponieważ w NSIS jest włączone uwierzytelnianie dwuskładnikowe (2FA), należy zainstalować i skonfigurować oprogramowanie, które generuje sześciocyfrowe kody używane do 2FA. Aby je skonfigurować, postępuj zgodnie z jednym z tych artykułów, w zależności od typu używanego urządzenia:

Nr 3 Zainstalowany i dostępny OpenStackClient

Instalacja OpenStackClient na różnych platformach umożliwi również uruchamianie plików .sh. Ponieważ OpenStack jest napisany w języku Python, zaleca się korzystanie z dedykowanego środowiska wirtualnego dla czynności z pozostałej części tego artykułu.

Instalacja GitBash w systemie Windows

Uruchom pliki .sh i zainstaluj OpenStackClient z okna GitBash w systemie Windows. Patrz artykuł Jak zainstalować OpenStackClient GitBash dla Windows na NSIS.

Instalowanie i uruchamianie WSL (Windows Subsystem for Linux)

Uruchom pliki .sh i zainstaluj OpenStackClient z okna Ubuntu w systemie operacyjnym Windows. Jak zainstalować OpenStackClient w systemie Windows przy użyciu Windows Subsystem for Linux na hostingu NSIS OpenStack?.

Instalacja OpenStackClient w systemie Linux

Jak zainstalować OpenStackClient dla systemu Linux na NSIS.

Jak pobrać plik RC?

Plik RC można pobrać z dwóch różnych lokalizacji w OpenStack Horizon.

Lokalizacja linku do pliku RC Kliknij nazwę konta

Nazwa konta znajduje się w prawym górnym rogu ekranu Horizon. W zależności od używanej chmury zostanie wyświetlone następujące menu:

../_images/click_on_email1.png

Opcje Settings i Help są poza zakresem tego artykułu. Kliknij opcję API Access

Przejdź do opcji API Access -> Download OpenStack RC File. Zostanie wyświetlone następujące menu:

../_images/download_rc_file_2fa1.png

Opcja OpenStack clouds.yaml File jest poza zakresem tego artykułu.

Który plik RC OpenStack pobrać?

Wybierz pobieranie OpenStack RC File (2FA).

W każdej chwili potrzebna jest tylko jedna kopia pliku RC. Jeśli pobrano więcej niż jedną kopię pliku do tego samego folderu bez przenoszenia pierwotnego pliku lub zmiany jego nazwy, system operacyjny może rozróżnić pobrane pliki, dodając dodatkowe znaki na końcu nazwy pliku.

Na przykład, niech pobrany plik RC ma nazwę cloud_00734_1-openrc-2fa.sh. Dla wygody możesz

  • zmienić jego nazwę i

  • przejść do folderu, w którym chcesz go aktywować.

Zawartość pobranego pliku RC

Plik RC ustawia zmienne środowiskowe, które są używane przez klienta OpenStack CLI do uwierzytelniania w chmurze. Zgodnie z konwencją, te zmienne są pisane wielkimi literami i zaczynają się od OS_: OS_TENANT_ID, OS_PROJECT_NAME itd. Na przykład w przypadku uwierzytelniania jednoskładnikowego plik RC poprosi o hasło i zapisze je w zmiennej o nazwie OS_PASSWORD.

Poniżej znajduje się przykładowa zawartość pliku RC, który nie korzysta z 2FA:

../_images/rc_file_content_nsis_pl1.png

Plik obsługujący 2FA będzie zawierał dodatkowe fragmenty kodu zapewniające obsługę drugiego składnika uwierzytelniania.

Jak aktywować pobrany plik RC?

Procedura aktywacji zależy od używanego systemu operacyjnego:

Ubuntu

Zakładając, że jesteś w tym samym katalogu, w którym znajduje się plik RC, użyj polecenia source:

source ./cloud_00734_1-openrc-2fa.sh
macOS

To samo polecenie source powinno działać na macOS. W niektórych wersjach macOS może jednak działać również alternatywne polecenie zsh:

zsh ./cloud_00734_1-openrc-2fa.sh

Należy zauważyć, że w obu przypadkach ./ oznacza „użyj pliku w tym folderze, w którym jesteś”.

Windows

W systemie Windows, aby wykonać plik z rozszerzeniem .sh, musisz mieć zainstalowaną aplikację, która może uruchamiać pliki „Bash”.

Zobacz Wymaganie wstępne nr 3, w którym opisano bardziej szczegółowo, jak uruchamiać pliki .sh w systemie Windows przy użyciu różnych scenariuszy.

Uwierzytelnianie dwuskładnikowe

W przypadku uwierzytelniania dwuskładnikowego terminal wymaga najpierw podania hasła. Następnie zostanie wyświetlone okno do podania drugiego składnika, który zwykle ma postać sześciocyfrowego hasła jednorazowego:

../_images/activate-api-2fa-02_creodias1.png

Aby uzyskać sześciocyfrowy kod, uruchom aplikację używaną do uwierzytelniania. Zgodnie z zaleceniami Wymagania wstępnego nr 2, może to być:

  • FreeOTP na urządzeniach mobilnych,

  • KeePassXC na komputerach stacjonarnych,

  • można też uruchomić inne wybrane oprogramowanie,

  • można nawet napisać własny kod w języku Python lub Bash służący do generowania sześciocyfrowego kodu.

Załóżmy na przykład, że korzystasz z FreeOTP na urządzeniu mobilnym i że jest to ikona przypisana do twojego konta:

../_images/freeotp_icon_to_select1.png

Dotknij ją, a pojawi się sześciocyfrowy numer:

../_images/freeotp_tapped_number1.png

Ten sześciocyfrowy kod będzie odnawiany co trzydzieści sekund. Wprowadź najnowszy kod w oknie terminala i naciśnij Enter na klawiaturze. Jeśli wszystko zadziałało poprawnie, po kilku sekundach powinien nastąpić powrót do normalnego wiersza poleceń bez żadnych dodatkowych komunikatów:

../_images/activate-api-2fa-03_creodias1.png

Uwierzytelnianie za pomocą poświadczeń aplikacji

Jeśli twoja aplikacja ma już utworzony zestaw poświadczeń, możesz ich użyć do uwierzytelnienia w chmurze NSIS. Pobierz plik RC, którego nazwa zawiera ciąg znaków -app-credentials, na przykład cloud_078649_1-openrc-app-credentials.sh i wykonaj go za pomocą polecenia source.

Wymagane będzie podanie danych uwierzytelniających ID i secret:

../_images/app-credentials-saved1.png

Podobnie jak w przypadku innych wrażliwych informacji, wprowadzone wartości nie będą wyświetlane na ekranie.

Więcej informacji na temat poświadczeń aplikacji można znaleźć w artykule Jak wygenerować lub użyć poświadczeń aplikacji za pośrednictwem CLI na NSIS Cloud.

Czas życia zmiennych środowiskowych ustawionych przez sourcing z pliku RC

Podczas pobierania pliku zmienne środowiskowe są ustawiane dla bieżącej powłoki. Aby to sprawdzić, otwórz dwa okna terminala, pobierz plik RC w jednym z nich, ale nie w drugim, nie będziesz wtedy w stanie uwierzytelnić się z okna drugiego terminala.

W związku z tym należy aktywować plik RC przy każdym uruchomieniu nowej sesji terminala. Po uwierzytelnieniu, gdy okno terminala jest otwarte, można go również używać do wydawania dowolnych poleceń OpenStack CLI.

Testowanie połączenia

Jeśli klient OpenStack nie jest jeszcze zainstalowany, zainstaluj go, korzystając z jednego z linków podanych w Wymaganiu wstępnym nr 3. Aby sprawdzić dostęp, wykonaj następujące polecenie, które wyświetli listę dostępnych flavorów na chmurze NSIS:

openstack flavor list

Wynik powinien być podobny do tego:

../_images/flavor_list_2fa_short1.png

Rozwiązywanie błędów

Aplikacja jq nie jest zainstalowana

jq to aplikacja służąca do analizowania danych wejściowych JSON. W tym kontekście służy do przetwarzania danych wyjściowych z serwera. Jest ona zainstalowana w większości dystrybucji Linuksa. Jeśli nie jest zainstalowana na twoim komputerze, możesz otrzymać taki komunikat:

../_images/jq_error1.png

Aby rozwiązać ten problem, należy pobrać aplikację z oficjalnej strony pomocy technicznej i postępować zgodnie ze wskazówkami dotyczącymi instalacji w twoim systemie operacyjnym.

Jeśli korzystasz z Git Bash w systemie Windows i wystąpił ten błąd, odpowiednie instrukcje dotyczące instalacji jq zawiera krok 6 artykułu na temat GitBash w Wymaganiu wstępnym nr 3.

Konta 2FA: wprowadzenie błędnego hasła i/lub sześciocyfrowego kodu

Jeśli wprowadzisz nieprawidłowy sześciocyfrowy kod, pojawi się następujący błąd:

Call to Keycloak failed with code 401 and message
{
"error": "invalid_grant",
"error_description": "Invalid user credentials"
}

W takim przypadku wystarczy ponownie aktywować plik RC i wpisać prawidłowe dane uwierzytelniające.

Konta 2FA: utracone połączenie z Internetem

Aktywacja pliku 2FA RC wymaga dostępu do usługi konta NSIS, ponieważ obejmuje nie tylko ustawienie zmiennych, ale także uzyskanie odpowiedniego tokena.

Jeśli nie masz połączenia z Internetem, po wprowadzeniu sześciocyfrowego kodu otrzymasz następującą odpowiedź:

Call to Keycloak failed with code 000 and message

Następnie zostanie wyświetlony pusty wiersz i nastąpi powrót do wiersza poleceń.

Aby rozwiązać ten problem, połącz się z internetem i spróbuj ponownie aktywować plik RC. Jeśli masz pewność, że masz połączenie z internetem, może to oznaczać, że usługa konta NSIS nie działa. Jeśli nie ogłoszono przestoju, skontaktuj się z działem wsparcia klienta NSIS: Helpdesk i wsparcie.

Użycie niewłaściwego pliku

Jeśli dla swojego konta masz włączone uwierzytelnianie 2FA, ale próbowałeś(-aś) aktywować plik RC w wersji innej niż 2FA, wykonanie na przykład polecenia openstack flavor list, spowoduje zgłoszenie następującego błędu:

Unrecognized schema in response body. (HTTP 401)

W takim przypadku należy pobrać odpowiedni plik i go użyć.

Co można zrobić dalej?

Po aktywowaniu odpowiedniej wersji pliku RC powinno być możliwe tworzenie i używanie

  • instancji,

  • volume,

  • sieci,

  • klastrów Kubernetes

oraz używanie wszystkich poleceń OpenStack CLI.

Na przykład, jeśli chcesz utworzyć nową maszynę wirtualną, możesz postępować zgodnie z opisem w tym artykule:

Jeśli chcesz, aby twoja nowa maszyna wirtualna była oparta na obrazie, który nie jest dostępny w chmurze NSIS Cloud, musisz go najpierw przesłać. Poniższy artykuł zawiera instrukcje, jak to zrobić: