Alle API-ene er beskyttet. Hver forespørsel må ha et gyldig token fra Sirkteks innloggingstjeneste, og forespørsler som gjelder én organisasjons data må i tillegg si hvilken organisasjon det er.

De to headerne

HeaderVerdiNår
AuthorizationBearer <jwt>Alltid
X-auth-ownerorganisasjons-IDPå alle organisasjonsavgrensede endepunkt

Innloggingstjenesten er https://auth2.sirktek.com. Endepunktene finner du i OIDC-dokumentet:

  https://auth2.sirktek.com/.well-known/openid-configuration
  

Maskin-til-maskin: API-nøkkel

Et system som kjører uten en innlogget bruker autentiserer seg med en API-nøkkel — en klient-ID og en klienthemmelighet du oppretter i Sirktek. Se API-nøkler.

Hent et token med client_credentials:

  curl -X POST https://auth2.sirktek.com/protocol/openid-connect/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "client_id=DIN_KLIENT_ID" \
  -d "client_secret=DIN_KLIENTHEMMELIGHET" \
  -d "resource=https://api.sirktek.com"
  

Svaret inneholder access_token. Bruk det på neste kall:

  curl https://api.sirktek.com/assets/v1/assets \
  -H "Authorization: Bearer DITT_TOKEN" \
  -H "X-auth-owner: DIN_ORGANISASJONS_ID"
  

En API-nøkkel er knyttet til én organisasjon, så organisasjons-ID-en er kjent på forhånd og endrer seg ikke.

Innlogget bruker: autorisasjonskode med PKCE

Skal noen logge inn med sin egen bruker — en webklient, eller en AI-assistent som handler på vegne av en person — brukes authorization_code med PKCE, ikke client_credentials. Klienten må være registrert i Sirktek med sine redirect-URI-er før den kan brukes.

Et brukertoken kan gjelde flere organisasjoner. Da må hver forespørsel si hvilken organisasjon den gjelder gjennom X-auth-owner — det er ikke noe standardvalg.

Tokenets levetid

Tokenet har kort levetid. En integrasjon som kjører over tid må hente nytt token før det gamle utløper, ikke vente på det første avslaget. Ikke lagre tokenet lenger enn nødvendig, og aldri i klartekst på disk.

Aldri i kode eller logg

Alle verdier i eksemplene over er plassholdere. Klienthemmeligheter, tokener og organisasjons-ID-er skal aldri sjekkes inn i kildekode, skrives til logg eller sendes i en støttehenvendelse.

Videre