Runtime Database Configuration

Runtime Database configuration

To configure postgres as runtime database, update the database_name, host, port, credential and ssl_settings in the given sample below and copy it into storage.yml.

When session_cache is configured to be type db, the runtime_db configuration is used as session store.

PostgreSQL Runtime Database configuration sample

runtime_db: mypq                                            # Configuration of runtime database. Points to the database server connection.
session_cache:
  type: db                                                  # Specifies the type of session cache, in-memory, redis, or db.
  # cfg: redis-standalone                                   # Specifies the configuration of the `redis` cache, for `redis` type only. Points to `redis` server connection
  # life_time: 600                                          # Specifies the session entry duration in seconds. It applies to `in-memory` type sessions only. Default is `600`
  # max_entries: 60000                                      # Specifies the maximum number of session entries. It applies to `in-memory` type sessions only. Default is `60000`
server_connections:                                         # Server connections
  - name: mypq                                              # Connection name
    type: postgresql                                        # Connection type, `redis`, `ldap`, `postgresql`, `oracle`
    database_name: verify-access                            # Specifies the database or service name. For database types only.
    hosts:                                                  # List of host information (IP and port)
      - hostname: postgresql                                # Server's hostname
        hostport: 5432                                      # Server's host port
    credential:                                             # Credential information to connect to the server
      username: postgres                                    # Specifies the username to access the server.
      password: 'OBF:gJDSuqEFmORCR2Uw3FsAmFKomjYLmhMwdDG2XoUxtQ0='
                                                            # Specifies the password to access the server. It is recommended to obfuscate this.
    ssl:
      certificate:                                          # The SSL connection certificate array.
        - ks:postgres_keys                                  # The SSL keystore to be used for SSL connections. ks: indicates keystore.
      mutual_auth:
        key: ks:rt_profile_keys/postgres                    # When mutual TLS is needed, specify the keystore and label that contains the client's private key.
        certificate: ks:rt_profile_keys/postgres            # When mutual TLS is needed, specify the keystore and label of the client's leaf certificate.
        ca:                                                 
          - ks:rt_profile_keys/ca                           # When mutual TLS is needed, specify the keystore and label of the client's CA certificate.
      disable_hostname_verification: false                  # The SSL connection validates the hostname.
    conn_settings:                                          # Connection settings
      max_idle_time: 10                                     # Maximum idle time in seconds
      min_pool_size: 5                                      # Minimum connection pool size
      max_pool_size: 50                                     # Maximum connection pool size
      connect_timeout: 5                                    # Connect timeout, in seconds
      aged_timeout: 30                                      # Aged timeout, in seconds

Oracle Runtime Database configuration sample

runtime_db: myoracle                                        # Configuration of runtime database. Points to the database server connection.
session_cache:
  type: db                                                  # Specifies the type of session cache, in-memory, redis, or db.
server_connections:                                         # Server connections
  - name: myoracle                                          # Connection name
    type: oracle                                            # Connection type, `redis`, `ldap`, `postgresql`, `oracle`
    database_name: verify-access                            # Specifies the database or service name. For database types only.
    hosts:                                                  # List of host information (IP and port)
      - hostname: myoracle                                  # Server's hostname
        hostport: 2484                                      # Server's host port
    credential:                                             # Credential information to connect to the server
      username: SYSTEM                                      # Specifies the username to access the server.
      password: 'OBF:gJDSuqEFmORCR2Uw3FsAmFKomjYLmhMwdDG2XoUxtQ0='
                                                            # Specifies the password to access the server. It is recommended to obfuscate this.
    ssl:
      wallet:                                               # For Oracle database only. Oracle database uses client wallet for SSL connection and mutual TLS. The client wallet contains the certificates that are required for Oracle SSL connection and mutual TLS.
        type: path                                          # The type of content that is being supplied, either a zip file or a directory name. 
        content: oracle/wallet                              # The content that is used for the wallet. When the type is path, specify the path of the wallet.
        # type: zip                                         # The content is used for the wallet. When the type is zip, the content can be specified by using either @ or B64: annotation.
        # content: "@oracle/wallet.zip"                     # when type is zip, use @ annotation to specify the wallet zip file path.
        # content: "B64:UEsDBBQACAAIAAJg......+ScAAAAA"     # when type is zip, use B64: annotation to specify the base64 encoded wallet zip file.
      disable_hostname_verification: false                  # The SSL connection validates the hostname.
    conn_settings:                                          # Connection settings
      max_idle_time: 10                                     # Maximum idle time in seconds
      aged_timeout: 30                                      # Aged timeout, in seconds
      max_idle_size: 5                                      # Maximum connection idle size
      max_pool_size: 50                                     # Maximum connection pool size
      connect_timeout: 5                                    # Connect timeout, in seconds

Db2 Runtime Database configuration sample

runtime_db: mydb2                                           # Configuration of runtime database. Points to the database server connection.
session_cache:
  type: db                                                  # Specifies the type of session cache, in-memory, redis, or db.
server_connections:                                         # Server connections
  - name: mydb2                                             # Connection name
    type: db2                                               # Connection type, `redis`, `ldap`, `postgresql`, `oracle`, `db2`
    database_name: verify-access                            # Specifies the database or service name. For database types only.
    hosts:                                                  # List of host information (IP and port)
      - hostname: mydb2                                     # Server's hostname
        hostport: 50001                                     # Server's host port
    credential:                                             # Credential information to connect to the server
      username: db2inst1                                    # Specifies the username to access the server.
      password: 'OBF:gJDSuqEFmORCR2Uw3FsAmFKomjYLmhMwdDG2XoUxtQ0='
                                                            # Specifies the password to access the server. It is recommended to obfuscate this.
    ssl:
      certificate:                                          # The SSL connection certificate for Db2. The Db2 SSL connection certificate must use 'ks', '@' annotation to specify the keystore in P12 format, PEM file or 'B64'annotation to specify the base64 encoded PEM file. If multiple certificates are configured, the first certificate that is specified with '@' or 'B64:' annotation is used. 
        - '@keystore/rt_profile_keys/signer/ca.pem'         # '@' annotation to specify the certificate PEM file.
        # - 'b64:LS0tLS1CRUdJTiBD......tLQo='               # 'B64'annotation to specify the base64 encoded certificate PEM.
        # - 'ks:db2client'                                  # 'ks'annotation to specify keystore in P12 format.
      disable_hostname_verification: false                  # The SSL connection validates the hostname.
    conn_settings:                                          # Connection settings
      max_idle_time: 10                                     # Maximum idle time in seconds
      aged_timeout: 30                                      # Aged timeout, in seconds
      max_idle_size: 5                                      # Maximum connection idle size
      max_pool_size: 50                                     # Maximum connection pool size
      connect_timeout: 5                                    # Connect timeout, in seconds

Annotation used for Oracle database wallet when type is zip

  • When type is zip, the content can be specified by using either @ or B64: annotation.
  • @ represents a zip file. It uses a relative files system path that looks under /var/isvaop/config/.
  • B64: represents the literal value of the base64 encoded wallet zip file.
  • The zip file contains the wallet files only without any subfolders.

Annotation used for Db2 database SSL certificate

  • When database type is db2, the SSL certificate must be specified by using either ks, @ or B64: annotation.
  • @ represents a certificate file in PEM format. It uses a relative files system path that looks under /var/isvaop/config/.
  • B64: represents the literal value of the base64 encoded PEM format certificate.
  • ks: represents a keystore in P12 format, the password of the keystore should be stored in an associated .obf file with the same name.
    Note: It is recommended to use the gskit command line tool in the Db2 server to generate the P12 keystore.

1. Server connections

NameDescriptionValid ValueMandatoryDefault
nameConnection name.stringYes
typeConnection type.postgresql, oracle, or db2Yes
database_nameSpecifies the database or service name. For database types only.stringYes
hostsList of host information (IP and port)HostInfoYes
credentialCredential information to connect to the serverCredential
sslSSL settings, if missing the connection is non SSL.SSLSettings
conn_settingsConnection pool settings.ConnectionSettings

1.1. Host information

NameDescriptionValid ValueMandatoryDefault
hostnameRuntime Database Server's hostnamestringYes
hostportRuntime Database Server's host portintegerYes
credentialCredential information to connect to the Runtime Database Server.Credential
sslSSL settings for the Runtime Database Server.SSLSettings
conn_settingsConnection pool settings for the Runtime Database server.ConnectionSettings

1.2. Credential

NameDescriptionValid ValueMandatoryDefault
usernameSpecifies the username to access the server.stringYes
passwordSpecifies the password to access the server. Use obfuscation.string, recommended to be obfuscatedYes

1.3. SSL settings

NameDescriptionValid ValueMandatoryDefault
certificateThe array of SSL certificates to be used for SSL connection to the database.stringNo
mutual_authNo
keyWhen mutual TLS is needed, specify the keystore and label that contains the client's private key.stringNo
certificateWhen mutual TLS is needed, specify the keystore of the client's leaf certificate.stringNo
caWhen mutual TLS is needed, specify an array of CA certificates needed for the connection.stringNo
walletFor Oracle database only. Oracle database uses client wallet for SSL connection and mutual TLS. The client wallet contains the certificates that are required for Oracle SSL connection and mutual TLS.No
typeWhen wallet is needed, it is the type of content that is being supplied. Either a zip file or a directory name.path or zipNo
contentThe content that is used for the wallet. The content can either be the name of a directory, a relative to the /var/isvaop/config directory of the container, or a zip file.
disable_hostname_verificationThe flag to enable or disable hostname verification for SSL connections.BooleanNo

1.4. Connection settings

NameDescriptionValid ValueMandatoryDefault
min_pool_sizeMinimum connection pool sizeintegerNo5
max_idle_sizeMaximum connection idle sizeintegerNo10
max_pool_sizeMaximum connection pool sizeintegerNo50
max_idle_timeMaximum idle time in secondsintegerNo10
aged_timeoutAge timeout, in secondsintegerNo30
connect_timeoutConnect timeout, in secondsintegerNo5

1.5 Oracle Database Overview

1.5.1 Oracle Database Configuration Differences Between IBM Security Verify Access OIDC Provider (ISVAOP) and IBM Security Verify Access (ISVA)

ConfigureIBM Security Verify Access OIDC ProviderIBM Security Verify Access
SSL ConnectionTrusted certificates are supplied to ISVAOP using Oracle WalletTrusted certificates are supplied to ISVA using Certificate Store
Mutual TLSMutual TLS is supported by ISVAOP. Client certificates are supplied to ISVAOP using Oracle WalletMutual TLS is not supported by ISVA

1.5.2 Oracle Wallet Overview

Oracle Wallet is configuration files that store authentication and signing credentials.
Trusted certificates are stored in the Oracle Wallet when the wallet is used for security credentials.
ISVA OP requires an Oracle client wallet for SSL connection and mutual TLS. The cwallet.sso file must present.
See the Oracle Documentation to create or manage an Oracle wallet.

  • Go to the Oracle Database Documentation page in Oracle Help Center.
  • Select your version of Oracle Database.
  • In the Topics section, select Security.
  • In the Centralized User Management section, select Oracle Database Enterprise User Security Administrator's Guide.
  • See the chapter Using Oracle Wallet Manager.

Or click the following direct links.

1.5.3 Oracle Database Failover and High Availability

See the Oracle Database High Availability documentations to configure failover and high availability.

1.6 Db2 Database Overview

1.6.1 Db2 Database Host Configuration and High availability

Db2 server connection supports upto 2 hosts.
The first host is the primary server. If the second host exists, it is the alternate server.
The alternate server is used when the primary server cannot be contacted (Client Reroute.)
If there are more than two hosts configured, only the first two will be used.
See the Db2 high availability documentation to configure high availability.

1.6.2 Db2 Database Password rules and Limitations

See Db2 Password rules for drivers and CLPPlus for details.

1.6.3 Db2 Database SSL Configuration

When database type is db2, the SSL certificate must be specified by using either ks, @ or B64: annotation.
If multiple certificates are configured, the first certificate that is specified with @ or B64: annotation is used.

  • @ represents a certificate file in PEM format. It uses a relative files system path that looks under /var/isvaop/config/.
  • B64: represents the literal value of the base64 encoded PEM format certificate.
  • ks: represents a keystore in P12 format, the password of the keystore should be stored in an associated .obf file with the same name.
    Note: It is recommended to use the gskit command line tool in the Db2 server to generate the P12 keystore.
    IBM Security Verify Access OIDC Provider does not support Db2 database Mutual TLS authentication.