private static string GenerateAuthorizationToken(JwtClaims jwtClaims, string appSecret) { if (jwtClaims == null) { throw new ArgumentNullException(nameof(jwtClaims)); } if (string.IsNullOrWhiteSpace(appSecret)) { throw new ArgumentException(nameof(appSecret)); } var algorithm = new HMACSHA256Algorithm(); var serializer = new JsonNetSerializer(); var encoder = new JwtBase64UrlEncoder(); var jwt = new JwtEncoder(algorithm, serializer, encoder); return(jwt.Encode(jwtClaims, appSecret)); }
public static async Task <HttpResponseMessage> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); const string tenantId = "ba50714d-f006-47db-9420-fcc0b00666e3"; const string appId = "d4146a43-6826-40f3-b136-67de6f996c71"; const string appSecret = "c8710d12-083c-4c4a-98ff-0b3e5be18247"; var utcNow = DateTimeOffset.UtcNow; var jwtClaims = new JwtClaims { iss = "http://cylance.com", jti = Guid.NewGuid().ToString(), iat = utcNow.ToUnixTimeSeconds(), exp = (utcNow).AddSeconds(1800).ToUnixTimeSeconds(), tid = tenantId, sub = appId }; try { var authToken = GenerateAuthorizationToken(jwtClaims, appSecret); Console.WriteLine($"\n[Authorization Token]\n{authToken}\n"); var accessToken = GenerateAccessToken(authToken); Console.WriteLine($"\n[Access Token]\n{accessToken}\n"); } catch (Exception ex) { Console.WriteLine(ex); } return(new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(jsonResponse, Encoding.UTF8, "application/json") }); }