예제 #1
0
        private static string DecodeToken(MaskinportenToken token, X509Certificate2 pubprivCertificate)
        {
            var serializer = new JsonNetSerializer();
            var provider   = new UtcDateTimeProvider();

            var jwtDecoder   = new JwtDecoder(serializer, new JwtValidator(serializer, provider), new JwtBase64UrlEncoder(), new RS256Algorithm(pubprivCertificate));
            var decodedToken = jwtDecoder.Decode(token.Token);

            Console.Out.WriteLine($"Decoded token {decodedToken}");
            return(decodedToken);
        }
예제 #2
0
        private static async Task <MaskinportenToken> GetMaskinportenToken(X509Certificate2 x509Certificate2)
        {
            MaskinportenClientConfiguration maskinportenConfig = new MaskinportenClientConfiguration(
                audience: @"https://oidc-ver2.difi.no/idporten-oidc-provider/",           // ID-porten audience path
                tokenEndpoint: @"https://oidc-ver2.difi.no/idporten-oidc-provider/token", // ID-porten token path
                issuer: @"<Integrasjonens identifikator>",                                // Integrasjonens identifikator fra difi Integrasjon i selvbetjeningsportal
                numberOfSecondsLeftBeforeExpire: 10,                                      // The token will be refreshed 10 seconds before it expires
                certificate: x509Certificate2);                                           // Virksomhetssertifikat as a X509Certificate2

            MaskinportenClient maskinportenClient = new MaskinportenClient(maskinportenConfig);
            String             scope       = "ks:fiks"; // Scope for access token
            MaskinportenToken  accessToken = await maskinportenClient.GetAccessToken(scope);

            return(accessToken);
        }
예제 #3
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            X509Certificate2 x509Certificate2 = await GetX509Certificate2();

            log.LogInformation("Hentet certificate med privatekey: " + x509Certificate2.GetRSAPrivateKey().ToString());

            MaskinportenToken token = await GetMaskinportenToken(x509Certificate2);

            log.LogInformation("Hentet token: " + token.ToString());

            log.LogInformation("Returner token - function ferdig");
            return(new OkObjectResult(token));
        }