diff --git a/.github/workflows/keyfactor-bootstrap-workflow.yml b/.github/workflows/keyfactor-bootstrap-workflow.yml index 6d8de53..a4649f2 100644 --- a/.github/workflows/keyfactor-bootstrap-workflow.yml +++ b/.github/workflows/keyfactor-bootstrap-workflow.yml @@ -11,9 +11,10 @@ on: jobs: call-starter-workflow: - uses: keyfactor/actions/.github/workflows/starter.yml@v2 + uses: keyfactor/actions/.github/workflows/starter.yml@3.1.2 secrets: token: ${{ secrets.V2BUILDTOKEN}} APPROVE_README_PUSH: ${{ secrets.APPROVE_README_PUSH}} gpg_key: ${{ secrets.KF_GPG_PRIVATE_KEY }} gpg_pass: ${{ secrets.KF_GPG_PASSPHRASE }} + scan_token: ${{ secrets.SAST_TOKEN }} diff --git a/F5BigIQ/F5BigIQ.csproj b/F5BigIQ/F5BigIQ.csproj index 0546c49..5484e1b 100644 --- a/F5BigIQ/F5BigIQ.csproj +++ b/F5BigIQ/F5BigIQ.csproj @@ -1,9 +1,10 @@  - false - net6.0 + true + net6.0;net8.0 true + disable @@ -12,19 +13,10 @@ - - - - External References\Renci.SshNet.dll - - - External References\SshNet.Security.Cryptography.dll - + + Always + - - - - diff --git a/README.md b/README.md index ccded26..ca7b069 100644 --- a/README.md +++ b/README.md @@ -1,270 +1,307 @@ +

+ F5 BigIQ Universal Orchestrator Extension +

+ +

+ +Integration Status: production +Release +Issues +GitHub Downloads (all assets, all releases) +

-# F5 BigIQ +

+ + + Support + + · + + Installation + + · + + License + + · + + Related Integrations + +

-The F5 Big IQ Orchestrator allows for the remote management of F5 Big IQ certificate stores. Inventory, Management, and Reenrollment functions are supported. +## Overview -#### Integration status: Production - Ready for use in production environments. +The F5 Big IQ Orchestrator Extension supports the following use cases: -## About the Keyfactor Universal Orchestrator Extension +- Inventories an existing F5 Big IQ device to import SSL certificates into Keyfactor Command for management +- Add an existing or newly enrolled certificate and private key to an existing F5 Big IQ device not already on that device. +- Remove a certificate and private key from an existing F5 Big IQ device. +- Add an existing or newly enrolled certificate and private key to an existing F5 Big IQ device already on that device. Optionally (based on the DeployCertificateOnRenewal setting on the certificate store), the newly renewed/replaced certificate will be deployed to any linked F5 Big IP device. +- Reenrollment (On Device Key Generation) of a new or existing certificate on the F5 Big IQ device. In this use case, the key pair and CSR will be created on the F5 Big IQ device, Keyfactor Command will enroll the certificate, and the certificate will then be installed on the device. If the DeployCertificateOnRenewal option is set, the certificate will be deployed to any linked F5 Big IP devices. -This repository contains a Universal Orchestrator Extension which is a plugin to the Keyfactor Universal Orchestrator. Within the Keyfactor Platform, Orchestrators are used to manage “certificate stores” — collections of certificates and roots of trust that are found within and used by various applications. +Use cases NOT supported by the F5 Big IQ Orchestrator Extension: -The Universal Orchestrator is part of the Keyfactor software distribution and is available via the Keyfactor customer portal. For general instructions on installing Extensions, see the “Keyfactor Command Orchestrator Installation and Configuration Guide” section of the Keyfactor documentation. For configuration details of this specific Extension see below in this readme. +- Creating new binding relationships between F5 Big IQ and any linked F5 Big IP devices. +- Storing binding relationships in Keyfactor Command during Inventory. -The Universal Orchestrator is the successor to the Windows Orchestrator. This Orchestrator Extension plugin only works with the Universal Orchestrator and does not work with the Windows Orchestrator. -## Support for F5 BigIQ -F5 BigIQ is supported by Keyfactor for Keyfactor customers. If you have a support issue, please open a support ticket via the Keyfactor Support Portal at https://support.keyfactor.com +## Compatibility -###### To report a problem or suggest a new feature, use the **[Issues](../../issues)** tab. If you want to contribute actual bug fixes or proposed enhancements, use the **[Pull requests](../../pulls)** tab. +This integration is compatible with Keyfactor Universal Orchestrator version 10.4 and later. ---- +## Support +The F5 BigIQ Universal Orchestrator extension is supported by Keyfactor for Keyfactor customers. If you have a support issue, please open a support ticket with your Keyfactor representative. If you have a support issue, please open a support ticket via the Keyfactor Support Portal at https://support.keyfactor.com. + +> To report a problem or suggest a new feature, use the **[Issues](../../issues)** tab. If you want to contribute actual bug fixes or proposed enhancements, use the **[Pull requests](../../pulls)** tab. +## Requirements & Prerequisites ---- +Before installing the F5 BigIQ Universal Orchestrator extension, we recommend that you install [kfutil](https://github.com/Keyfactor/kfutil). Kfutil is a command-line tool that simplifies the process of creating store types, installing extensions, and instantiating certificate stores in Keyfactor Command. +When creating a Keyfactor Command Certificate Store, you will be asked to enter server credentials. These credentials will serve two purposes: +1. They will be used to authenticate to the F5 Big IQ instance when accessing API endpoints. Please make sure these credentials have Admin authority on F5 Big IQ. +2. When Inventorying and Adding/Replacing certificates it will be necessary for certificate files to be transferred to and from the F5 device. The F5 Big IQ Orchestrator Extension uses SCP (Secure Copy Protocol) to perform these functions. Please make sure your F5 Big IQ device is set up to allow SCP to transfer files *to* /var/config/rest/downloads (a reserved F5 Big IQ folder used for file transfers) and *from* /var/config/rest/fileobject (the certificate file location path) and all subfolders. Other configuration tasks may be necessary in your environment to enable this feature. -## Keyfactor Version Supported -The minimum version of the Keyfactor Universal Orchestrator Framework needed to run this version of the extension is 10.4 -## Platform Specific Notes +## Create the F5-BigIQ Certificate Store Type -The Keyfactor Universal Orchestrator may be installed on either Windows or Linux based platforms. The certificate operations supported by a capability may vary based what platform the capability is installed on. The table below indicates what capabilities are supported based on which platform the encompassing Universal Orchestrator is running. -| Operation | Win | Linux | -|-----|-----|------| -|Supports Management Add|✓ |✓ | -|Supports Management Remove|✓ |✓ | -|Supports Create Store| | | -|Supports Discovery| | | -|Supports Reenrollment|✓ |✓ | -|Supports Inventory|✓ |✓ | +To use the F5 BigIQ Universal Orchestrator extension, you **must** create the F5-BigIQ Certificate Store Type. This only needs to happen _once_ per Keyfactor Command instance. -## PAM Integration -This orchestrator extension has the ability to connect to a variety of supported PAM providers to allow for the retrieval of various client hosted secrets right from the orchestrator server itself. This eliminates the need to set up the PAM integration on Keyfactor Command which may be in an environment that the client does not want to have access to their PAM provider. +* **Create F5-BigIQ using kfutil**: -The secrets that this orchestrator extension supports for use with a PAM Provider are: + ```shell + # F5 Big IQ + kfutil store-types create F5-BigIQ + ``` -|Name|Description| -|----|-----------| -|ServerUsername|The user id that will be used to authenticate to the F5 Biq API endpoints| -|ServerPassword|The password that will be used to authenticate to the F5 Biq API endpoints| - +* **Create F5-BigIQ manually in the Command UI**: +
Create F5-BigIQ manually in the Command UI -It is not necessary to use a PAM Provider for all of the secrets available above. If a PAM Provider should not be used, simply enter in the actual value to be used, as normal. + Create a store type called `F5-BigIQ` with the attributes in the tables below: -If a PAM Provider will be used for one of the fields above, start by referencing the [Keyfactor Integration Catalog](https://keyfactor.github.io/integrations-catalog/content/pam). The GitHub repo for the PAM Provider to be used contains important information such as the format of the `json` needed. What follows is an example but does not reflect the `json` values for all PAM Providers as they have different "instance" and "initialization" parameter names and values. + #### Basic Tab + | Attribute | Value | Description | + | --------- | ----- | ----- | + | Name | F5 Big IQ | Display name for the store type (may be customized) | + | Short Name | F5-BigIQ | Short display name for the store type | + | Capability | F5-BigIQ | Store type name orchestrator will register with. Check the box to allow entry of value | + | Supports Add | ✅ Checked | Check the box. Indicates that the Store Type supports Management Add | + | Supports Remove | ✅ Checked | Check the box. Indicates that the Store Type supports Management Remove | + | Supports Discovery | 🔲 Unchecked | Indicates that the Store Type supports Discovery | + | Supports Reenrollment | 🔲 Unchecked | Indicates that the Store Type supports Reenrollment | + | Supports Create | 🔲 Unchecked | Indicates that the Store Type supports store creation | + | Needs Server | ✅ Checked | Determines if a target server name is required when creating store | + | Blueprint Allowed | ✅ Checked | Determines if store type may be included in an Orchestrator blueprint | + | Uses PowerShell | 🔲 Unchecked | Determines if underlying implementation is PowerShell | + | Requires Store Password | 🔲 Unchecked | Enables users to optionally specify a store password when defining a Certificate Store. | + | Supports Entry Password | 🔲 Unchecked | Determines if an individual entry within a store can have a password. | -
General PAM Provider Configuration -

+ The Basic tab should look like this: + ![F5-BigIQ Basic Tab](docsource/images/F5-BigIQ-basic-store-type-dialog.png) + #### Advanced Tab + | Attribute | Value | Description | + | --------- | ----- | ----- | + | Supports Custom Alias | Required | Determines if an individual entry within a store can have a custom Alias. | + | Private Key Handling | Required | This determines if Keyfactor can send the private key associated with a certificate to the store. Required because IIS certificates without private keys would be invalid. | + | PFX Password Style | Default | 'Default' - PFX password is randomly generated, 'Custom' - PFX password may be specified when the enrollment job is created (Requires the Allow Custom Password application setting to be enabled.) | -### Example PAM Provider Setup + The Advanced tab should look like this: -To use a PAM Provider to resolve a field, in this example the __Server Password__ will be resolved by the `Hashicorp-Vault` provider, first install the PAM Provider extension from the [Keyfactor Integration Catalog](https://keyfactor.github.io/integrations-catalog/content/pam) on the Universal Orchestrator. + ![F5-BigIQ Advanced Tab](docsource/images/F5-BigIQ-advanced-store-type-dialog.png) -Next, complete configuration of the PAM Provider on the UO by editing the `manifest.json` of the __PAM Provider__ (e.g. located at extensions/Hashicorp-Vault/manifest.json). The "initialization" parameters need to be entered here: + #### Custom Fields Tab + Custom fields operate at the certificate store level and are used to control how the orchestrator connects to the remote target server containing the certificate store to be managed. The following custom fields should be added to the store type: -~~~ json - "Keyfactor:PAMProviders:Hashicorp-Vault:InitializationInfo": { - "Host": "http://127.0.0.1:8200", - "Path": "v1/secret/data", - "Token": "xxxxxx" - } -~~~ + | Name | Display Name | Description | Type | Default Value/Options | Required | + | ---- | ------------ | ---- | --------------------- | -------- | ----------- | + | DeployCertificateOnRenewal | Deploy Certificate to Linked Big IP on Renewal | This optional setting determines whether renewed certificates (Management-Add jobs with Overwrite selected) will be deployed to all linked Big IP devices. Linked devices are determined by looking at all of the client-ssl profiles that reference the renewed certificate that have an associated virtual server linked to a Big IP device. An immediate deployment is then scheduled within F5 Big IQ for each linked Big IP device. | Bool | false | 🔲 Unchecked | + | IgnoreSSLWarning | Ignore SSL Warning | If you use a self signed certificate for the F5 Big IQ portal, you will need to add this optional Custom Field and set the value to True on the managed certificate store. | Bool | false | 🔲 Unchecked | + | UseTokenAuth | Use Token Authentication | If you prefer to use F5 Big IQ's Token Authentication to authenticate F5 Big IQ API calls, you will need to add this optional Custom Field and set the value to True on the managed certificate store. If set to True for the store, the userid/password credentials you set for the certificate store will be used once to receive a token. This token is then used for all subsequent API calls for the duration of the job. If this option does not exist or is set to False, the userid/password credentials you set for the certificate store will be used for all API calls. | Bool | false | 🔲 Unchecked | + | LoginProviderName | Authentication Provider Name | If Use Token Authentication is selected, you may optionally add a value for the authentication provider F5 Big IQ will use to retrieve the auth token. If you choose not to add this field or leave it blank on the certificate store (with no default value set), the default of "TMOS" will be used. | String | | 🔲 Unchecked | + | ServerUsername | Server Username | Login credential for the F5 Big IQ device. MUST be an Admin account. | Secret | | 🔲 Unchecked | + | ServerPassword | Server Password | Login password for the F5 Big IQ device. | Secret | | 🔲 Unchecked | -After these values are entered, the Orchestrator needs to be restarted to pick up the configuration. Now the PAM Provider can be used on other Orchestrator Extensions. + The Custom Fields tab should look like this: -### Use the PAM Provider -With the PAM Provider configured as an extenion on the UO, a `json` object can be passed instead of an actual value to resolve the field with a PAM Provider. Consult the [Keyfactor Integration Catalog](https://keyfactor.github.io/integrations-catalog/content/pam) for the specific format of the `json` object. + ![F5-BigIQ Custom Fields Tab](docsource/images/F5-BigIQ-custom-fields-store-type-dialog.png) -To have the __Server Password__ field resolved by the `Hashicorp-Vault` provider, the corresponding `json` object from the `Hashicorp-Vault` extension needs to be copied and filed in with the correct information: -~~~ json -{"Secret":"my-kv-secret","Key":"myServerPassword"} -~~~ -This text would be entered in as the value for the __Server Password__, instead of entering in the actual password. The Orchestrator will attempt to use the PAM Provider to retrieve the __Server Password__. If PAM should not be used, just directly enter in the value for the field. -

-
+ #### Entry Parameters Tab + | Name | Display Name | Description | Type | Default Value | Entry has a private key | Adding an entry | Removing an entry | Reenrolling an entry | + | ---- | ------------ | ---- | ------------- | ----------------------- | ---------------- | ----------------- | ------------------- | ----------- | + | Alias | Alias (Reenrollment only) | The name F5 Big IQ uses to identify the certificate | String | | 🔲 Unchecked | 🔲 Unchecked | 🔲 Unchecked | ✅ Checked | + | Overwrite | Overwrite (Reenrollment only) | Allow overwriting an existing certificate when reenrolling? | Bool | False | 🔲 Unchecked | 🔲 Unchecked | 🔲 Unchecked | ✅ Checked | + | SANs | SANs (Reenrollment only) | External SANs for the requested certificate. Each SAN must be prefixed with the type (DNS: or IP:) and multiple SANs must be delimitted by an ampersand (&). Example: DNS:server.domain.com&IP:127.0.0.1&DNS:server2.domain.com. This is an optional field. | String | | 🔲 Unchecked | 🔲 Unchecked | 🔲 Unchecked | 🔲 Unchecked | + The Entry Parameters tab should look like this: + ![F5-BigIQ Entry Parameters Tab](docsource/images/F5-BigIQ-entry-parameters-store-type-dialog.png) ---- -## Overview +
-The F5 Big IQ Orchestrator Extension supports the following use cases: +## Installation -- Inventories an existing F5 Big IQ device to import SSL certificates into Keyfactor Command for management -- Add an existing or newly enrolled certificate and private key to an existing F5 Big IQ device not already on that device. -- Remove a certificate and private key from an existing F5 Big IQ device. -- Add an existing or newly enrolled certificate and private key to an existing F5 Big IQ device already on that device. Optionally (based on the DeployCertificateOnRenewal setting on the certificate store), the newly renewed/replaced certificate will be deployed to any linked F5 Big IP device. -- Reenrollment (On Device Key Generation) of a new or existing certificate on the F5 Big IQ device. In this use case, the key pair and CSR will be created on the F5 Big IQ device, Keyfactor Command will enroll the certificate, and the certificate will then be installed on the device. If the DeployCertificateOnRenewal option is set, the certificate will be deployed to any linked F5 Big IP devices. +1. **Download the latest F5 BigIQ Universal Orchestrator extension from GitHub.** -Use cases NOT supported by the F5 Big IQ Orchestrator Extension: + Navigate to the [F5 BigIQ Universal Orchestrator extension GitHub version page](https://github.com/Keyfactor/f5-bigiq-rest-orchestrator/releases/latest). Refer to the compatibility matrix below to determine whether the `net6.0` or `net8.0` asset should be downloaded. Then, click the corresponding asset to download the zip archive. + | Universal Orchestrator Version | Latest .NET version installed on the Universal Orchestrator server | `rollForward` condition in `Orchestrator.runtimeconfig.json` | `f5-bigiq-rest-orchestrator` .NET version to download | + | --------- | ----------- | ----------- | ----------- | + | Older than `11.0.0` | | | `net6.0` | + | Between `11.0.0` and `11.5.1` (inclusive) | `net6.0` | | `net6.0` | + | Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `Never` | `net6.0` | + | Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `LatestMajor` | `net8.0` | + | `11.6` _and_ newer | `net8.0` | | `net8.0` | -- Creating new binding relationships between F5 Big IQ and any linked F5 Big IP devices. -- Storing binding relationships in Keyfactor Command during Inventory. + Unzip the archive containing extension assemblies to a known location. + > **Note** If you don't see an asset with a corresponding .NET version, you should always assume that it was compiled for `net6.0`. -## Versioning +2. **Locate the Universal Orchestrator extensions directory.** -The version number of a the F5 Big IQ Orchestrator Extension can be verified by right clicking on the F5BigIQ.dll file, selecting Properties, and then clicking on the Details tab. + * **Default on Windows** - `C:\Program Files\Keyfactor\Keyfactor Orchestrator\extensions` + * **Default on Linux** - `/opt/keyfactor/orchestrator/extensions` + +3. **Create a new directory for the F5 BigIQ Universal Orchestrator extension inside the extensions directory.** + + Create a new directory called `f5-bigiq-rest-orchestrator`. + > The directory name does not need to match any names used elsewhere; it just has to be unique within the extensions directory. +4. **Copy the contents of the downloaded and unzipped assemblies from __step 2__ to the `f5-bigiq-rest-orchestrator` directory.** -## F5 Big IQ Prerequisites +5. **Restart the Universal Orchestrator service.** -When creating a Keyfactor Command Certificate Store, you will be asked to enter server credentials. These credentials will serve two purposes: -1. They will be used to authenticate to the F5 Big IQ instance when accessing API endpoints. Please make sure these credentials have Admin authority on F5 Big IQ. -2. When Inventorying and Adding/Replacing certificates it will be necessary for certificate files to be transferred to and from the F5 device. The F5 Big IQ Orchestrator Extension uses SCP (Secure Copy Protocol) to perform these functions. Please make sure your F5 Big IQ device is set up to allow SCP to transfer files *to* /var/config/rest/downloads (a reserved F5 Big IQ folder used for file transfers) and *from* /var/config/rest/fileobject (the certificate file location path) and all subfolders. Other configuration tasks may be necessary in your environment to enable this feature. + Refer to [Starting/Restarting the Universal Orchestrator service](https://software.keyfactor.com/Core-OnPrem/Current/Content/InstallingAgents/NetCoreOrchestrator/StarttheService.htm). + + +6. **(optional) PAM Integration** + + The F5 BigIQ Universal Orchestrator extension is compatible with all supported Keyfactor PAM extensions to resolve PAM-eligible secrets. PAM extensions running on Universal Orchestrators enable secure retrieval of secrets from a connected PAM provider. + To configure a PAM provider, [reference the Keyfactor Integration Catalog](https://keyfactor.github.io/integrations-catalog/content/pam) to select an extension, and follow the associated instructions to install it on the Universal Orchestrator (remote). -## F5 Big IQ Orchestrator Extension Installation - -1. Stop the Keyfactor Universal Orchestrator Service. -2. In the Keyfactor Orchestrator installation folder (by convention usually C:\Program Files\Keyfactor\Keyfactor Orchestrator), find the "extensions" folder. Underneath that, create a new folder named F5BigIQ or another name of your choosing. -3. Download the latest version of the F5 BigIQ Orchestrator Extension from [GitHub](https://github.com/Keyfactor/f5-bigiq-rest-orchestrator). -4. Copy the contents of the download installation zip file into the folder created in step 2. -5. Start the Keyfactor Universal Orchestrator Service. +> The above installation steps can be supplimented by the [official Command documentation](https://software.keyfactor.com/Core-OnPrem/Current/Content/InstallingAgents/NetCoreOrchestrator/CustomExtensions.htm?Highlight=extensions). -## F5 Big IQ Orchestrator Extension Configuration -### 1\. In Keyfactor Command, create a new certificate store type by navigating to Settings (the "gear" icon in the top right) => Certificate Store Types, and clicking ADD. Then enter the following information: -
-Basic Tab +## Defining Certificate Stores -- **Name** – Required. The descriptive display name of the new Certificate Store Type. Suggested => F5 Big IQ -- **Short Name** – Required. This value ***must be*** F5-BigIQ. -- **Custom Capability** - Leave unchecked -- **Supported Job Types** – Select Inventory, Add, and Remove. -- **General Settings** - Select Needs Server. Select Blueprint Allowed if you plan to use blueprinting. Leave Uses PowerShell unchecked. -- **Password Settings** - Leave both options unchecked -
-
-Advanced Tab +* **Manually with the Command UI** -- **Store Path Type** - Select Freeform -- **Supports Custom Alias** - Required -- **Private Key Handling** - Required -- **PFX Password Style** - Default +
Create Certificate Stores manually in the UI -
+ 1. **Navigate to the _Certificate Stores_ page in Keyfactor Command.** -
-Custom Fields Tab + Log into Keyfactor Command, toggle the _Locations_ dropdown, and click _Certificate Stores_. -- **Deploy Certificate to Linked Big IP on Renewal** - optional - This setting determines you wish to deploy renewed certificates (Management-Add jobs with Overwrite selected) to all linked Big IP devices. Linked devices are determined by looking at all of the client-ssl profiles that reference the renewed certificate that have an associated virtual server linked to a Big IP device. An "immediate" deployment is then scheduled within F5 Big IQ for each linked Big IP device. - - **Name**=DeployCertificateOnRenewal - - **Display Name**=Deploy Certificate to Linked Big IP on Renewal - - **Type**=Bool - - **Default Value**={client preference} - - **Depends on**=unchecked - - **Required**=unchecked + 2. **Add a Certificate Store.** -- **Ignore SSL Warning** - optional - If you use a self signed certificate for the F5 Big IQ portal, you will need add this Custom Field and set the value to True on the managed certificate store. - - **Name**=IgnoreSSLWarning - - **Display Name**=Ignore SSL Warning - - **Type**=Bool - - **Default Value**={client preference} - - **Depends on**=unchecked - - **Required**=unchecked + Click the Add button to add a new Certificate Store. Use the table below to populate the **Attributes** in the **Add** form. + | Attribute | Description | + | --------- | ----------- | + | Category | Select "F5 Big IQ" or the customized certificate store name from the previous step. | + | Container | Optional container to associate certificate store with. | + | Client Machine | | + | Store Path | | + | Orchestrator | Select an approved orchestrator capable of managing `F5-BigIQ` certificates. Specifically, one with the `F5-BigIQ` capability. | + | DeployCertificateOnRenewal | This optional setting determines whether renewed certificates (Management-Add jobs with Overwrite selected) will be deployed to all linked Big IP devices. Linked devices are determined by looking at all of the client-ssl profiles that reference the renewed certificate that have an associated virtual server linked to a Big IP device. An immediate deployment is then scheduled within F5 Big IQ for each linked Big IP device. | + | IgnoreSSLWarning | If you use a self signed certificate for the F5 Big IQ portal, you will need to add this optional Custom Field and set the value to True on the managed certificate store. | + | UseTokenAuth | If you prefer to use F5 Big IQ's Token Authentication to authenticate F5 Big IQ API calls, you will need to add this optional Custom Field and set the value to True on the managed certificate store. If set to True for the store, the userid/password credentials you set for the certificate store will be used once to receive a token. This token is then used for all subsequent API calls for the duration of the job. If this option does not exist or is set to False, the userid/password credentials you set for the certificate store will be used for all API calls. | + | LoginProviderName | If Use Token Authentication is selected, you may optionally add a value for the authentication provider F5 Big IQ will use to retrieve the auth token. If you choose not to add this field or leave it blank on the certificate store (with no default value set), the default of "TMOS" will be used. | + | ServerUsername | Login credential for the F5 Big IQ device. MUST be an Admin account. | + | ServerPassword | Login password for the F5 Big IQ device. | -- **Use Token Authentication** - optional - If you prefer to use F5 Big IQ's Token Authentication to authenticate F5 Big IQ API calls that the integration uses, you will need to add this Custom Field and set the value to True on the managed certificate store. If this exists and is set to True for the store, the store userid/password credentials you set for the certificate store will be used once to receive a token. This token is then used for all remaining API calls for the duration of the job. If this option does not exist or is set to False, the userid/password credentials you set on the certificate store will be used for each API call. - - **Name**=UseTokenAuth - - **Display Name**=Use Token Authentication - - **Type**=Bool - - **Default Value**={client preference} - - **Depends on**=unchecked - - **Required**=unchecked -- **Use Token Authentication Provider Name** - optional - If Use Token Authentication is selected, you may optionally add a value for the authentication provider F5 Big IQ will use to retrieve the auth token. If you choose not to add this field or leave it blank on the certificate store (with no default value set), the default of "TMOS" will be used. - - **Name**=LoginProviderName - - **Display Name**=Use Token Authentication Provider Name - - **Type**=String - - **Default Value**={client preference} - - **Depends on**="UseTokenAuth" - - **Required**=unchecked + -Please note, after saving the store type, going back into this screen will show three additional Custom Fields: Server Username, Server Password, and Use SSL. These are added internally by Keyfactor Command and should not be modified. +
Attributes eligible for retrieval by a PAM Provider on the Universal Orchestrator -
+ If a PAM provider was installed _on the Universal Orchestrator_ in the [Installation](#Installation) section, the following parameters can be configured for retrieval _on the Universal Orchestrator_. + | Attribute | Description | + | --------- | ----------- | + | ServerUsername | Login credential for the F5 Big IQ device. MUST be an Admin account. | + | ServerPassword | Login password for the F5 Big IQ device. | -
-Entry Parameters Tab -Entry parameters are required ONLY if you will be taking advantage of the Reenrollment (ODKG - On Device Key Generation) capability of the F5 Big IQ Orchestrator Extension. When scheduling Reenrollment or Management jobs, some versions of Keyfactor Command may show multiple Alias and Overwrite fields. The ones below will be used for Reenrollment while the others will be used for Management. + Please refer to the **Universal Orchestrator (remote)** usage section ([PAM providers on the Keyfactor Integration Catalog](https://keyfactor.github.io/integrations-catalog/content/pam)) for your selected PAM provider for instructions on how to load attributes orchestrator-side. -- **Alias** - required - The identifying name of the certificate - - **Name**=Alias - - **Display Name**=Alias (Reenrollment Only) - - **Type**=String - - **Default Value**=Leave Blank - - **Depends On**=unchecked - - **Required When**=Check Reenrolling an entry + > Any secret can be rendered by a PAM provider _installed on the Keyfactor Command server_. The above parameters are specific to attributes that can be fetched by an installed PAM provider running on the Universal Orchestrator server itself. +
+ -- **Overwrite** - required - Allow overwriting an existing certificate when reenrolling? - - **Name**=Overwrite - - **Display Name**=Overwrite (Reenrollment Only) - - **Type**=Bool - - **Default Value**=False - - **Depends On**=unchecked - - **Required When**=Check Reenrolling an entry +
-- **SANs** - optional - External SANs for the requested certificate. Each SAN must be prefixed with the type (DNS: or IP:) and multiple SANs must be delimitted by an ampersand (&). Example: DNS:server.domain.com&IP:127.0.0.1&DNS:server2.domain.com - - **Name**=SANs - - **Display Name**=SANs (Reenrollment Only) - - **Type**=String - - **Default Value**=Leave Blank - - **Depends On**=unchecked - - **Required When**=Leave all unchecked +* **Using kfutil** + +
Create Certificate Stores with kfutil + + 1. **Generate a CSV template for the F5-BigIQ certificate store** -
+ ```shell + kfutil stores import generate-template --store-type-name F5-BigIQ --outpath F5-BigIQ.csv + ``` + 2. **Populate the generated CSV file** -### 2\. Create an F5 Big IQ Certificate Store + Open the CSV file, and reference the table below to populate parameters for each **Attribute**. + | Attribute | Description | + | --------- | ----------- | + | Category | Select "F5 Big IQ" or the customized certificate store name from the previous step. | + | Container | Optional container to associate certificate store with. | + | Client Machine | | + | Store Path | | + | Orchestrator | Select an approved orchestrator capable of managing `F5-BigIQ` certificates. Specifically, one with the `F5-BigIQ` capability. | + | DeployCertificateOnRenewal | This optional setting determines whether renewed certificates (Management-Add jobs with Overwrite selected) will be deployed to all linked Big IP devices. Linked devices are determined by looking at all of the client-ssl profiles that reference the renewed certificate that have an associated virtual server linked to a Big IP device. An immediate deployment is then scheduled within F5 Big IQ for each linked Big IP device. | + | IgnoreSSLWarning | If you use a self signed certificate for the F5 Big IQ portal, you will need to add this optional Custom Field and set the value to True on the managed certificate store. | + | UseTokenAuth | If you prefer to use F5 Big IQ's Token Authentication to authenticate F5 Big IQ API calls, you will need to add this optional Custom Field and set the value to True on the managed certificate store. If set to True for the store, the userid/password credentials you set for the certificate store will be used once to receive a token. This token is then used for all subsequent API calls for the duration of the job. If this option does not exist or is set to False, the userid/password credentials you set for the certificate store will be used for all API calls. | + | LoginProviderName | If Use Token Authentication is selected, you may optionally add a value for the authentication provider F5 Big IQ will use to retrieve the auth token. If you choose not to add this field or leave it blank on the certificate store (with no default value set), the default of "TMOS" will be used. | + | ServerUsername | Login credential for the F5 Big IQ device. MUST be an Admin account. | + | ServerPassword | Login password for the F5 Big IQ device. | -Navigate to Certificate Locations =\> Certificate Stores within Keyfactor Command to add the store. Below are the values that should be entered: -- **Category** – Required. Select the Name you entered when creating the Certificate Store Type. Suggested value was F5 Big IQ. + -- **Container** – Optional. Select a container if utilized. +
Attributes eligible for retrieval by a PAM Provider on the Universal Orchestrator -- **Client Machine & Credentials** – Required. The full URL of the F5 Big IQ device portal. - -- **Store Path** – Required. Enter the name of the partition on the F5 Big IQ device you wish to manage. This value is case sensitive, so if the partition name is "Common", it must be entered as "Common" and not "common". + If a PAM provider was installed _on the Universal Orchestrator_ in the [Installation](#Installation) section, the following parameters can be configured for retrieval _on the Universal Orchestrator_. + | Attribute | Description | + | --------- | ----------- | + | ServerUsername | Login credential for the F5 Big IQ device. MUST be an Admin account. | + | ServerPassword | Login password for the F5 Big IQ device. | -- **Orchestrator** – Required. Select the orchestrator you wish to use to manage this store -- **Deploy Certificate to Linked Big IP on Renewal** - Optional. Set this to True if you wish to deploy renewed certificates (Management-Add jobs with Overwrite selected) to all linked Big IP devices. Linked devices are determined by looking at all of the client-ssl profiles that reference the renewed certificate that have an associated virtual server linked to a Big IP device. An "immediate" deployment is then scheduled within F5 Big IQ for each linked Big IP device. + > Any secret can be rendered by a PAM provider _installed on the Keyfactor Command server_. The above parameters are specific to attributes that can be fetched by an installed PAM provider running on the Universal Orchestrator server itself. +
+ -- **Ignore SSL Warning** - Optional. Set this to True 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 chose not to add this Custom Field when creating the Certificate Store Type, the default value of False will be assumed. If this value is False (or missing) SSL warnings will cause errors during orchestrator extension jobs. + 3. **Import the CSV file to create the certificate stores** -- **Use Token Authentication** - Optional. Set this to True if you wish to use F5 Big IQ's token authentiation instead of basic authentication for all API requests. If you chose not to add this optional Custom Field when creating the Certificate Store Type, 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. + ```shell + kfutil stores import csv --store-type-name F5-BigIQ --file F5-BigIQ.csv + ``` +
-- **Use Token Authentication Provider Name** - Optional - If Use Token Authentication is selected, you may optionally add a value for the authentication provider F5 Big IQ will use to retrieve the auth token. If you choose leave this field blank, the default of "TMOS" will be used. +> The content in this section can be supplimented by the [official Command documentation](https://software.keyfactor.com/Core-OnPrem/Current/Content/ReferenceGuide/Certificate%20Stores.htm?Highlight=certificate%20store). -- **Server Username/Password** - Required. The credentials used to log into the F5 Big IQ device to perform API calls. These values for server login can be either: - - - UserId/Password - - PAM provider information used to look up the UserId/Password credentials - Please make sure these credentials have Admin rights on the F5 Big IQ device and can perform SCP functions as described in the F5 Big IQ Prerequisites section above. -- **Use SSL** - N/A. This value is not referenced in the F5 Big IQ Orchestrator Extension. The value you enter for Client Machine, and specifically whether the protocol entered is http:// or https:// will determine whether a TLS (SSL) connection is utilized. -- **Inventory Schedule** – Set a schedule for running Inventory jobs or "none", if you choose not to schedule Inventory at this time. +## License -When creating cert store type manually, that store property names and entry parameter names are case sensitive +Apache License 2.0, see [LICENSE](LICENSE). +## Related Integrations +See all [Keyfactor Universal Orchestrator extensions](https://github.com/orgs/Keyfactor/repositories?q=orchestrator). \ No newline at end of file diff --git a/docsource/content.md b/docsource/content.md new file mode 100644 index 0000000..1aec2d0 --- /dev/null +++ b/docsource/content.md @@ -0,0 +1,23 @@ +## Overview + +The F5 Big IQ Orchestrator Extension supports the following use cases: + +- Inventories an existing F5 Big IQ device to import SSL certificates into Keyfactor Command for management +- Add an existing or newly enrolled certificate and private key to an existing F5 Big IQ device not already on that device. +- Remove a certificate and private key from an existing F5 Big IQ device. +- Add an existing or newly enrolled certificate and private key to an existing F5 Big IQ device already on that device. Optionally (based on the DeployCertificateOnRenewal setting on the certificate store), the newly renewed/replaced certificate will be deployed to any linked F5 Big IP device. +- Reenrollment (On Device Key Generation) of a new or existing certificate on the F5 Big IQ device. In this use case, the key pair and CSR will be created on the F5 Big IQ device, Keyfactor Command will enroll the certificate, and the certificate will then be installed on the device. If the DeployCertificateOnRenewal option is set, the certificate will be deployed to any linked F5 Big IP devices. + +Use cases NOT supported by the F5 Big IQ Orchestrator Extension: + +- Creating new binding relationships between F5 Big IQ and any linked F5 Big IP devices. +- Storing binding relationships in Keyfactor Command during Inventory. + + +## Requirements + +When creating a Keyfactor Command Certificate Store, you will be asked to enter server credentials. These credentials will serve two purposes: +1. They will be used to authenticate to the F5 Big IQ instance when accessing API endpoints. Please make sure these credentials have Admin authority on F5 Big IQ. +2. When Inventorying and Adding/Replacing certificates it will be necessary for certificate files to be transferred to and from the F5 device. The F5 Big IQ Orchestrator Extension uses SCP (Secure Copy Protocol) to perform these functions. Please make sure your F5 Big IQ device is set up to allow SCP to transfer files *to* /var/config/rest/downloads (a reserved F5 Big IQ folder used for file transfers) and *from* /var/config/rest/fileobject (the certificate file location path) and all subfolders. Other configuration tasks may be necessary in your environment to enable this feature. + + diff --git a/docsource/f5-bigiq.md b/docsource/f5-bigiq.md new file mode 100644 index 0000000..0aa5d83 --- /dev/null +++ b/docsource/f5-bigiq.md @@ -0,0 +1 @@ +## Overview \ No newline at end of file diff --git a/docsource/images/F5-BigIQ-advanced-store-type-dialog.png b/docsource/images/F5-BigIQ-advanced-store-type-dialog.png new file mode 100644 index 0000000..2b71e8c Binary files /dev/null and b/docsource/images/F5-BigIQ-advanced-store-type-dialog.png differ diff --git a/docsource/images/F5-BigIQ-basic-store-type-dialog.png b/docsource/images/F5-BigIQ-basic-store-type-dialog.png new file mode 100644 index 0000000..6782c14 Binary files /dev/null and b/docsource/images/F5-BigIQ-basic-store-type-dialog.png differ diff --git a/docsource/images/F5-BigIQ-custom-fields-store-type-dialog.png b/docsource/images/F5-BigIQ-custom-fields-store-type-dialog.png new file mode 100644 index 0000000..51f7dfd Binary files /dev/null and b/docsource/images/F5-BigIQ-custom-fields-store-type-dialog.png differ diff --git a/docsource/images/F5-BigIQ-entry-parameters-store-type-dialog.png b/docsource/images/F5-BigIQ-entry-parameters-store-type-dialog.png new file mode 100644 index 0000000..d584beb Binary files /dev/null and b/docsource/images/F5-BigIQ-entry-parameters-store-type-dialog.png differ diff --git a/integration-manifest.json b/integration-manifest.json index 02f1d47..9703d43 100644 --- a/integration-manifest.json +++ b/integration-manifest.json @@ -1,137 +1,148 @@ -{ - "$schema": "https://keyfactor.github.io/integration-manifest-schema.json", - "integration_type": "orchestrator", - "name": "F5 BigIQ", - "status": "production", - "support_level": "kf-supported", - "description": "The F5 Big IQ Orchestrator allows for the remote management of F5 Big IQ certificate stores. Inventory, Management, and Reenrollment functions are supported.", - "link_github": true, - "update_catalog": true, - "release_dir": "F5BigIQ/bin/Release", - "about": { - "orchestrator": { - "UOFramework": "10.4", - "keyfactor_platform_version": "10.3", - "pam_support": true, - "win": { - "supportsCreateStore": false, - "supportsDiscovery": false, - "supportsManagementAdd": true, - "supportsManagementRemove": true, - "supportsReenrollment": true, - "supportsInventory": true - }, - "linux": { - "supportsCreateStore": false, - "supportsDiscovery": false, - "supportsManagementAdd": true, - "supportsManagementRemove": true, - "supportsReenrollment": true, - "supportsInventory": true - }, - "store_types": [ - { - "Name": "F5 Big IQ", - "ShortName": "F5-BigIQ", - "Capability": "F5-BigIQ", - "LocalStore": false, - "SupportedOperations": { - "Add": true, - "Create": false, - "Discovery": false, - "Enrollment": true, - "Remove": true - }, - "Properties": [ - { - "Name": "DeployCertificateOnRenewal", - "DisplayName": "Deploy Certificate to Linked Big IP on Renewal", - "Type": "Bool", - "DependsOn": "", - "DefaultValue": "false", - "Required": false - }, - { - "Name": "IgnoreSSLWarning", - "DisplayName": "Ignore SSL Warning", - "Type": "Bool", - "DependsOn": "", - "DefaultValue": "false", - "Required": false - }, - { - "Name": "UseTokenAuth", - "DisplayName": "Use Token Authentication", - "Type": "Bool", - "DependsOn": "", - "DefaultValue": "false", - "Required": false - }, - { - "Name": "LoginProviderName", - "DisplayName": "Authentication Provider Name", - "Type": "String", - "DependsOn": "UseTokenAuth", - "DefaultValue": "", - "Required": false - } - ], - "EntryParameters": [ - { - "Name": "Alias", - "DisplayName": "Alias (Reenrollment only)", - "Type": "String", - "RequiredWhen": { - "HasPrivateKey": false, - "OnAdd": false, - "OnRemove": false, - "OnReenrollment": true - }, - "DependsOn": "", - "DefaultValue": "", - "Options": "" - }, - { - "Name": "Overwrite", - "DisplayName": "Overwrite (Reenrollment only)", - "Type": "Bool", - "RequiredWhen": { - "HasPrivateKey": false, - "OnAdd": false, - "OnRemove": false, - "OnReenrollment": true - }, - "DependsOn": "", - "DefaultValue": "False", - "Options": "" - }, - { - "Name": "SANs", - "DisplayName": "SANs (Reenrollment only)", - "Type": "String", - "RequiredWhen": { - "HasPrivateKey": false, - "OnAdd": false, - "OnRemove": false, - "OnReenrollment": false - }, - "DependsOn": "", - "DefaultValue": "", - "Options": "" - } - ], - "PasswordOptions": { - "EntrySupported": false, - "StoreRequired": false, - "Style": "Default" - }, - "PrivateKeyAllowed": "Required", - "ServerRequired": true, - "PowerShell": false, - "BlueprintAllowed": true, - "CustomAliasAllowed": "Required" - } - ] - } - } -} +{ + "$schema": "https://keyfactor.github.io/integration-manifest-schema.json", + "integration_type": "orchestrator", + "name": "F5 BigIQ", + "status": "production", + "support_level": "kf-supported", + "description": "The F5 Big IQ Orchestrator allows for the remote management of F5 Big IQ certificate stores. Inventory, Management, and Reenrollment functions are supported.", + "link_github": true, + "update_catalog": true, + "release_project": "F5BigIQ/F5BigIQ.csproj", + "release_dir": "F5BigIQ/bin/Release", + "about": { + "orchestrator": { + "UOFramework": "10.4", + "keyfactor_platform_version": "10.3", + "pam_support": true, + "store_types": [ + { + "Name": "F5 Big IQ", + "ShortName": "F5-BigIQ", + "Capability": "F5-BigIQ", + "PrivateKeyAllowed": "Required", + "ServerRequired": true, + "PowerShell": false, + "BlueprintAllowed": true, + "CustomAliasAllowed": "Required", + "SupportedOperations": { + "Add": true, + "Create": false, + "Discovery": false, + "Enrollment": true, + "Remove": true + }, + "PasswordOptions": { + "EntrySupported": false, + "StoreRequired": false, + "Style": "Default" + }, + "Properties": [ + { + "Name": "DeployCertificateOnRenewal", + "DisplayName": "Deploy Certificate to Linked Big IP on Renewal", + "Type": "Bool", + "DependsOn": "", + "DefaultValue": "false", + "Required": false, + "Description": "This optional setting determines whether renewed certificates (Management-Add jobs with Overwrite selected) will be deployed to all linked Big IP devices. Linked devices are determined by looking at all of the client-ssl profiles that reference the renewed certificate that have an associated virtual server linked to a Big IP device. An immediate deployment is then scheduled within F5 Big IQ for each linked Big IP device." + }, + { + "Name": "IgnoreSSLWarning", + "DisplayName": "Ignore SSL Warning", + "Type": "Bool", + "DependsOn": "", + "DefaultValue": "false", + "Required": false, + "Description": "If you use a self signed certificate for the F5 Big IQ portal, you will need to add this optional Custom Field and set the value to True on the managed certificate store." + }, + { + "Name": "UseTokenAuth", + "DisplayName": "Use Token Authentication", + "Type": "Bool", + "DependsOn": "", + "DefaultValue": "false", + "Required": false, + "Description": "If you prefer to use F5 Big IQ's Token Authentication to authenticate F5 Big IQ API calls, you will need to add this optional Custom Field and set the value to True on the managed certificate store. If set to True for the store, the userid/password credentials you set for the certificate store will be used once to receive a token. This token is then used for all subsequent API calls for the duration of the job. If this option does not exist or is set to False, the userid/password credentials you set for the certificate store will be used for all API calls." + }, + { + "Name": "LoginProviderName", + "DisplayName": "Authentication Provider Name", + "Type": "String", + "DependsOn": "UseTokenAuth", + "DefaultValue": "", + "Required": false, + "Description": "If Use Token Authentication is selected, you may optionally add a value for the authentication provider F5 Big IQ will use to retrieve the auth token. If you choose not to add this field or leave it blank on the certificate store (with no default value set), the default of \"TMOS\" will be used." + }, + { + "Name": "ServerUsername", + "DisplayName": "Server Username", + "Type": "Secret", + "DependsOn": "", + "DefaultValue": "", + "IsPAMEligible": true, + "Required": false, + "Description": "Login credential for the F5 Big IQ device. MUST be an Admin account." + }, + { + "Name": "ServerPassword", + "DisplayName": "Server Password", + "Type": "Secret", + "DependsOn": "", + "DefaultValue": "", + "IsPAMEligible": true, + "Required": false, + "Description": "Login password for the F5 Big IQ device." + } + ], + "EntryParameters": [ + { + "Name": "Alias", + "DisplayName": "Alias (Reenrollment only)", + "Type": "String", + "RequiredWhen": { + "HasPrivateKey": false, + "OnAdd": false, + "OnRemove": false, + "OnReenrollment": true + }, + "DependsOn": "", + "DefaultValue": "", + "Options": "", + "Description": "The name F5 Big IQ uses to identify the certificate" + }, + { + "Name": "Overwrite", + "DisplayName": "Overwrite (Reenrollment only)", + "Type": "Bool", + "RequiredWhen": { + "HasPrivateKey": false, + "OnAdd": false, + "OnRemove": false, + "OnReenrollment": true + }, + "DependsOn": "", + "DefaultValue": "False", + "Options": "", + "Description": "Allow overwriting an existing certificate when reenrolling?" + }, + { + "Name": "SANs", + "DisplayName": "SANs (Reenrollment only)", + "Type": "String", + "RequiredWhen": { + "HasPrivateKey": false, + "OnAdd": false, + "OnRemove": false, + "OnReenrollment": false + }, + "DependsOn": "", + "DefaultValue": "", + "Options": "", + "Description": "External SANs for the requested certificate. Each SAN must be prefixed with the type (DNS: or IP:) and multiple SANs must be delimitted by an ampersand (&). Example: DNS:server.domain.com&IP:127.0.0.1&DNS:server2.domain.com. This is an optional field." + } + ] + } + ] + } + } +} \ No newline at end of file diff --git a/readme-src/readme-pam-support.md b/readme-src/readme-pam-support.md deleted file mode 100644 index c1144e7..0000000 --- a/readme-src/readme-pam-support.md +++ /dev/null @@ -1,5 +0,0 @@ -|Name|Description| -|----|-----------| -|ServerUsername|The user id that will be used to authenticate to the F5 Biq API endpoints| -|ServerPassword|The password that will be used to authenticate to the F5 Biq API endpoints| - diff --git a/readme_source.md b/readme_source.md deleted file mode 100644 index 7d16972..0000000 --- a/readme_source.md +++ /dev/null @@ -1,166 +0,0 @@ -## Overview - -The F5 Big IQ Orchestrator Extension supports the following use cases: - -- Inventories an existing F5 Big IQ device to import SSL certificates into Keyfactor Command for management -- Add an existing or newly enrolled certificate and private key to an existing F5 Big IQ device not already on that device. -- Remove a certificate and private key from an existing F5 Big IQ device. -- Add an existing or newly enrolled certificate and private key to an existing F5 Big IQ device already on that device. Optionally (based on the DeployCertificateOnRenewal setting on the certificate store), the newly renewed/replaced certificate will be deployed to any linked F5 Big IP device. -- Reenrollment (On Device Key Generation) of a new or existing certificate on the F5 Big IQ device. In this use case, the key pair and CSR will be created on the F5 Big IQ device, Keyfactor Command will enroll the certificate, and the certificate will then be installed on the device. If the DeployCertificateOnRenewal option is set, the certificate will be deployed to any linked F5 Big IP devices. - -Use cases NOT supported by the F5 Big IQ Orchestrator Extension: - -- Creating new binding relationships between F5 Big IQ and any linked F5 Big IP devices. -- Storing binding relationships in Keyfactor Command during Inventory. - - -## Versioning - -The version number of a the F5 Big IQ Orchestrator Extension can be verified by right clicking on the F5BigIQ.dll file, selecting Properties, and then clicking on the Details tab. - - -## F5 Big IQ Prerequisites - -When creating a Keyfactor Command Certificate Store, you will be asked to enter server credentials. These credentials will serve two purposes: -1. They will be used to authenticate to the F5 Big IQ instance when accessing API endpoints. Please make sure these credentials have Admin authority on F5 Big IQ. -2. When Inventorying and Adding/Replacing certificates it will be necessary for certificate files to be transferred to and from the F5 device. The F5 Big IQ Orchestrator Extension uses SCP (Secure Copy Protocol) to perform these functions. Please make sure your F5 Big IQ device is set up to allow SCP to transfer files *to* /var/config/rest/downloads (a reserved F5 Big IQ folder used for file transfers) and *from* /var/config/rest/fileobject (the certificate file location path) and all subfolders. Other configuration tasks may be necessary in your environment to enable this feature. - - -## F5 Big IQ Orchestrator Extension Installation - -1. Stop the Keyfactor Universal Orchestrator Service. -2. In the Keyfactor Orchestrator installation folder (by convention usually C:\Program Files\Keyfactor\Keyfactor Orchestrator), find the "extensions" folder. Underneath that, create a new folder named F5BigIQ or another name of your choosing. -3. Download the latest version of the F5 BigIQ Orchestrator Extension from [GitHub](https://github.com/Keyfactor/f5-bigiq-rest-orchestrator). -4. Copy the contents of the download installation zip file into the folder created in step 2. -5. Start the Keyfactor Universal Orchestrator Service. - - -## F5 Big IQ Orchestrator Extension Configuration - -### 1\. In Keyfactor Command, create a new certificate store type by navigating to Settings (the "gear" icon in the top right) => Certificate Store Types, and clicking ADD. Then enter the following information: - -
-Basic Tab - -- **Name** – Required. The descriptive display name of the new Certificate Store Type. Suggested => F5 Big IQ -- **Short Name** – Required. This value ***must be*** F5-BigIQ. -- **Custom Capability** - Leave unchecked -- **Supported Job Types** – Select Inventory, Add, and Remove. -- **General Settings** - Select Needs Server. Select Blueprint Allowed if you plan to use blueprinting. Leave Uses PowerShell unchecked. -- **Password Settings** - Leave both options unchecked - -
- -
-Advanced Tab - -- **Store Path Type** - Select Freeform -- **Supports Custom Alias** - Required -- **Private Key Handling** - Required -- **PFX Password Style** - Default - -
- -
-Custom Fields Tab - -- **Deploy Certificate to Linked Big IP on Renewal** - optional - This setting determines you wish to deploy renewed certificates (Management-Add jobs with Overwrite selected) to all linked Big IP devices. Linked devices are determined by looking at all of the client-ssl profiles that reference the renewed certificate that have an associated virtual server linked to a Big IP device. An "immediate" deployment is then scheduled within F5 Big IQ for each linked Big IP device. - - **Name**=DeployCertificateOnRenewal - - **Display Name**=Deploy Certificate to Linked Big IP on Renewal - - **Type**=Bool - - **Default Value**={client preference} - - **Depends on**=unchecked - - **Required**=unchecked - -- **Ignore SSL Warning** - optional - If you use a self signed certificate for the F5 Big IQ portal, you will need add this Custom Field and set the value to True on the managed certificate store. - - **Name**=IgnoreSSLWarning - - **Display Name**=Ignore SSL Warning - - **Type**=Bool - - **Default Value**={client preference} - - **Depends on**=unchecked - - **Required**=unchecked - -- **Use Token Authentication** - optional - If you prefer to use F5 Big IQ's Token Authentication to authenticate F5 Big IQ API calls that the integration uses, you will need to add this Custom Field and set the value to True on the managed certificate store. If this exists and is set to True for the store, the store userid/password credentials you set for the certificate store will be used once to receive a token. This token is then used for all remaining API calls for the duration of the job. If this option does not exist or is set to False, the userid/password credentials you set on the certificate store will be used for each API call. - - **Name**=UseTokenAuth - - **Display Name**=Use Token Authentication - - **Type**=Bool - - **Default Value**={client preference} - - **Depends on**=unchecked - - **Required**=unchecked - -- **Use Token Authentication Provider Name** - optional - If Use Token Authentication is selected, you may optionally add a value for the authentication provider F5 Big IQ will use to retrieve the auth token. If you choose not to add this field or leave it blank on the certificate store (with no default value set), the default of "TMOS" will be used. - - **Name**=LoginProviderName - - **Display Name**=Use Token Authentication Provider Name - - **Type**=String - - **Default Value**={client preference} - - **Depends on**="UseTokenAuth" - - **Required**=unchecked - -Please note, after saving the store type, going back into this screen will show three additional Custom Fields: Server Username, Server Password, and Use SSL. These are added internally by Keyfactor Command and should not be modified. - -
- -
-Entry Parameters Tab - -Entry parameters are required ONLY if you will be taking advantage of the Reenrollment (ODKG - On Device Key Generation) capability of the F5 Big IQ Orchestrator Extension. When scheduling Reenrollment or Management jobs, some versions of Keyfactor Command may show multiple Alias and Overwrite fields. The ones below will be used for Reenrollment while the others will be used for Management. - -- **Alias** - required - The identifying name of the certificate - - **Name**=Alias - - **Display Name**=Alias (Reenrollment Only) - - **Type**=String - - **Default Value**=Leave Blank - - **Depends On**=unchecked - - **Required When**=Check Reenrolling an entry - -- **Overwrite** - required - Allow overwriting an existing certificate when reenrolling? - - **Name**=Overwrite - - **Display Name**=Overwrite (Reenrollment Only) - - **Type**=Bool - - **Default Value**=False - - **Depends On**=unchecked - - **Required When**=Check Reenrolling an entry - -- **SANs** - optional - External SANs for the requested certificate. Each SAN must be prefixed with the type (DNS: or IP:) and multiple SANs must be delimitted by an ampersand (&). Example: DNS:server.domain.com&IP:127.0.0.1&DNS:server2.domain.com - - **Name**=SANs - - **Display Name**=SANs (Reenrollment Only) - - **Type**=String - - **Default Value**=Leave Blank - - **Depends On**=unchecked - - **Required When**=Leave all unchecked - -
- -### 2\. Create an F5 Big IQ Certificate Store - -Navigate to Certificate Locations =\> Certificate Stores within Keyfactor Command to add the store. Below are the values that should be entered: - -- **Category** – Required. Select the Name you entered when creating the Certificate Store Type. Suggested value was F5 Big IQ. - -- **Container** – Optional. Select a container if utilized. - -- **Client Machine & Credentials** – Required. The full URL of the F5 Big IQ device portal. - -- **Store Path** – Required. Enter the name of the partition on the F5 Big IQ device you wish to manage. This value is case sensitive, so if the partition name is "Common", it must be entered as "Common" and not "common". - -- **Orchestrator** – Required. Select the orchestrator you wish to use to manage this store - -- **Deploy Certificate to Linked Big IP on Renewal** - Optional. Set this to True if you wish to deploy renewed certificates (Management-Add jobs with Overwrite selected) to all linked Big IP devices. Linked devices are determined by looking at all of the client-ssl profiles that reference the renewed certificate that have an associated virtual server linked to a Big IP device. An "immediate" deployment is then scheduled within F5 Big IQ for each linked Big IP device. - -- **Ignore SSL Warning** - Optional. Set this to True 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 chose not to add this Custom Field when creating the Certificate Store Type, the default value of False will be assumed. If this value is False (or missing) SSL warnings will cause errors during orchestrator extension jobs. - -- **Use Token Authentication** - Optional. Set this to True if you wish to use F5 Big IQ's token authentiation instead of basic authentication for all API requests. If you chose not to add this optional Custom Field when creating the Certificate Store Type, 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. - -- **Use Token Authentication Provider Name** - Optional - If Use Token Authentication is selected, you may optionally add a value for the authentication provider F5 Big IQ will use to retrieve the auth token. If you choose leave this field blank, the default of "TMOS" will be used. - - -- **Server Username/Password** - Required. The credentials used to log into the F5 Big IQ device to perform API calls. These values for server login can be either: - - - UserId/Password - - PAM provider information used to look up the UserId/Password credentials - - Please make sure these credentials have Admin rights on the F5 Big IQ device and can perform SCP functions as described in the F5 Big IQ Prerequisites section above. - -- **Use SSL** - N/A. This value is not referenced in the F5 Big IQ Orchestrator Extension. The value you enter for Client Machine, and specifically whether the protocol entered is http:// or https:// will determine whether a TLS (SSL) connection is utilized. - -- **Inventory Schedule** – Set a schedule for running Inventory jobs or "none", if you choose not to schedule Inventory at this time. \ No newline at end of file