Tilgangsstyring
Koble deg på
MatrikkelAPIet benytter Basic Auth for autentisering. Dette innebærer at du sender brukernavn og passord som en base64-kodet streng i Authorization-headeren på hver request.
Ved innvilget søknad vil virksomheten få en rolle tilknyttet brukeren sin som tilsvarer den rettighetspakken som er tildelt ved søknad og avtale. Denne rollen brukes til tilgangsstyring i matrikkelAPIet.
Mer informasjon om rettighetspakkene finner du på siden om rettighetspakker.
Autentisering med Basic Auth
Basic Auth fungerer ved at du sender en Authorization-header med verdien Basic <credentials>, hvor <credentials> er brukernavn og passord kodet som base64 i formatet brukernavn:passord.
I praksis ser en autentisert request slik ut:
Authorization: Basic dGVzdGJydWtlcjp0ZXN0cGFzc29yZA==
Eksempel: Hente kodelister
Her er et komplett eksempel på hvordan du autentiserer deg mot MatrikkelAPIet:
function basicAuth(username: string, password: string): string {
return `Basic ${btoa(`${username}:${password}`)}`;
}
type Env = {
baseUrl: string;
username: string;
password: string;
}
async function fetchKodeliste(env: Env): Promise<string> {
const body = `
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:kod="http://matrikkel.statkart.no/matrikkelapi/wsapi/v1/service/kodeliste" xmlns:dom="http://matrikkel.statkart.no/matrikkelapi/wsapi/v1/domain">
<soapenv:Header/>
<soapenv:Body>
<kod:getKodelisterEnkel>
<kod:matrikkelContext>
<dom:locale>no_NO</dom:locale>
<dom:brukOriginaleKoordinater>true</dom:brukOriginaleKoordinater>
<dom:koordinatsystemKodeId>
<dom:value>22</dom:value>
</dom:koordinatsystemKodeId>
<dom:systemVersion>trunk</dom:systemVersion>
<dom:klientIdentifikasjon>eksempel</dom:klientIdentifikasjon>
</kod:matrikkelContext>
</kod:getKodelisterEnkel>
</soapenv:Body>
</soapenv:Envelope
`;
const response = await fetch(`${env.baseUrl}/matrikkelapi/wsapi/v1/KodelisteServiceWS`, {
headers: {
'Content-Type': 'text/xml',
'Authorization': basicAuth(env.username, env.password)
},
body
});
if (!response.ok) {
throw new Error(response.statusText)
}
return response.text();
}