namespace Campaign_Tracker.Server.Authentication; public sealed class KeycloakOptions { public const string SectionName = "Keycloak"; public string Authority { get; init; } = "http://localhost:8180/realms/KCI"; public string? MetadataAddress { get; init; } public string? ValidIssuer { get; init; } public string PublicAuthority { get; init; } = "http://kci-app01.ntp.kentcommunications.com:8180/realms/KCI"; public string ClientId { get; init; } = "canopy-web"; public string? ClientSecret { get; init; } public string? Audience { get; init; } public bool DisableHttpsMetadata { get; init; } = true; public string? TestSigningKey { get; init; } public string TokenAudience => string.IsNullOrWhiteSpace(Audience) ? ClientId : Audience; public string TokenIssuer => string.IsNullOrWhiteSpace(ValidIssuer) ? PublicAuthority : ValidIssuer; public string TokenEndpointAuthority => string.IsNullOrWhiteSpace(PublicAuthority) ? Authority : PublicAuthority; }