Følg med på OAuth-token i Konti Connect¶
Integrasjoner som bruker OAuth (f.eks. Visma Business NXT via Visma Connect) lagrer et access token + refresh token i wv_Integration (VismaConnectOAuthService.cs:291, dbscript.sql:6484). Konti Connect-listen viser en visuell indikator når en integrasjon har OAuth-token lagret, og varsler med gul farge når tokenet utløper om mindre enn 7 dager.
Selve rotering / re-autorisering gjøres i dag ikke fra UI-et i Konti Connect — det finnes ingen "Re-autoriser"-knapp i hverken listen, detaljvisningen eller editoren. Denne siden beskriver hvordan du oppdager at et token nærmer seg utløp, og hva du må gjøre når det skjer.
Tilgang¶
| Hvem | Hva trengs |
|---|---|
| Rolle | Administrator (modulen er admin-only) |
| Modul | Konti Connect — moduleId: 27 (konti-connect-routing.module.ts:18) |
Modulen er beskyttet av ActivateService + ModuleGuard på alle ruter (/konti-connect/integrations, /new, /:id, /:id/edit).
Hvor du ser OAuth-status¶
På integrasjonslisten (/konti-connect/integrations) viser hvert kort/listerad en chip når integrasjonen har lagret et OAuth-token (integration-list.component.html:254):
| Tilstand | Hvordan ser den ut |
|---|---|
| Token gyldig | Grønn chip (chip-success) med tekst "OAuth" + hengelås-ikon (bi-shield-lock) og grønn hake (bi-check-circle-fill) |
| Token utløper innen 7 dager | Gul chip (chip-warning) med samme tekst, men varseltrekant (bi-exclamation-triangle-fill) |
| Ingen OAuth-token lagret | Ingen chip vises |
Logikken som styrer varselet ligger i isTokenExpiringSoon(...) (integration-list.component.ts:674) — den sammenligner oAuthTokenExpiresAt mot dagens dato og returnerer true når det er mindre enn 7 dager igjen.
Merk: Selve tokenet sendes aldri til UI. Endepunktene returnerer
IntegrationSafeResponse, som lister opp hvilke felter klienten får se —OAuthAccessTokenogOAuthRefreshTokener ikke blant dem. Statusen chipen leser,hasOAuthToken, regnes ut på serveren før tokenet forkastes, og følges av utløpsdatoenoAuthTokenExpiresAt(IntegrationSafeResponse.cs).
Hva detaljvisningen viser¶
Detaljvisningen (/konti-connect/integrations/:id) har fanene Oversikt, Konfigurasjon, Historikk og — avhengig av integrasjonstype — Bilagslogg, Nye og endrede timer, Nye bilag til bokføring, Nye bilag til Business NXT og Bilagshistorikk (integration-detail.component.html:40). Det er ingen Auth-fane og ingen "Re-autoriser"-knapp i denne visningen.
Konfigurasjon-fanen viser kun innholdet av ConfigurationJson som read-only JSON — ikke felter for å starte ny OAuth-flyt.
Slik håndterer du et utløpt eller snart-utløpt token¶
- Åpne Konti Connect → Integrasjoner og se etter gule OAuth-chiper i listen.
- Hvis integrasjonen har feilet med 401 / Unauthorized i kjøringsloggen, åpne integrasjonen og bytt til Historikk-fanen for å bekrefte feilårsaken.
- Sjekk hva slags integrasjon det er:
- Visma Business NXT (Visma Connect) — backend har
VismaConnectOAuthServicesom støtter Authorization Code Grant med PKCE og refresh token-flyt (VismaConnectOAuthService.cs:30). I praksis må re-autorisering i dag bestilles fra Konti (drift), siden det ikke finnes en UI-knapp som kallerGetAuthorizationUrl. - Andre OAuth-integrasjoner (Microsoft Graph, Abax m.fl.) — disse bruker
ConfigurationJson(klient-ID, klient-hemmelighet, tenant) som settes i editoren. Når hemmeligheten roteres hos leverandøren, åpne integrasjonen med blyantikonet ("Rediger") og oppdater verdiene i Konfigurasjon-fanen i editoren (integration-editor.component.html:375-391).
- Visma Business NXT (Visma Connect) — backend har
- Etter at tokenet er fornyet, trykk play-ikonet på integrasjonsraden ("Kjør") for å bekrefte at synkroniseringen virker (integration-list.component.html:258).
- Verifiser at OAuth-chipen blir grønn igjen og at
Sist kjørt-tidspunktet oppdateres.
Vanlige problemer¶
| Problem | Forklaring / hva du sjekker |
|---|---|
| OAuth-chip vises ikke på integrasjonen | hasOAuthToken er false — det er aldri lagret et token. Integrasjonen kjører enten uten OAuth (API-nøkkel i ConfigurationJson) eller har aldri vært autorisert. |
| Chipen er gul ("Utløper snart") | oAuthTokenExpiresAt er mindre enn 7 dager unna (integration-list.component.ts:674). Forbered re-autorisering før den blir rød i loggen. |
| Integrasjonen feiler med 401 selv om chipen er grønn | Tokenet er lagret, men kan være tilbakekalt hos leverandøren, eller scope kan ha endret seg. Sjekk Historikk-fanen for konkret feilmelding. |
| Jeg finner ingen "Re-autoriser"-knapp | Det finnes ingen slik knapp i UI-et i dag. Visma Business NXT-flyten ligger som backend-tjeneste men er ikke eksponert via knapp i Konti Connect. Kontakt Konti for re-autorisering inntil videre. |
Sikkerhetshensyn¶
OAuthAccessTokenogOAuthRefreshTokenlagres iwv_Integrationog sendes aldri til klienten — UI får kunhasOAuthToken(boolean) ogoAuthTokenExpiresAt(dato). Dette er en positivliste:IntegrationSafeResponsebestemmer hvilke felter som i det hele tatt kan nå nettleseren, så en ny kolonne iwv_Integrationblir ikke sendt ut før noen legger den til der med vilje.- Hemmeligheter i
ConfigurationJson(passord, API-nøkler, JWT-token) blankes tilnulli svaret før det forlater serveren — feltnavnet beholdes, kun verdien fjernes — ogClientSecretlagres kryptert iAuthenticationJsonframfor i konfigurasjonen. Editoren viser derfor slike felter som tomme når du åpner en eksisterende integrasjon — la dem stå tomme for å beholde den lagrede verdien, og skriv inn en ny verdi kun når du faktisk roterer hemmeligheten. - Unntak fra "tom betyr behold": for hemmeligheter inne i en liste (for eksempel flere leverandører i samme konfigurasjon) kan serveren av og til ikke med sikkerhet avgjøre hvilket lagret element et endret listeelement svarer til. Da avvises lagringen med en feilmelding i stedet for å gjette. I de fleste tilfeller løses dette ved å skrive inn hemmeligheten på nytt for det aktuelle elementet — men hvis to eller flere lagrede listeelementer har helt likt innhold bortsett fra hemmeligheten, holder ikke det alene: fjern duplikatet (eller gi elementene et felt som skiller dem, f.eks. et unikt navn) i en egen lagring før du fortsetter.
- Behandle redigeringen av en integrasjon som en sensitiv handling og rapporter mistanke om lekkasje til Konti.
