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.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_1.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_1-1.png)
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.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_3-1024x314.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_3.png)
Zakładanie subkont użytkowników
Konto superadmina również może zostać użyte do logowania do panelu chmurowego, niemniej jednak zalecamy stworzenie subkont 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 Konta użytkowników w sekcji Zarządzanie.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_4-1024x368.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_4.png)
Po kliknięciu w przycisk Dodaj sub-użytkownika 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.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_5.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_5.png)
Po dodaniu nowego użytkownika należy mu zresetować hasło, oraz nadać uprawnienia do projektów w OpenStack. W tym celu należy rozwinąć menu obok przycisku Uprawnienia i wybrać opcję Resetuj hasło.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_6.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_6.png)
i w kolejnym kroku potwierdzić, klikając Resetuj.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_7.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_7.png)
Po kliknięciu zostanie wysłany mail z wygenerowanym hasłem na adres e-mail podany w profilu użytkownika.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_8.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_8.png)
W kolejnym kroku należy nadać użytkownikowi uprawnienia do projektu w Atman Cloud, klikając przycisk Uprawnienia. Pojawi się następujący widok, w którym przy danym projekcie, w linijce Dodaj do usługi należy kliknąć Aktywne.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_9-1024x539.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_9.png)
Obsługa OTP
W celu włączenia obsługi OTP (ang. one time password) należy w panelu w pierwszej kolejności uzupełnić numer telefonu komórkowego klikając w Edycja profilu -> Dane profilu.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_10-1024x344.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_10.png)
a następnie przejść do pozycji Edycja profilu -> Autoryzacja OTP i kliknąć Włącz.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_11-1024x299.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_11.png)
Następnie należy wprowadzić poprawny kod, otrzymany SMSem i kliknąć ponownie Włącz.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_12.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_12.png)
W celu wyłączenia obsługi OTP należy kliknąć w przycisk wyłącz w menu: Edycja profilu -> Autoryzacja OTP.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_13-1024x294.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_13.png)
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 TOTP i kliknąć Włącz, pojawi się okienko z kodem QR, który należy zeskanować w aplikacji typu Google Authenticator (google authenticator w google play, google authenticator w app store) oraz wpisać w formularzu pod kodem QR kod aktywacyjny z aplikacji.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_14.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_14.png)
QR code będzie również widoczny do użycia w późniejszym czasie w menu Edycja profilu -> Autoryzacja TOTP.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_16.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_15.png)
W celu wyłączenia autoryzacji TOTP, w powyższym menu klikamy przycisk Wyłącz i potwierdzamy w kolejnym kroku:
![](https://docs.atman.pl/wp-content/uploads/2021/06/Zrzut-ekranu-z-2021-07-01-12-53-50.png)
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 Zarządzanie -> Konta API i następnie kliknąć Dodaj nowe konto oraz w kolejnym oknie Dodaj.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_17-1024x230.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_17.png)
Po kliknięciu Dodaj 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.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_18.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_18.png)
W kolejnym kroku należy dodać uprawnienia do projektu w Atman Cloud, tak jak dla każdego innego użytkownika, klikając w pole Aktywne przy projekcie cloud.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_19-1024x532.png)
![](https://docs.atman.pl/wp-content/uploads/2024/03/OS_SSO_19.png)
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.
![](https://docs.atman.pl/www/wp-content/uploads/2022/09/SSO_20-1024x241.png)
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"
}