Altinn token
Hvordan hente et Altinn autentiseringstoken basert på et Maskinporten token.
REST kallet for å bytte et Maskinporten token mot et Altinn (beriket) token ser slik ut:
GET authentication/api/v1/exchange/maskinporten HTTP/1.1
Host: https://platform.tt02.altinn.no
Bearer: eyJraWQiOiJjWmswME1rbTVIQzR ... aMrDO_g
X-Altinn-EnterpriseUser-Authentication: <enkodet brukernavn:passord>
Accept: application/json
Her må man oppgi brukernavnet og passordet til virksomhetsbrukeren man opprettet.
Merk at strengen har formatet brukernavn:passord
og skal være Base64 enkodet.
I det tilhørende .Net Core prosjektet er dette implementert slik:
public async Task<string> GetAltinnExchangeToken(string maskinportenToken)
{
try
{
var basicAuthEncodedBytes =
System.Text.Encoding.UTF8.GetBytes($"{_username}:{_password}");
string basicAuthEncodedString =
System.Convert.ToBase64String(basicAuthEncodedBytes);
string response = await "https://platform.tt02.altinn.no"
.AppendPathSegment("authentication/api/v1/exchange/maskinporten")
.WithOAuthBearerToken(maskinportenToken)
.WithHeader("X-Altinn-EnterpriseUser-Authentication",
basicAuthEncodedString)
.WithHeader("Accept", "application/json")
.GetStringAsync();
return response;
}
catch (FlurlHttpException ex)
{
var status = ex.Call.Response.StatusCode;
var message = await ex.GetResponseStringAsync();
...
Responsen er en streng som skal brukes som bearer token
på fremtidig REST kall mot Altinn.