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:
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:
- Kör
stsh setupen 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. - 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. - Kontrollera vem du är inloggad som:
stsh whoamiDä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:
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/boundariesIngen 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.