# Metody autoryzacji
# Keystone v3
Dane potrzebne do połączenia z usługą znajdziesz przechodząc w Panelu do:
OCS > informacje dowolnego kontenera. Potrzebne wartości to:
 
OS_PROJECT_ID (ID projektu)
OS_PROJECT_NAME (nazwa projektu OCS)
OS_PASSWORD (hasło do Panelu)
OS_USER_ID (login do Panelu)
# swiftclient
Żeby połączyć się do OCS poprzez swiftclient-a należy przygotować plik ocs_v3.sh z następującą treścią:
# ENDPOINTY - należy użyć jednego z nich:
# endpoint dostępowy dla PL-WAW
export OS_AUTH_URL=https://ocs-pl.oktawave.com/auth/v3
# endpoint dostępowy dla PL-KRK
export OS_AUTH_URL=https://pl2-ocs.oktawave.com/auth/v3
# region name: PL1, lub PL2
export OS_REGION_NAME=
export OS_IDENTITY_VERSION=3
export OS_DOMAIN_NAME=OCS
export OS_USER_DOMAIN_NAME=OCS
# login do Panelu Oktawave
export OS_USER_ID=
# hasło do Panelu Oktawave
export OS_PASSWORD=
# ID projektu (do sprawdzenia w NAP > OCS > Statystyki > Kontener)
export OS_PROJECT_ID=
export OS_PROJECT_NAME=
Przykład:

# curl
W celu autoryzacji za pomocą curla należy przygotować plik ocs_v3.json z następującą treścią:
{    "auth": {
       "identity": {
          "methods": [
                "password"
           ], 
   "password": {
        "user": {
           "id": "OS_USER_ID",
                  "password": "OS_PASSWORD"
              }
            }
        },
        "scope": {
            "project": {
                "domain": {
                    "name": "OCS"
                },
                "id": "OS_PROJECT_ID"
            }
        }
    }
}
W miejsca OS_USER_ID, OS_PASSWORD i OS_PROJECT_ID należy podać odpowiednie wartości, takie same jak w przypadku swiftclienta.
Przykład:

Gdy plik zostanie odpowiednio przygotowany, można przejść do wygenerowania tokenu:
curl  -XPOST https://ocs-pl.oktawave.com/auth/v3/auth/tokens -H "Content-Type: application/json" -d @scope.json  -i
W odpowiedzi otrzymasz nagłówek, który będzie zawierał X-Service-Token:
HTTP/2 201
date: Thu, 31 Dec 2020 12:34:56 GMT
x-subject-token: TOKEN
vary: X-Auth-Token
x-openstack-request-id: req-6d2ce614-0e55-4a0b-8a57-b0ac9233f05a
content-length: 2316
content-type: application/json
Kolejne zapytania skonstruujesz z wykorzystaniem tokena. Pomocny powinien okazać się opis REST API (opens new window).
Każdy udany request o autoryzacje (token) dostaje w odpowiedzi parametr `expires_at`, który mówi do kiedy ważny jest token. Na podstawie tego można sterować aplikacją w celu wygenerowania nowego tokena jeśli stary wygasł.
Więcej informacji znajdziesz w dokumentacji OpenStack.
# Cyberduck
Należy pobrać profil połączenia i uruchomić go w programie Cyberduck (opens new window).
📁 Keystone v3. Oktawave Cloud Storage
Profil do połączenia wygląda następująco:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Protocol</key>
        <string>swift</string>
        <key>Vendor</key>
        <string>keystone3</string>
        <key>Description</key>
        <string>OCS v3</string>
        <key>Default Hostname</key>
        <string>ocs-pl.oktawave.com</string>
        <key>Default Port</key>
        <string>443</string>
        <key>Context</key>
        <string>/auth/v3/auth/tokens</string>
        <key>Username Placeholder</key>
        <string>Nazwa-projektu:OCS:E@mail</string>
        <key>Password Placeholder</key>
        <string>Hasło-do-konta</string>
    </dict>
</plist>
Po dodaniu profilu do programu do nawiązania połączenia podaj dwie wartości:
- połączony ciąg OS_PROJECT_NAME:OCS:OS_USERNAME, 
 czyli np. OCS-CTWm3l:OCS:jan.kowalski@oktawave.com;
- OS_PASSWORD, czyli hasło do konta.

Gdy posiadasz kontenery zarówno w PL1 jak i w PL2 możesz potrzebować informacji o lokalizacji. Informację o lokalizacji kontenera wyświetlisz włączając widok wybierając kolejno View > Column > Storage Class (dla Windowsa) / Region (dla Mac).
# Swauth (deprecated)
# swiftclient
W celu nawiązania połączenia z wykorzystaniem swiftclienta należy przygotować plik ocs_sw.sh z następującą treścią:
#niezmienna, obowiązkowa wartość
export ST_AUTH=https://ocs-pl.oktawave.com/auth/v1.0
# dane użytkownika do logowania Swauth
# do sprawdzenia w NAP > Swauth / OCS > informacje dowlonego kontenera
export ST_USER=
export ST_KEY=
Przykład:

# curl
Żeby poprawnie połączyć się z OCS za pomocą curla z konsoli wystarczy wydać następujące polecenie:
curl -i 'https://ocs-pl.oktawave.com/auth/v1.0' \
 -H "X-Auth-User:NazwaUzytkownika1234:admin" \
 -H "X-Auth-Key:Haslo123"
W miejsca NazwaUzytkownika1234:admin i Haslo123 należy podać odpowiednie wartości, tak samo jak w przypadku swiftclient-a. W odpowiedzi otrzymasz token, którego użyj do tworzenia kolejnych zapytań curl.
Przykład:
# Cyberduck
Należy pobrać profil połączenia i uruchomić go w programie Cyberduck (opens new window).
📁 Swauth Oktawave Cloud Storage
Profil do połączenia wygląda następująco:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Protocol</key>
        <string>swift</string>
		<key>Vendor</key>
        <string>Oktawave</string>
		<key>Description</key>
        <string>OCS Swauth</string>
		<key>Default Hostname</key>
		<string>ocs-pl.oktawave.com</string>
		<key>Default Port</key>
		<string>443</string>
        <key>Context</key>
        <string>/auth/v1.0/</string>
        <key>Username Placeholder</key>
       	<string>Login</string>
       	<key>Password Placeholder</key>
       	<string>Password</string>
    </dict>
</plist>
Po dodaniu profilu do programu do nawiązania połączenia podaj wartości:
- nazwę użytkownika, czyli np. JanKowalski1234:admin lub Oktawave-1234:tomek
- hasło do swojego konta.

