Access Token
Altinn bruker et ekstra access token når vi må autentisere applikasjoner eller kalle andre komponenter i Altinn-plattformen.
AccessToken klient
.NET-applikasjoner bruker AccessToken-klienten når de skal kalle beskyttede API-er i Altinn-plattformen.
AccessToken-klienten har en token-generator
som genererer et JWT basert på et unikt sertifikat tilgjengeliggjort i Kubernetes-klyngene.
Eksempler på bruk
- App-mal som kaller register
- App-mal som kaller Altinn Events
- Altinn Events-funksjon som kaller Altinn Events
Konfigurasjon
For å bruke AccessToken-klienten må du legge til følgende i Program.cs:
// The Access Token service
services.AddSingleton<IAccessTokenGenerator, AccessTokenGenerator>();
// The Signing credential resolver that finds the correct certificate on disk
services.AddTransient<ISigningCredentialsResolver, SigningCredentialsResolver>();
AccessToken
Plattformkomponentene bruker AccessToken for å beskytte API mot uautorisert bruk.
De benytter en AltinnTokenValidator for å verifisere at en spesialheader inneholder et bearer-token.
Sertifikatet som brukes til validering hentes fra KeyVault via SigningKeyResolver.
Hver plattformklynge og app-klynge har sitt eget sertifikat.
Konfigurasjon av AccessToken
Legg til følgende i Program.cs for å ta i bruk AccessToken:
// The handler to validate token
services.AddSingleton<IAuthorizationHandler, AccessTokenHandler>();
// The resolver to get the certificate from KeyVault
services.AddSingleton<ISigningKeysResolver, SigningKeysResolver>();
services.AddAuthorization(options =>
{
// The policy to be used by API controllers
options.AddPolicy("PlatformAccess", policy => policy.Requirements.Add(new AccessTokenRequirement()));
});
API-utvikleren kan konfigurere policyen for hvert endepunkt eller controller.
[Authorize]
[Authorize(Policy = "PlatformAccess")]
[Route("register/api/v1/parties")]
public class PartiesController : Controller
Eksempel fra Register