Skip to main content

YAML based configuration automation for IBM Verify Identity Access

Project description

IBM Verify Identity Access Configuration Automation

This repository is used to configure IBM Verify Identity Access (IVIA), and IBM Security Verify Access (ISVA) using a yaml file of the required configuration.

This project aims to be idempotent, ie if the configuration is run multiple times on the same appliance it should not break and should pick up any configuration changes in the yaml configuration file.

Documentation

Documentation for using this library can be found on Verify Identity Access Automated Configurator's GitHub pages.

Example deployments

To get started several example deployments are available in the Examples directory. The example yaml files must be updated with deployment specific parameters, usually this is network addresses and IVIA activation codes.

Setup

Environment

  • IVIA_CONFIG_BASE :: directory which contains the YAML configuration file as well as any http template pages, PKI, mapping rules, ect.
  • depreciated ISVA_CONFIG_BASE = directory which contains the YAML configuration file as well as any http template pages, PKI, mapping rules, ect.
  • IVIA_CONFIG_YAML :: path to IVIA configuration yaml file. Path should be relative to IVIA_CONFIG_BASE
  • depreciated ISVA_CONFIG_YAML :: path to IVIA configuration yaml file. Path should be relative to IVIA_CONFIG_BASE
  • IVIA_MGMT_BASE_URL :: address to access IVIA LMI, eg. https://<isva appliance>:<isva port>. This property can also be specified in the configuration yaml file. If present, this property will take precedence.
  • depreciated ISVA_MGMT_BASE_URL :: address to access IVIA LMI, eg. https://<isva appliance>:<isva port>. This property can also be specified in the configuration yaml file. If present, this property will take precedence.
  • IVIA_MGMT_USER :: The user to perform configuration as. If not supplied then the provided password is used as an API access token.
  • depreciated ISVA_MGMT_USER :: The user to perform configuration as. If not supplied then the provided password is used as an API access token.
  • IVIA_MGMT_PWD :: administrator password for the administrator account performing configuration. This property can also be specified in the configuration yaml file. If present, this property will take precedence.
  • depreciated ISVA_MGMT_PWD :: Password for the administrator account performing configuration. This property can also be specified in the configuration yaml file. If present, this property will take precedence.
  • IVIA_MGMT_OLD_PWD :: If a password change for the administrator account (eg. from the default) is required, the old password can be specified with this environment variable. If present the administrator's password will be changed from MGMT_OLD_PASSWORD to MGMT_PASSWORD
  • depreciated ISVA_MGMT_OLD_PWD :: if a password change for the administrator account (eg. from the default) is required, the old password can be specified with this environment variable. If present the administrator's password will be changed from MGMT_OLD_PASSWORD to MGMT_PASSWORD
  • IVIA_KUBERNETES_YAML_CONFIG (optional) :: path to Kubernetes configuration yaml for kubernetes deployments.
    • Note: If your kubernetes cluster requires mutual authentication (TLS) then a pem certificate file must also be available to IBM VIA Configurator
    • Note: When run from a Kubernetes cluster a Service Account can be used in place of a YAML configuration file
  • depreciated ISVA_KUBERNETES_YAML_CONFIG (optional) :: path to Kubernetes configuration yaml for kubernetes deployments.
  • IVIA_EXT_USER :: The user to continue configuration as once the Management Authentication configuration has been applied. This may be required if you are using an external LDAP registry or OIDC identity provider for management authentication. If external authentication has previously been configured, then the credentials should be set as the IVIA_MGMT_USER and IVIA_MGMT_PWD properties.
  • IVIA_EXT_PWD :: The administrator password (or API token) to authenticate to the IVIA LMI as IVIA_EXT_USER.

Deployment

Local environment

IBM Verify Identity Access Configuration Automation is simple to run locally.

  1. Install the required python packages from PyPi.
  2. Set the required environment variables
  3. Invoke the python module from the command line.
python -m ibmvia_autoconf

Docker

IBM Verify Identity Access Automated Configurator can also be run within a docker container. Use to Dockerfile to build a local docker image.

The docker container can be built and run with the following command executed from the top level directory of the configurator source code. When starting the container the required environment variables must be set and the docker container must be able to route to the IVIA appliances/containers which are to be configured.

docker build --no-cache --force-rm -t verify-identity-access-configurator .

docker run --volume /path/to/config/yaml:/config \
            --env "IVIA_CONFIGURATION_BASE_DIR=/config" \
            --env IVIA_MGMT_BASE_URL="https://<mgmt address>:<mgmt port>" \
            --env "IVIA_MGMT_PASSWORD=Passw0rd1!" \
            verify-identity-access-configurator

Kubernetes

IBM Verify Identity Access Automated Configurator can be run from within a Kubernetes cluster. This is useful if there are routing issues between the deployment host and the kubernetes external addresses this option will allow for configuration using the kubernetes internal network.

Here is an example Kubernetes batch" object which deploys a container to apply a configuration to a cluster.

note This requires a user to create the verify-config ConfigMap object with the required configuration files plus any additional Secrets which are referenced as environment variables.

apiVersion: batch/v1
kind: Job
metadata:
  name: verify-identity-access-configurator
spec:
  template:
    spec:
      containers:
      - name: verify-identity-access-configurator
        image: python:latest
        command: 
        - "bash"
        - "-c"
        - |
          pip install ibmvia-autoconf
          python3 -m ibmvia_autoconf
        volumeMounts:
        - name: verify-access-config-vol
          mountPath: /verify_access_config
        envFrom:
        - secretRef:
            name: verify-access-autoconf-env
      restartPolicy: Never
      volumes:
      - name: verify-config
        configMap:
      - name: verify-access-config-vol
        emptyDir: {}
      initContainers:
      - name: config-volume-builder
        image: python:latest
        volumeMounts:
        - mountPath: /verify_access_config
          name: verify-access-config-vol
        - mountPath: /tmp/verify_access_config
          name: verify-config
        command:
        - "bash"
        - "-c"
        - |
          apt update && apt install -y unzip;
          cp /tmp/verify_access_config/*.{p12,pem,yaml} /verify_access_config/
          unzip /tmp/verify_access_config/mapping_rules.zip -d /verify_access_config/
  backoffLimit: 4

Building

To build locally:

mkdir .pyenv
virtualenv .pyenv
source .pyenv/bin/activate
pip install -r dev-requirements.txt
python setup.py sdist bdist_wheel

The generated wheel can then be installed into a docker container and used in any supported container runtime.

Troubleshooting install

In some python environments you may encounter erros like the following

AttributeError: cython_sources

To resolve this, install setuptools and then install ibmvia_autoconf with the --no-build-isolation flag:

pip install setuptools
pip install --no-build-isolation ibmvia_autoconf

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ibmvia_autoconf-0.3.14.tar.gz (95.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ibmvia_autoconf-0.3.14-py3-none-any.whl (98.0 kB view details)

Uploaded Python 3

File details

Details for the file ibmvia_autoconf-0.3.14.tar.gz.

File metadata

  • Download URL: ibmvia_autoconf-0.3.14.tar.gz
  • Upload date:
  • Size: 95.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for ibmvia_autoconf-0.3.14.tar.gz
Algorithm Hash digest
SHA256 3a15a09e556cab44e95e7982db5a4d94352e016a3705e9f77b60d2cc5ddde820
MD5 0a2d3f89d19d31ddadb079890682d082
BLAKE2b-256 c5f8fc96cbcb5103d5b885a56d68b75b37ca5cea1c72f594534c4b778b5c6535

See more details on using hashes here.

File details

Details for the file ibmvia_autoconf-0.3.14-py3-none-any.whl.

File metadata

File hashes

Hashes for ibmvia_autoconf-0.3.14-py3-none-any.whl
Algorithm Hash digest
SHA256 6676dae5d81533e0a1dead92a4d3b35bb4efc2d6bcb12c7ecbde6c4b2e708891
MD5 0ba29379308e0efed2ebf2bcc24f6e36
BLAKE2b-256 0e76ab8654b3cf0cd865d74a295953b55afe332b1ce149db7b6687297418c3c0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page