Web API for the bulk printing desktop application.

TokenAuthenticationOptions.cs 1.3KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Microsoft.Extensions.Configuration;
  2. using Microsoft.IdentityModel.Tokens;
  3. using System;
  4. using System.Threading.Tasks;
  5. namespace BulkPrintingAPI.Configuration
  6. {
  7. public class TokenAuthenticationOptions
  8. {
  9. public TokenAuthenticationOptions(IConfiguration configuration)
  10. {
  11. Issuer = configuration.GetValue("Issuer", "bulk");
  12. Audience = configuration.GetValue("Audience", "bulk");
  13. Lifetime = TimeSpan.FromSeconds(configuration.GetValue("TokenLifetime", 600));
  14. Key = new SymmetricSecurityKey(DataEncryptionOptions.DeriveKey(configuration, "Key")
  15. .GetBytes(32));
  16. SigningCredentials = new SigningCredentials(Key, SecurityAlgorithms.HmacSha256);
  17. EncryptingCredentials = new EncryptingCredentials(Key, "dir",
  18. SecurityAlgorithms.Aes128CbcHmacSha256);
  19. }
  20. public string Issuer { get; set; }
  21. public string Audience { get; set; }
  22. public TimeSpan Lifetime { get; set; }
  23. public SecurityKey Key { get; set; }
  24. public SigningCredentials SigningCredentials { get; set; }
  25. public EncryptingCredentials EncryptingCredentials { get; set; }
  26. public Func<Task<string>> NonceGenerator { get; set; }
  27. = () => Task.FromResult(Guid.NewGuid().ToString());
  28. }
  29. }