System SSO został stworzony w celu podniesienia bezpieczeństwa logowania do Panelu Atman Cloud. W celu zalogowania się do panelu zarządzania w Atman Cloud poprzez SSO należy w pierwszej kolejności uzyskać dostęp do konta na stronie https://auth.atman.pl.

Uzyskanie dostępu do logowania

Nazwa konta do powyższego panelu znajduje się w panelu do zarządzania serwerami Atman Cloud. Hasło zostanie wysłane w mailu informującym o założeniu konta. Konto jest w chwili obecnej tworzone przez pracowników Atmana na życzenie klienta. Przy pierwszym logowaniu będzie konieczna zmiana hasła.

Opis funkcjonalności panelu auth.atman.pl

Panel https://auth.atman.pl jest centralnym punktem zarządzania kontami, które będą używane do logowania do panelu Atman Cloud https://sso.cloud.atman.pl. Docelowo będzie on używany do dostępu do innych usług Atman S.A.

Panel jest oparty o rozwiązanie OAuth w połączeniu OpenID Connect, który jest otwartym standardem w kwestii autoryzacji i systemów SSO (ang. Single Sign On).

Panel pozwala na włączenie podwójnej, a dla klientów nastawionych na maksymalne bezpieczeństwo, nawet potrójnej autoryzacji, ponieważ istnieje możliwość jednoczesnego włączenia TOTP oraz OTP.

Wymagania dotyczące hasła to:

  • minimalna długość hasła 10 znaków
  • ważność hasła: 30 dni
  • jeden znak specjalny
  • jedna cyfra
  • jedna duża litera
  • hasło nie może być takie same, jak 5 haseł wstecz
  • login i hasło nie mogą być do siebie podobne (dystans Levenshteina dla loginu i hasła ustawiony jest na 4)

Hasło jest ważne 30 dni, na 7, 5 i 2 dni przed wygaśnięciem użytkownik dostanie powiadomienie mailowe o konieczności zmiany hasła.

Konto jest blokowane po 30 dniach nieaktywności (należy zalogować się przynajmniej raz w okresie 30 dni).

Logowanie do panelu Atman Cloud poprzez SSO

W tym celu należy na stronie https://sso.cloud.atman.pl wybrać opcję OpenID Connect i kliknąć Sign in.

 

Użytkownik zostanie przekierowany na adres: https://auth.atman.pl/oauth/password/xxxxxxxxxxxxxxxxxxxxxxxxx i tam należy wpisać dane logowania SSO.

Następnie użytkownik zostanie przekierowany do panelu Atman Cloud, gdzie może zarządzać zasobami cloud.

Zakładanie kont użytkowników

Konto superadmina również może zostać użyte do logowania do panelu chmurowego, niemniej jednak zalecamy stworzenie kont (w poprzedniej wersji Atman SSO były one nazywane „subkontami”) dla użytkowników firmy w celu przydzielania im dostępu do odpowiednich projektów. W tym celu należy z poziomu superadmina kliknąć w menu Kontakty i użytkownicy.

Na tej stronie, można dodać użytkowników na dwa sposoby:


1) Dla nowego użytkownika należy użyć opcji Dodaj użytkownika. W wyświetlonym formularzu należy poprawnie wypełnić wszystkie pola, w szczególności mail i numer telefonu, ponieważ na maila będzie wysłana informacja o haśle początkowym dla użytkownika, natomiast numer telefonu będzie używany przy autoryzacji OTP. W sekcji poniżej należy także nadać uprawnienia:
– w sekcji Uprawnienia do klienta znajdują się uprawnienia, które są nadawane klientowi i mogą dotyczyć wszystkich jego usług,
– w sekcji Uprawnienia do usług znajdują się uprawnienia, które są przydzielane do konkretnych usług posiadanych przez klienta.


2) Dla istniejącego kontaktu, który jeszcze nie posiada konta użytkownika istnieje możliwość utworzenia użytkownika. W tabeli Użytkownicy i kontakty, w prawym menu
wyświetlanym dla każdego rekordu jest opcja Utwórz użytkownika. Po kliknieciu na nią, na podany adres e-mail zostanie wysłana wiadomość z hasłem tymczasowym do portalu. Po zalogowaniu się na portal za jego pomocą, konto użytkownika zostanie aktywowane.

W kolejnym kroku należy nadać użytkownikowi uprawnienia do projektu w Atman Cloud, przechodząc do sekcji Uprawnienia do klienta. Pojawi się następujący widok, w którym można wybrać uprawnienia i do których projektów zostaną przyznane.

W sekcji Użytkownicy i kontakty, każdy z rekordów może mieć wartości w kolumnie Użytkownik:
– brak użytkownika – kontakt nie posiada przypisanego konta użytkownika,
– oczekuje na rejestracje – wartość prezentowana w przypadku, gdy konto użytkownika jest w trakcie tworzenia. Na adres e-mail kontaktu został wysłana wiadomość z hasłem tymczasowym do konta. Ten status zmieni się po zalogowaniu się. 
– [nazwa użytkownika] – istnieje konto użytkownika na które można się zalogować (poniżej opisany jako „tester„).

 

Po dodaniu nowego użytkownika istnieje możliwość zresetowania mu hasła. W tym celu należy rozwinąć menu obok przycisku Uprawnienia i wybrać opcję Resetuj hasło.

i w kolejnym kroku potwierdzić, klikając Resetuj.

Po kliknięciu zostanie wysłany mail z wygenerowanym hasłem na adres e-mail podany w profilu użytkownika.

 

Obsługa OTP

W celu włączenia obsługi OTP (ang. one time password) należy przejść do Edycja profilu -> Uwierzytelnianie 2FA emailem lub Uwierzytelnianie 2FA telefonem zależnie od preferowanego kanału uwierzytelniania.

 

a następnie kliknąć Włącz.

W kolejnym kroku należy wprowadzić poprawny kod, otrzymany SMSem i kliknąć ponownie Włącz.

 

W celu wyłączenia obsługi OTP należy kliknąć w przycisk wyłącz w menu: Edycja profilu i kliknąć opcję Wyłącz wybranego kanału uwierzytelniania.

 

Należy pamiętać o tym, że kody OTP obowiązują zarówno w momencie logowania do panelu zarządzania kontem, jak również w momencie logowania do panelu zarządzania Atman Cloud.

Obsługa TOTP

W celu włączenia obsługi TOTP należy przejść do pozycji Edycja profilu -> Autoryzacja 2FA aplikacją i kliknąć Włącz, pojawi się okienko z kodem QR, który należy zeskanować w aplikacji typu Google Authenticator (google authenticator w google playgoogle authenticator w app store) oraz wpisać w formularzu pod kodem QR kod aktywacyjny z aplikacji.

QR code będzie również widoczny do użycia w późniejszym czasie w menu Edycja profilu -> Autoryzacja TOTP.

 

W celu wyłączenia autoryzacji TOTP, w menu Edycja profilu klikamy przycisk Wyłącz i potwierdzamy w kolejnym kroku:

 

Należy pamiętać o tym, że kody TOTP obowiązują zarówno w momencie logowania do panelu zarządzania kontem, jak również w momencie logowania do panelu zarządzania Atman Cloud.

Konta API

Konta API służą do zarządzania środowiskiem cloud poprzez CLI lub z poziomu systemów do automatyzacji, typu Terraform lub Heat.

W celu założenia konta API należy z poziomu admina firmy kliknąć w sekcji Kontakty i użytkownicy -> Użytkownicy API i następnie kliknąć Utwórz konto API.

 

Należy wypełnić pola Suffix oraz Opis i nacisnąć Zapisz.

Dane wypełnione w polu „Suffix” pojawią się na końcu nazwy użytkownika API, a „Opis” służy do ułatwienia identyfikacji tworzonych użytkowników API.

Po kliknięciu Zapisz pojawi się okno z danymi (Secret oraz Key), które należy zapisać, ponieważ nie będą nigdzie indziej widoczne, jak tylko w tym widoku.

W kolejnym kroku należy dodać uprawnienia do projektu w Atman Cloud dla konta API, tak jak dla każdego innego użytkownika, klikając w wyprane pozycje w sekcji Uprawnienia do klienta dla wybranych projektów w sekcji Uprawnienia do usług.

Konfiguracja pliku openrc dla konta API

By móc skorzystać z konta stworzonego w powyższym kroku, należy w następujący sposób ustawić zmienne środowiskowe w pliku openrc, który użyjemy w poleceniu source dla regionu WAW-1:

# poniższych ustawień proszę nie modyfikować !
export OS_AUTH_URL=https://api.cloud.atman.pl:5000/v3
export OS_IDENTITY_PROVIDER="sso_idp"
export OS_PROTOCOL="jwt_token"
export OS_AUTH_TYPE="v3oidcclientcredentials"
export OS_ACCESS_TOKEN_TYPE="access_token"
export OS_ACCESS_TOKEN_ENDPOINT="https://auth.atman.pl/api/oauth/token"
export OS_PROJECT_DOMAIN_ID="bd17ce926f1e41d39f6768aadf326dcf"
export OS_REGION_NAME="Waw01"
export OS_INTERFACE=public
export OS_IDENTITY_API_VERSION=3


# poniższe ustawienia są zmienne


export OS_CLIENT_ID="api_xxxxxxxxx"
export OS_CLIENT_SECRET="xxxxxxxxxxxxxxxxxxxxxxx"
export OS_PROJECT_ID="3f12xxxxxxxxxxxxxxx"
export OS_PROJECT_NAME="test-xxxxxxxxxx-1"
export OS_USERNAME="sub.xxxxxx"

oraz dla nowego regionu WAW-1B:

export OS_AUTH_URL=https://waw1-b.cloud.atman.pl:5000/v3
export OS_IDENTITY_PROVIDER="sso_idp"
export OS_PROTOCOL="jwt_token"
export OS_AUTH_TYPE="v3oidcclientcredentials"
export OS_ACCESS_TOKEN_ENDPOINT="https://auth.atman.pl/api/oauth/token"
export OS_PROJECT_DOMAIN_ID="ceab97173f4e43fab1078f2615bcd15c"
export OS_REGION_NAME="ATMAN_WAW1_B"
export OS_INTERFACE=public
export OS_IDENTITY_API_VERSION=3


# poniższe ustawienia są zmienne


export OS_CLIENT_ID="api_xxxxxxxxx"
export OS_CLIENT_SECRET="xxxxxxxxxxxxxxxxxxxxxxx"
export OS_PROJECT_ID="3f12xxxxxxxxxxxxxxx"
export OS_PROJECT_NAME="test-xxxxxxxxxx-1"
export OS_USERNAME="sub.xxxxxx"

 

OS_CLIENT_ID oraz OS_CLIENT_SECRET uzyskaliśmy w momencie zakładania konta API, natomiast OS_PROJECT_ID , OS_USERNAME oraz OS_PROJECT_NAME uzyskujemy z poziomu panelu Horizon, po kliknięciu w menu Project -> API Access, następnie w przycisk View Credentials.

Następnie możemy skorzystać z tak przygotowanego pliku, by wywołać komendy openstack, np.:
$ source ~/openrc
$ openstack server list
+--------------------------------------+------------+--------+--------------------------+-------+--------+
| ID                                   | Name       | Status | Networks                 | Image | Flavor |
+--------------------------------------+------------+--------+--------------------------+-------+--------+
| b837a3fe-XXXX-XXXX-XXXX-XXXXXXXXXXXX | sso-ubu-20 | ACTIVE | int-sso=x.x.x.x, y.y.y.y |       | m1.c1  |
+--------------------------------------+------------+--------+--------------------------+-------+--------+
$

 

Klient CLI python-openstackclient (narzędzie openstack) w systemach Linux można zainstalować poprzez pip lub z repozytoriów paczek systemowych np. poprzez apt (Ubuntu i podobne) lub dnf (RedHat i podobne).

 

Korzystanie z konta API w Terraform

W celu skorzystania z użytkownika api w terraformie przy konfiguracji providera należy zamienić auth_url na podany w poniższym przykładzie. W polu user_name podać w nazwę użytkownika api a w polu password klucz wygenerowany przy tworzeniu tego użytkownika.

Dla WAW-1:

provider "openstack" {
tenant_name = "project-name"
user_name = "api-user"
password = "api-key"
auth_url = "https://sso.cloud.atman.pl:5000/keystone-auth-proxy/v3"
region = "Waw01"
}

 

Dla WAW-1B:

provider "openstack" {
tenant_name = "project-name"
user_name = "api-user"
password = "api-key"
auth_url = "https://waw1-b.cloud.atman.pl:5000/keystone-auth-proxy/v3"
region = "ATMAN_WAW1_B"
}