Hoppa till innehållet
Stackship-dokumentation English

Stackship-plattformenAnvändareMaskinöversatt

Autentisera

Hämta en åtkomsttoken som person eller som tjänstekonto, och skicka den med dina API-anrop.

API:et godtar OAuth 2.0-åtkomsttokens som utfärdats av plattformens identitetsleverantör, https://auth.example.com, realm stackship. Skicka token i headern Authorization i varje anrop:

http
GET https://api.example.com/boundaries
Authorization: Bearer <access-token>

Som person, med CLI:t

Personer loggar in interaktivt i en webbläsare; plattformen erbjuder inget lösenordsflöde. CLI:t stsh gör det åt dig:

  1. Kör stsh setup en gång. Det frågar efter Platform API URL (https://api.example.com), Keycloak URL (https://auth.example.com) och Keycloak realm (stackship); behåll standardvärdena för klient-id och audience.
  2. Kör stsh login. Det öppnar din webbläsare, du loggar in som i portalen, och CLI:t sparar dina tokens och förnyar dem.
  3. Kontrollera vem du är inloggad som:
bash
stsh whoami

Därefter anropar varje stsh-kommando, även stsh api, API:et som du.

Som tjänstekonto

Skript och pipelines bör logga in som ett tjänstekonto. Ett tjänstekonto använder flödet client credentials mot identitetsleverantörens tokenslutpunkt:

bash
TOKEN=$(curl -s https://auth.example.com/realms/stackship/protocol/openid-connect/token \
  -d grant_type=client_credentials \
  -d client_id="$CLIENT_ID" \
  -d client_secret="$CLIENT_SECRET" | jq -r .access_token)

curl -H "Authorization: Bearer $TOKEN" https://api.example.com/boundaries

Ingen scope- eller audience-parameter behövs. Tokens är kortlivade — femton minuter om inte din plattform är konfigurerad annorlunda — så begär en ny när ett anrop svarar 401.

Tokens för CLI:t i automatisering

CLI:t läser autentiseringsuppgifter från sin miljö innan det tittar på en sparad inloggning:

Variabel Effekt
STACKSHIP_TOKEN Används som bearer-token som den är
STACKSHIP_CLIENT_ID och STACKSHIP_CLIENT_SECRET CLI:t hämtar en token för det tjänstekontot; kontexten behöver ändå Keycloak-URL och realm från stsh setup

Den första som är satt vinner, i tabellens ordning; utan någon av dem använder CLI:t den sparade inloggningen.

Vad API:et kontrollerar

En token godtas när den:

  • har utfärdats av https://auth.example.com/realms/stackship och dess signatur kan verifieras;
  • inte har gått ut;
  • har audience stackship-kubernetes-client — tokens från portalen, CLI:t och tjänstekonton har det;
  • är en åtkomsttoken — ID-tokens avvisas.

Annars svarar anropet 401. En token visar vem du är; vad du får göra avgörs av dina roller med den omfattning som rutten anger, och ett anrop som du saknar behörighet för svarar 403. Se Fel.