KS.Fiks.Maskinporten.Client
1.1.10
dotnet add package KS.Fiks.Maskinporten.Client --version 1.1.10
NuGet\Install-Package KS.Fiks.Maskinporten.Client -Version 1.1.10
<PackageReference Include="KS.Fiks.Maskinporten.Client" Version="1.1.10" />
paket add KS.Fiks.Maskinporten.Client --version 1.1.10
#r "nuget: KS.Fiks.Maskinporten.Client, 1.1.10"
// Install KS.Fiks.Maskinporten.Client as a Cake Addin #addin nuget:?package=KS.Fiks.Maskinporten.Client&version=1.1.10 // Install KS.Fiks.Maskinporten.Client as a Cake Tool #tool nuget:?package=KS.Fiks.Maskinporten.Client&version=1.1.10
fiks-maskinporten-dotnet
About this library
This is a .NET library for Maskinporten authentication and authorization. There is also a similar version available for Java here
Integrity
The nuget package is signed with a KS certificate in our build process, stored securely in a safe build environment. The package assemblies are also strong-named.
Installation
Install KS.Fiks.Maskinporten.Client nuget package in your .net project.
Example
Setup configuration
Using factory for TEST and PROD environments
// For TEST
var maskinportenConfigTest = MaskinportenClientConfigurationFactory.CreateTestConfiguration("test_issuer", testCertificate);
// For PROD
var maskinportenConfigProd = MaskinportenClientConfigurationFactory.CreateProdConfiguration("prod_issuer", certificate);
// DEPRECATED - For TEST (ver2)
var maskinportenConfigVer2 = MaskinportenClientConfigurationFactory.CreateVer2Configuration("ver2_issuer", testCertificate);
Complete configuration
Test environment
var maskinportenConfig = new MaskinportenClientConfiguration(
audience: @"https://test.maskinporten.no/", // Maskinporten audience path
tokenEndpoint: @"https://test.maskinporten.no/token", // Maskinporten token path
issuer: @"issuer", // Issuer name, heter nå Integrasjonens identifikator i selvbetjeningsløsningen til DigDir
numberOfSecondsLeftBeforeExpire: 10, // The token will be refreshed 10 seconds before it expires
certificate: /* virksomhetssertifikat as a X509Certificate2 */,
consumerOrg: /* optional value. Sets header consumer_org */);
Test environment - ver2 (deprecated)
var maskinportenConfig = new MaskinportenClientConfiguration(
audience: @"https://ver2.maskinporten.no/", // Maskinporten audience path
tokenEndpoint: @"https://ver2.maskinporten.no/token", // Maskinporten token path
issuer: @"issuer", // Issuer name, heter nå Integrasjonens identifikator i selvbetjeningsløsningen til DigDir
numberOfSecondsLeftBeforeExpire: 10, // The token will be refreshed 10 seconds before it expires
certificate: /* virksomhetssertifikat as a X509Certificate2 */,
consumerOrg: /* optional value. Sets header consumer_org */);
DigDir maintains a list of well-know endpoints and configuration for the available environments
Create instance of MaskinportenClient
var maskinportenClient = new MaskinportenClient(maskinportenConfig);
Get access token
var scope = "ks:fiks"; // Scope for access token
var accessToken = await maskinportenClient.GetAccessToken(scope);
Get delegated access token
var scope = "ks:fiks"; // Scope for access token
var consumerOrgNo = ...; // Official 9 digit organization number for an organization that has delegated access to you in ALTINN
var accessToken = await maskinportenClient.GetDelegatedAccessToken(consumerOrgNo, scope);
For more information on this feature, check the delegation documentation at DigDir
Get on behalf of access token
This is a feature with limited usecase
var scope = "ks:fiks"; // Scope for access token
var consumerOrgNo = ...; // Official 9 digit organization number for an organization that has delegated access to you in ALTINN
var accessToken = await maskinportenClient.GetOnBehalfOfAccessToken(consumerOrgNo, scope);
For more information on this feature, check the onbehalfof documentation at DigDir
Please note that as stated in the documentation at DigDir, "Det gir ingen mening å bruke onbehalfof for Maskinporten-integrasjoner", means that for most cases it is not usable and is planned for removal. When it is removed this feature will be removed from this client too.
Send request using access token
var httpClient = new HttpClient();
using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, /* api uri */))
{
// Set authorization header with maskinporten access token
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken.Token);
/* Set other headers. Integration id and password etc.*/
// Send message
var response = await httpClient.SendAsync(requestMessage);
/* Handle response */
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- JWT (>= 10.1.1)
- Newtonsoft.Json (>= 13.0.3)
-
net6.0
- JWT (>= 10.1.1)
- Newtonsoft.Json (>= 13.0.3)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on KS.Fiks.Maskinporten.Client:
Package | Downloads |
---|---|
KS.Fiks.IO.Send.Client
Package Description |
|
KS.Fiks.IO.Client
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.1.10 | 45,056 | 1/15/2024 |
1.1.9 | 11,794 | 11/10/2023 |
1.1.8 | 489 | 11/7/2023 |
1.1.7 | 23,115 | 8/15/2023 |
1.1.6 | 587 | 5/31/2023 |
1.1.5 | 47,711 | 1/23/2023 |
1.1.4 | 545 | 1/23/2023 |
1.1.3 | 3,503 | 11/3/2022 |
1.1.2 | 13,835 | 7/1/2022 |
1.1.1 | 28,231 | 12/21/2021 |
1.1.0 | 308 | 12/21/2021 |
1.0.7 | 29,701 | 5/10/2021 |
1.0.6 | 1,692 | 11/13/2020 |
1.0.5 | 3,318 | 11/9/2020 |
1.0.4 | 463 | 11/9/2020 |
1.0.3 | 639 | 9/30/2020 |
1.0.2 | 577 | 8/20/2020 |
1.0.1 | 565 | 6/29/2020 |
1.0.0 | 7,121 | 5/6/2019 |
0.0.6 | 733 | 5/6/2019 |