From 2ece1a4187fbff77bfc8a37f29e8699a65e85860 Mon Sep 17 00:00:00 2001 From: Mikey Henderson Date: Mon, 23 Oct 2023 13:51:38 -0700 Subject: [PATCH] Token auth selectable (#46) (#47) Squash 1.5 to main --- .../workflows/keyfactor-merge-store-types.yml | 27 ++ Bundle/Discovery.cs | 2 +- Bundle/Inventory.cs | 2 +- Bundle/Management.cs | 2 +- CHANGELOG.md | 3 + F5Client.cs | 8 +- InventoryBase.cs | 2 + ManagementBase.cs | 4 +- README.md | 5 +- RESTHandler.cs | 10 +- SSLProfile/Discovery.cs | 2 +- SSLProfile/Inventory.cs | 2 +- SSLProfile/Management.cs | 2 +- WebServer/Inventory.cs | 2 +- WebServer/Management.cs | 2 +- images/image16.png | Bin 0 -> 16673 bytes images/image3.png | Bin 29007 -> 38825 bytes integration-manifest.json | 322 +++++++++++++++++- readme_source.md | 5 +- 19 files changed, 386 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/keyfactor-merge-store-types.yml create mode 100644 images/image16.png diff --git a/.github/workflows/keyfactor-merge-store-types.yml b/.github/workflows/keyfactor-merge-store-types.yml new file mode 100644 index 0000000..c70659f --- /dev/null +++ b/.github/workflows/keyfactor-merge-store-types.yml @@ -0,0 +1,27 @@ +name: Keyfactor Merge Cert Store Types +on: [workflow_dispatch] + +jobs: + get-manifest-properties: + runs-on: windows-latest + outputs: + update_catalog: ${{ steps.read-json.outputs.update_catalog }} + integration_type: ${{ steps.read-json.outputs.integration_type }} + steps: + - uses: actions/checkout@v3 + - name: Store json + id: read-json + shell: pwsh + run: | + $json = Get-Content integration-manifest.json | ConvertFrom-Json + $myvar = $json.update_catalog + echo "update_catalog=$myvar" | Out-File -FilePath $Env:GITHUB_OUTPUT -Encoding utf8 -Append + $myvar = $json.integration_type + echo "integration_type=$myvar" | Out-File -FilePath $Env:GITHUB_OUTPUT -Encoding utf8 -Append + + call-update-store-types-workflow: + needs: get-manifest-properties + if: needs.get-manifest-properties.outputs.integration_type == 'orchestrator' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') + uses: Keyfactor/actions/.github/workflows/update-store-types.yml@main + secrets: + token: ${{ secrets.UPDATE_STORE_TYPES }} diff --git a/Bundle/Discovery.cs b/Bundle/Discovery.cs index 6f2ebf5..edbc5e8 100644 --- a/Bundle/Discovery.cs +++ b/Bundle/Discovery.cs @@ -39,7 +39,7 @@ public override JobResult ProcessJob(DiscoveryJobConfiguration config, SubmitDis LogHandlerCommon.Debug(logger, certificateStore, "Getting partitions"); SetPAMSecrets(config.ServerUsername, config.ServerPassword, logger); - F5Client f5 = new F5Client(certificateStore, ServerUserName, ServerPassword, config.UseSSL, string.Empty, true, new List()); + F5Client f5 = new F5Client(certificateStore, ServerUserName, ServerPassword, config.UseSSL, string.Empty, true, false, new List()); List partitions = f5.GetPartitions().Select(p => p.name).ToList(); LogHandlerCommon.Trace(logger, certificateStore, $"Found {partitions?.Count} partitions"); diff --git a/Bundle/Inventory.cs b/Bundle/Inventory.cs index b5f5b5f..cd21739 100644 --- a/Bundle/Inventory.cs +++ b/Bundle/Inventory.cs @@ -40,7 +40,7 @@ public override JobResult ProcessJob(InventoryJobConfiguration config, SubmitInv { base.ParseJobProperties(); SetPAMSecrets(config.ServerUsername, config.ServerPassword, logger); - F5Client f5 = new F5Client(config.CertificateStoreDetails, ServerUserName, ServerPassword, config.UseSSL, null, IgnoreSSLWarning, config.LastInventory) { F5Version = base.F5Version }; + F5Client f5 = new F5Client(config.CertificateStoreDetails, ServerUserName, ServerPassword, config.UseSSL, null, IgnoreSSLWarning, UseTokenAuth, config.LastInventory) { F5Version = base.F5Version }; LogHandlerCommon.Debug(logger, JobConfig.CertificateStoreDetails, $"Getting inventory for CA Bundle '{config.CertificateStoreDetails.StorePath}'"); inventory = f5.GetCABundleInventory(); diff --git a/Bundle/Management.cs b/Bundle/Management.cs index ebda49c..7ca56d9 100644 --- a/Bundle/Management.cs +++ b/Bundle/Management.cs @@ -48,7 +48,7 @@ public override JobResult ProcessJob(ManagementJobConfiguration config) base.ParseJobProperties(); base.PrimaryNodeActive(); - F5Client f5 = new F5Client(config.CertificateStoreDetails, ServerUserName, ServerPassword, config.UseSSL, config.JobCertificate.PrivateKeyPassword, IgnoreSSLWarning, config.LastInventory) + F5Client f5 = new F5Client(config.CertificateStoreDetails, ServerUserName, ServerPassword, config.UseSSL, config.JobCertificate.PrivateKeyPassword, IgnoreSSLWarning, UseTokenAuth, config.LastInventory) { PrimaryNode = base.PrimaryNode, F5Version = base.F5Version diff --git a/CHANGELOG.md b/CHANGELOG.md index 8db1efe..866e642 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +v1.5.0 +- Add new optional custom paramter - UseTokenAuth - to make token auth vs basic auth (default) a selectable option + v1.4.5 - Bug Fix: For F5-WS-REST store type, make sure certificate chain is ordered properly when installing to F5 - EE Cert => Issuing CA Cert => One-to-many Intermediate CA Certs => Root CA Cert. - Bug Fix: Allow PEM formats with # comments at top of file during inventory diff --git a/F5Client.cs b/F5Client.cs index 80c76e8..818854e 100644 --- a/F5Client.cs +++ b/F5Client.cs @@ -45,6 +45,7 @@ internal class F5Client public string PrimaryNode { get; set; } public string F5Version { get; set; } public bool IgnoreSSLWarning { get; set; } + public bool UseTokenAuth { get; set; } private RESTHandler REST { get; set; } private F5Transaction Transaction { get; set; } @@ -53,7 +54,7 @@ internal class F5Client #region Constructors - public F5Client(CertificateStore certificateStore, string serverUserName, string serverPassword, bool useSSL, string pfxPassword, bool ignoreSSLWarning, IEnumerable inventory) + public F5Client(CertificateStore certificateStore, string serverUserName, string serverPassword, bool useSSL, string pfxPassword, bool ignoreSSLWarning, bool useTokenAuth, IEnumerable inventory) { CertificateStore = certificateStore; ServerUserName = serverUserName; @@ -61,6 +62,7 @@ public F5Client(CertificateStore certificateStore, string serverUserName, string UseSSL = useSSL; PFXPassword = pfxPassword; IgnoreSSLWarning = ignoreSSLWarning; + UseTokenAuth = useTokenAuth; Inventory = inventory; if (logger == null) @@ -69,7 +71,9 @@ public F5Client(CertificateStore certificateStore, string serverUserName, string } REST = new RESTHandler(certificateStore.ClientMachine, serverUserName, serverPassword, useSSL, IgnoreSSLWarning); - REST.Token = GetToken(serverUserName, serverPassword); + + if (UseTokenAuth) + REST.Token = GetToken(serverUserName, serverPassword); } // Constructors diff --git a/InventoryBase.cs b/InventoryBase.cs index 6ee7972..67ea6bc 100644 --- a/InventoryBase.cs +++ b/InventoryBase.cs @@ -23,6 +23,7 @@ public abstract class InventoryBase : F5JobBase, IInventoryJobExtension protected string F5Version { get; set; } protected bool IgnoreSSLWarning { get; set; } + protected bool UseTokenAuth { get; set; } public string ExtensionName => string.Empty; @@ -38,6 +39,7 @@ protected void ParseJobProperties() LogHandlerCommon.Trace(logger, JobConfig.CertificateStoreDetails, $"F5 version '{F5Version}'"); IgnoreSSLWarning = properties.IgnoreSSLWarning == null || string.IsNullOrEmpty(properties.IgnoreSSLWarning.Value) ? false : bool.Parse(properties.IgnoreSSLWarning.Value); + UseTokenAuth = properties.UseTokenAuth == null || string.IsNullOrEmpty(properties.UseTokenAuth.Value) ? false : bool.Parse(properties.UseTokenAuth.Value); LogHandlerCommon.Trace(logger, JobConfig.CertificateStoreDetails, $"Ignore SSL Warnings '{IgnoreSSLWarning.ToString()}'"); } } diff --git a/ManagementBase.cs b/ManagementBase.cs index 20d9f3a..7636879 100644 --- a/ManagementBase.cs +++ b/ManagementBase.cs @@ -28,6 +28,7 @@ public abstract class ManagementBase : F5JobBase, IManagementJobExtension protected int _primaryNodeRetryCount = 0; protected string F5Version { get; set; } protected bool IgnoreSSLWarning { get; set; } + protected bool UseTokenAuth { get; set; } public string ExtensionName => string.Empty; @@ -82,6 +83,7 @@ protected void ParseJobProperties() LogHandlerCommon.Trace(logger, JobConfig.CertificateStoreDetails, $"F5 version '{F5Version}'"); IgnoreSSLWarning = properties.IgnoreSSLWarning == null || string.IsNullOrEmpty(properties.IgnoreSSLWarning.Value) ? false : bool.Parse(properties.IgnoreSSLWarning.Value); + UseTokenAuth = properties.UseTokenAuth == null || string.IsNullOrEmpty(properties.UseTokenAuth.Value) ? false : bool.Parse(properties.UseTokenAuth.Value); LogHandlerCommon.Trace(logger, JobConfig.CertificateStoreDetails, $"Ignore SSL Warnings '{IgnoreSSLWarning.ToString()}'"); } @@ -91,7 +93,7 @@ protected void PrimaryNodeActive() if (PrimaryNodeOnlineRequired) { - F5Client f5 = new F5Client(JobConfig.CertificateStoreDetails, ServerUserName, ServerPassword, JobConfig.UseSSL, JobConfig.JobCertificate.PrivateKeyPassword, IgnoreSSLWarning, JobConfig.LastInventory) + F5Client f5 = new F5Client(JobConfig.CertificateStoreDetails, ServerUserName, ServerPassword, JobConfig.UseSSL, JobConfig.JobCertificate.PrivateKeyPassword, IgnoreSSLWarning, UseTokenAuth, JobConfig.LastInventory) { PrimaryNode = this.PrimaryNode }; if (!f5.PrimaryNodeActive()) { diff --git a/README.md b/README.md index af905b1..bfd004c 100644 --- a/README.md +++ b/README.md @@ -168,7 +168,7 @@ The version number of a the F5 Orchestrator can be verified by right clicking on -The Custom Fields tab contains 6 custom store parameters. The set up is consistent across store types, and should look as follows: +The Custom Fields tab contains 10 custom store parameters (3 of which, Server Username, Server Password, and Use SSL were set up on the Basic tab and are not actually custom parameters you need or want to modify on this tab). The set up is consistent across store types, and should look as follows: ![](images/image3.png)
![](images/image6.png)
@@ -177,6 +177,7 @@ The Custom Fields tab contains 6 custom store parameters. The set up is consist ![](images/image4.png)
![](images/image5.png)
![](images/image15.png)
+![](images/image16.png)
If any or all of the 3 certificate store types were already set up on installation of Keyfactor, you may only need to add Primary Node Online Required and Ignore SSL Warning. These parameters, however, are optional and only necessary if needed to be set to true. Please see the descriptions below in "2a. Create a F5 Certificate Store wihin Keyfactor Command. @@ -213,6 +214,8 @@ If you choose to manually create a F5 store In Keyfactor Command rather than run - **Ignore SSL Warning** - Optional. Select this if you wish to ignore SSL warnings from F5 that occur during API calls when the site does not have a trusted certificate with the proper SAN bound to it. If you choose not to add this custom field, the default value of False will be assumed and SSL warnings will cause errors during orchestrator extension jobs. +- **Use Token Authentication** - Optional. Select this if you wish to use F5's token authentiation instead of basic authentication for all API requests. If you choose not to add this custom field, the default value of False will be assumed and basic authentication will be used for all API requests for all jobs. Setting this value to True will enable an initial basic authenticated request to acquire an authentication token, which will then be used for all subsequent API requests. + - **Orchestrator** – Required. Select the orchestrator you wish to use to manage this store - **Inventory Schedule** – Set a schedule for running Inventory jobs or none, if you choose not to schedule Inventory at this time. diff --git a/RESTHandler.cs b/RESTHandler.cs index 7ac681a..91c080d 100644 --- a/RESTHandler.cs +++ b/RESTHandler.cs @@ -274,8 +274,14 @@ public void UploadFile(string filename, byte[] fileBytes) webClient.Headers.Add("ServerHost", $"{GetProtocol()}{Host}/mgmt/shared/file-transfer/uploads/{filename}"); webClient.Headers.Add("Content-Type", "application/octet-stream"); webClient.Headers.Add("Content-Range", $"0-{fileBytes.Length - 1}/{fileBytes.Length}"); - webClient.Headers.Add("X-F5-Auth-Token", Token); - //webClient.Headers.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.ASCII.GetBytes($"{User}:{Password}"))}"); + if (Token == null) + { + webClient.Headers.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.ASCII.GetBytes($"{User}:{Password}"))}"); + } + else + { + webClient.Headers.Add("X-F5-Auth-Token", Token); + } webClient.UploadData($"{GetProtocol()}{Host}/mgmt/shared/file-transfer/uploads/{filename}", fileBytes); } diff --git a/SSLProfile/Discovery.cs b/SSLProfile/Discovery.cs index 3d00a32..db4e51b 100644 --- a/SSLProfile/Discovery.cs +++ b/SSLProfile/Discovery.cs @@ -40,7 +40,7 @@ public override JobResult ProcessJob(DiscoveryJobConfiguration config, SubmitDis SetPAMSecrets(config.ServerUsername, config.ServerPassword, logger); - F5Client f5 = new F5Client(certificateStore, ServerUserName, ServerPassword, config.UseSSL, string.Empty, true, new List()); + F5Client f5 = new F5Client(certificateStore, ServerUserName, ServerPassword, config.UseSSL, string.Empty, true, false, new List()); List locations = f5.GetPartitions().Select(p => p.name).ToList(); LogHandlerCommon.Debug(logger, certificateStore, $"Submitting {locations?.Count} partitions"); diff --git a/SSLProfile/Inventory.cs b/SSLProfile/Inventory.cs index 5a8dbe5..ad8dc6b 100644 --- a/SSLProfile/Inventory.cs +++ b/SSLProfile/Inventory.cs @@ -40,7 +40,7 @@ public override JobResult ProcessJob(InventoryJobConfiguration config, SubmitInv { base.ParseJobProperties(); SetPAMSecrets(config.ServerUsername, config.ServerPassword, logger); - F5Client f5 = new F5Client(config.CertificateStoreDetails, ServerUserName, ServerPassword, config.UseSSL, null, IgnoreSSLWarning, config.LastInventory) { F5Version = base.F5Version }; + F5Client f5 = new F5Client(config.CertificateStoreDetails, ServerUserName, ServerPassword, config.UseSSL, null, IgnoreSSLWarning, UseTokenAuth, config.LastInventory) { F5Version = base.F5Version }; LogHandlerCommon.Debug(logger, JobConfig.CertificateStoreDetails, $"Getting inventory from '{config.CertificateStoreDetails.StorePath}'"); inventory = f5.GetSSLProfiles(20); diff --git a/SSLProfile/Management.cs b/SSLProfile/Management.cs index bf38574..367f6e8 100644 --- a/SSLProfile/Management.cs +++ b/SSLProfile/Management.cs @@ -47,7 +47,7 @@ public override JobResult ProcessJob(ManagementJobConfiguration config) base.ParseJobProperties(); base.PrimaryNodeActive(); - F5Client f5 = new F5Client(config.CertificateStoreDetails, ServerUserName, ServerPassword, config.UseSSL, config.JobCertificate.PrivateKeyPassword, IgnoreSSLWarning, config.LastInventory) + F5Client f5 = new F5Client(config.CertificateStoreDetails, ServerUserName, ServerPassword, config.UseSSL, config.JobCertificate.PrivateKeyPassword, IgnoreSSLWarning, UseTokenAuth, config.LastInventory) { PrimaryNode = base.PrimaryNode, F5Version = base.F5Version diff --git a/WebServer/Inventory.cs b/WebServer/Inventory.cs index b5f5261..c35588b 100644 --- a/WebServer/Inventory.cs +++ b/WebServer/Inventory.cs @@ -43,7 +43,7 @@ public override JobResult ProcessJob(InventoryJobConfiguration config, SubmitInv base.ParseJobProperties(); SetPAMSecrets(config.ServerUsername, config.ServerPassword, logger); - F5Client f5 = new F5Client(config.CertificateStoreDetails, ServerUserName, ServerPassword, config.UseSSL, null, IgnoreSSLWarning, config.LastInventory); + F5Client f5 = new F5Client(config.CertificateStoreDetails, ServerUserName, ServerPassword, config.UseSSL, null, IgnoreSSLWarning, UseTokenAuth, config.LastInventory); LogHandlerCommon.Debug(logger, JobConfig.CertificateStoreDetails, "Getting the F5 web server device inventory"); inventory = f5.GetWebServerInventory(); diff --git a/WebServer/Management.cs b/WebServer/Management.cs index c6e42a2..5063351 100644 --- a/WebServer/Management.cs +++ b/WebServer/Management.cs @@ -47,7 +47,7 @@ public override JobResult ProcessJob(ManagementJobConfiguration config) base.ParseJobProperties(); base.PrimaryNodeActive(); - F5Client f5 = new F5Client(JobConfig.CertificateStoreDetails, ServerUserName, ServerPassword, JobConfig.UseSSL, JobConfig.JobCertificate.PrivateKeyPassword, IgnoreSSLWarning, JobConfig.LastInventory) + F5Client f5 = new F5Client(JobConfig.CertificateStoreDetails, ServerUserName, ServerPassword, JobConfig.UseSSL, JobConfig.JobCertificate.PrivateKeyPassword, IgnoreSSLWarning, UseTokenAuth, JobConfig.LastInventory) { PrimaryNode = base.PrimaryNode }; diff --git a/images/image16.png b/images/image16.png new file mode 100644 index 0000000000000000000000000000000000000000..299d8820eb08d0e5af4e412d6a90875a86e9a0fc GIT binary patch literal 16673 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 Htb+e9j`X=T literal 29007 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 ![](images/image6.png)
@@ -76,6 +76,7 @@ The Custom Fields tab contains 6 custom store parameters. The set up is consist ![](images/image4.png)
![](images/image5.png)
![](images/image15.png)
+![](images/image16.png)
If any or all of the 3 certificate store types were already set up on installation of Keyfactor, you may only need to add Primary Node Online Required and Ignore SSL Warning. These parameters, however, are optional and only necessary if needed to be set to true. Please see the descriptions below in "2a. Create a F5 Certificate Store wihin Keyfactor Command. @@ -112,6 +113,8 @@ If you choose to manually create a F5 store In Keyfactor Command rather than run - **Ignore SSL Warning** - Optional. Select this if you wish to ignore SSL warnings from F5 that occur during API calls when the site does not have a trusted certificate with the proper SAN bound to it. If you choose not to add this custom field, the default value of False will be assumed and SSL warnings will cause errors during orchestrator extension jobs. +- **Use Token Authentication** - Optional. Select this if you wish to use F5's token authentiation instead of basic authentication for all API requests. If you choose not to add this custom field, the default value of False will be assumed and basic authentication will be used for all API requests for all jobs. Setting this value to True will enable an initial basic authenticated request to acquire an authentication token, which will then be used for all subsequent API requests. + - **Orchestrator** – Required. Select the orchestrator you wish to use to manage this store - **Inventory Schedule** – Set a schedule for running Inventory jobs or none, if you choose not to schedule Inventory at this time.