image
  • Personvernerklæring

    • Dataroller og ansvar

      For håndtering av data i DumData er det to definerte roller, hver med sine tilhørende ansvarsområder. Når det gjelder en kunde som bruker DumData, er kunden behandlingsansvarlig, og DumData er databehandler.

    • Behandlingsansvarlig

      Som behandlingsansvarlig er kunden ansvarlig for å bestemme hvordan data samles inn, lagres, brukes, deles, arkiveres og ødelegges, og for å opprettholde nøyaktigheten og konfidensialiteten til disse dataene. Kunden er også ansvarlig for å oppfylle kravene i lovgivningen i jurisdiksjonene der de opererer for innsamling av data og for å demonstrere samsvar med gjeldende lokale og internasjonale lover.

      Den behandlingsansvarlige har videre juridiske forpliktelser og bestemmer følgende:
      Formålet med å samle inn dataene
      Hvilke data som samles inn
      Hvordan dataene brukes
      Hvor lenge dataene lagres
      Hvor dataene er lagret
      Hvem databehandleren er

      • Formålet med å samle inn dataene
      • Hvilke data som samles inn
      • Hvordan dataene brukes
      • Hvor lenge dataene lagres
      • Hvor dataene er lagret
      • Hvem databehandleren er
    • Databehandler

      Som databehandler støtter Nettvis behandlingsansvarlig ved å tilby funksjoner for å muliggjøre tilgang til og kontroll av databehandlingsaktiviteter og forpliktelser. Det inkluderer å vedlikeholde og søke i registre for databehandling, implementere nødvendige sikkerhetstiltak, varsle behandlingsansvarlig i tilfelle et databrudd, og rette eventuelle lovlige forespørsler fra autoriserte parter til behandlingsansvarlig.
      Databehandleren har følgende ansvarsforpliktelser:

      • Støtte behandlingsansvarlig
      • Behandle data på vegne av behandlingsansvarlig
      • Sikre konfidensialitet
      • Sørge for at tekniske og administrative tiltak er på plass for å beskytte dataene
      • Gjør det mulig å føre databehandlingsregistre
      • Informere behandlingsansvarlig om eventuelle datainnbrudd
      Nettvis tilbyr samarbeid og bistand til behandlingsansvarlige for å sikre overholdelse av behandlingsansvarliges forpliktelser i henhold til gjeldende databeskyttelseslover.
    • Personvern og databehandling

    • Er det greit å behandle personopplysninger i en skytjeneste?

      Å behandle og lagre personopplysninger i skyen er i de aller fleste sammenhenger lovlig og praktisk gjennomførbart, også for offentlig sektor, men ansvaret for behandling av personopplysninger vil til enhver tid ligge hos den behandlingsansvarlige, som beskrevet av Datatilsynet.

    • Er Nettvis dekket av en databehandleravtale?

      Ja, Nettvis er dekket av en databehandleravtale i henhold til eksisterende personvernlovgivning som en del av inngått tjenesteavtale for Nettvis.

    • Understøtter Nettvis GDPR sine prinsipper for behandling av personopplysninger?

      Nettvis støtter prinsippene om dataminimering, riktighet, lagringsbegrensning, integritet og fortrolighet. Nettvis legger også til rette for å ivareta de registrertes rettigheter til innsyn, korrigering, sletting, begrensning av behandling, dataportabilitet og samtykke.
      Behandlingsansvarlig har til enhver tid ansvar for å vurdere og dokumentere lagring og behandling av personopplysninger og sikre at regelverket følges.

    • Vipps-integrasjon og betalinger

    • Krav for bruk av Vipps

      For å bruke Vipps-innlogging og betalinger i Nettvis må brukeren:

      • Ha en konto i en norsk bank
      • Ha minst ett personlig debet- eller kredittkort utstedt av en norsk bank
      • Ha et norsk telefonnummer
      • Ha en norsk adresse
      • Ha BankID
    • Ansvar og sikkerhet

      • Vipps er personlig og kan kun brukes av den registrerte brukeren
      • Brukeren må ikke dele PIN-koder/passord med andre eller lagre dem på enheten
      • Nettvis og Vipps implementerer nødvendige sikkerhetstiltak for å beskytte brukerdata
    • Databehandling og personvern

      • Nettvis og Vipps behandler personopplysninger i samsvar med GDPR og norsk lov
      • Brukere har rett til innsyn, retting og sletting av sine personopplysninger
      • Nettvis og Vipps deler kun personopplysninger med tredjeparter når det er nødvendig for å levere tjenestene eller når de er pålagt dette ved lov
    • Lagring og sikkerhet

      Nettvis bruker Atlassian-produkter (Jira, Confluence, Jira Service Management) for å behandle brukerdata. Disse produktene er lagret i Irland, innenfor EU/EØS. Nettvis har implementert nødvendige tekniske og organisatoriske tiltak for å sikre personopplysninger i henhold til GDPR og NIS2-direktivet.
      Nettstedet til Nettvis er hostet på TeleportHQ, og alle nødvendige sikkerhetstiltak er implementert for å beskytte brukerdata.
      Ingen brukerdata lagres hos TeleportHQ.

(function() { // Utility: Generate PKCE code verifier function generateCodeVerifier() { const array = new Uint32Array(56); window.crypto.getRandomValues(array); return Array.from(array, dec => ('0' + dec.toString(16)).substr(-2)).join(''); } // Utility: Generate PKCE code challenge from verifier async function generateCodeChallenge(codeVerifier) { const encoder = new TextEncoder(); const data = encoder.encode(codeVerifier); const digest = await window.crypto.subtle.digest('SHA-256', data); return btoa(String.fromCharCode(...new Uint8Array(digest))) .replace(/\+/g, '-') .replace(/\//g, '_') .replace(/=+$/, ''); } // Initiate Vipps login when button clicked document.addEventListener('DOMContentLoaded', () => { const loginBtn = document.getElementById('vipps-login'); if (loginBtn) { loginBtn.addEventListener('click', async () => { const codeVerifier = generateCodeVerifier(); sessionStorage.setItem('pkce_verifier', codeVerifier); const codeChallenge = await generateCodeChallenge(codeVerifier); // Build the authorization URL exactly as Vipps expects const authUrl = 'https://api.vippsmobilepay.com/access-management-1.0/access/oauth2/auth?' + `client_id=${encodeURIComponent(window.VIPPS_CONFIG.CLIENT_ID)}` + `&redirect_uri=${encodeURIComponent(window.VIPPS_CONFIG.REDIRECT_URI)}` + `&response_type=code` + `&scope=${encodeURIComponent(window.VIPPS_CONFIG.SCOPES)}` + `&code_challenge=${codeChallenge}` + `&code_challenge_method=S256`; window.location.href = authUrl; }); } }); // Handle Vipps OAuth callback on /auth/callback page if (window.location.pathname === '/auth/callback') { (async () => { const params = new URLSearchParams(window.location.search); const code = params.get('code'); const codeVerifier = sessionStorage.getItem('pkce_verifier'); if (!code) { document.body.innerHTML = '

Error: No authorization code found in URL.

'; return; } // Exchange authorization code for tokens const tokenResponse = await fetch('https://api.vippsmobilepay.com/access-management-1.0/access/oauth2/token', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ client_id: window.VIPPS_CONFIG.CLIENT_ID, code_verifier: codeVerifier, grant_type: 'authorization_code', redirect_uri: window.VIPPS_CONFIG.REDIRECT_URI, code: code }) }); if (!tokenResponse.ok) { document.body.innerHTML = `

Error exchanging code for token: ${tokenResponse.statusText}

`; return; } const { access_token, id_token } = await tokenResponse.json(); // Fetch user info from Vipps const userInfoResponse = await fetch('https://api.vippsmobilepay.com/vipps-userinfo-api/userinfo', { headers: { 'Authorization': `Bearer ${access_token}` } }); if (!userInfoResponse.ok) { document.body.innerHTML = `

Error fetching user info: ${userInfoResponse.statusText}

`; return; } const userInfo = await userInfoResponse.json(); // Store user info securely in sessionStorage (consider cookies for production) sessionStorage.setItem('vipps_sub', userInfo.sub); sessionStorage.setItem('vipps_email', userInfo.email); sessionStorage.setItem('vipps_name', userInfo.name || ''); // Clean up PKCE verifier sessionStorage.removeItem('pkce_verifier'); // Redirect user to your JSM portal (replace with your actual portal URL) window.location.href = 'https://hjelp.nettvis.no/servicedesk/customer/portal/1?sub=' + encodeURIComponent(userInfo.sub); })(); } })();