Security Properties
Security-Related Configuration Properties describes the properties for SBA Gateway security configuration.
Property | Description |
---|---|
gateway.security.basicAuth.enabled | When set to true , enables basic authentication
to use services in the gateway. Define a username and password,
which matched by the AuthProvider to a username and password defined
in a map. The default value is false . |
gateway.security.basicAuth.username | When gateway.security.basicAuth.enabled is set
to true , specifies a username to be handled by the
AuthProvider to match the username defined in a map. |
gateway.security.basicAuth.password | When gateway.security.basicAuth.enabled is set
to true , specifies a password to be handled by the
AuthProvider to match the password defined in a map. |
gateway.security.tls.enabled | When set to true , enables Transport Layer Security (TLS), that is HTTP/SSL. The default value is true . The default value is
false . |
gateway.security.tls.host | The interface on which to listen for incoming secure connections. |
gateway.security.tls.port | Ther secure HTTP port. |
gateway.security.tls.securityType | Specifies either a certificate or a Java key store for HTTPS
connections. The default value is keyStore . |
gateway.security.tls.keystore.type | When gateway.security.tls.securityType is set to keyStore , this specifies the key store type containing the signed network function
certificate. SBA Gateway looks for this path on in the file system first, then the classpath.
The default value is JKS . |
gateway.security.tls.keystore.password | The key store password. |
gateway.security.tls.keystore.path | The path to the key store. The default value is /opt/mtx/conf/keystore/keystore.jks. |
gateway.security.tls.truststore.type | The trust store type containing the root certificate. The default value is JKS . |
gateway.security.tls.truststore.password | The trust store password. |
gateway.security.tls.truststore.path | The path to the trust store. The default value is /opt/mtx/conf/keystore/truststore.jks. |
gateway.security.tls.cert.certPath | The path to the certificate. The default value is /opt/mtx/conf/keystore/cert.crt. |
gateway.security.tls.cert.keyPath | The path to the key. The default value is /opt/mtx/conf/keystore/cert.key. |
gateway.security.tls.trustcert.certPath | The path to the certificate in the trust store. The default value is /opt/mtx/conf/keystore/trustcert.crt. |
gateway.security.tls.trustcert.keyPath | The path to the key in the trust store. The default value is /opt/mtx/conf/keystore/cert.key. |
gateway.security.tls.mutualAuth.enabled | When set to true , two-way authentication is
enabled. The default value is true . |
gateway.security.tls.insecure | When set to true , all TLS certificates are
trusted. The default value is false .Note: Trusting all TLS certificates must be used
in testing environments only. |
gateway.security.oauth.enabled | When set to true , If OAuth is enabled and
configured to expect keys signed using RSA keys, the network
function tries to verify a token using a certificate. Normally this
is the certificate of the NRF. The network function is configured to
look for the certificate used for token verification by looking in
the configured keystore for an alias. The default value is
false . |
gateway.security.oauth.jwtSigningKeyType | Specifies whether to use a pre-shared secret (HMAC) or a
public/private key pair (RSA). The default value is
HMAC . |
gateway.security.oauth.hmac.key | The pre-shared secret. Must be at least 32 bytes long. |
gateway.security.oauth.hmac.type | The secret type, either PLAIN or
base64 . The default value is
PLAIN . |
gateway.security.oauth.keystore.type | The OAuth key store type containing the OAuth secret. The default value is JKS . |
gateway.security.oauth.keystore.path | The path to the OAuth key store. The network function looks for this path on in the file system first, then the classpath. The default value is /opt/mtx/conf/keystore/truststore.jks. |
gateway.security.oauth.keystore.password | The OAuth keystore password. |
gateway.security.oauth.keystore.nrfCertAlias | The NRF certificate alias. The keytool command
alias parameter must match this value. The default value is
nrf . |
gateway.security.oauth.keystore.nrfCertSubjectMatch | The RDN field in the certificate subject to match with the issuer
of an access token. The default value is
CN . |
gateway.security.oauth.certificate.keyPath | The path to the OAuth certificate key. The default value is /opt/mtx/conf/keystore/cert.key. |
gateway.security.oauth.certificate.nrfCertAlias | The OAuth NRF certificate alias. The default value is
nrf . |
gateway.security.oauth.certificate.algorithm | The OAuth certificate algorithm. The default value is
RSA . |
gateway.security.oauth.allowedNfInstanceIds | A list of allowed NF instance IDs. |
The following gateway.yaml excerpt shows the common configuration default values (where defaults exist) for these properties:
# Settings Related to the SBA Gateway on which a Network Function runs
gateway:
security:
# HTTP Basic Authentication Settings
basicAuth:
enabled: false
username: username
password: password
# Transport Layer Security (TLS) i.e. HTTP / SSL
tls:
enabled: false
# Interface on which to listen for incoming secure connections
host: 0.0.0.0
# Secure port
# Setting to zero will also disable TLS (takes precedent over enabled)
port: 9099
# Defines if we will be loading a cert or java key store for https
securityType: keyStore
# Key store containing signed Network Function certificate.
# NOTE: SBA will look for this path on the filesystem first. If it is not found it will search the classpath.
keystore:
type: JKS
path: /opt/mtx/conf/keystore/keystore.jks
password: password
# Trust store containing Root Certificate.
truststore:
type: JKS
path: /opt/mtx/conf/keystore/truststore.jks
password: password
# Key store containing signed Network Function certificate.
# NOTE: SBA will look for this path on the filesystem second. If it is not found it will search the classpath.
cert:
certPath: /opt/mtx/conf/keystore/cert.crt
keyPath: /opt/mtx/conf/keystore/cert.key
trustcert:
certPath: /opt/mtx/conf/keystore/trustcert.crt
keyPath: /opt/mtx/conf/keystore/trustcert.key
# Is TLS Mutual Auth Authentication enabled
# Is TLS Mutual Auth Authentication enabled
mutualAuth:
enabled: true
# Should all TLS certificates be trusted? (insecure - for testing only)
insecure: false
# OAuth
oauth:
enabled: false
# HMAC/RSA - Use a pre-shared secret or public/private key pair
jwtSigningKeyType: HMAC
hmac:
key: secret_that_must_be_at_least_32_bytes_long
type: PLAIN # plain/base64
# NOTE: SBA will look for this path on the filesystem first. If it is not found it will search the classpath.
keystore:
type: JKS
path: /opt/mtx/conf/keystore/truststore.jks
password: password
nrfCertAlias: nrf
# Which RDN field in the certificate subject to match against
# the issuer of an access token (CommonName by default)
nrfCertSubjectMatch: CN
certificate:
keyPath: /opt/mtx/conf/keystore/cert.key
nrfCertAlias: nrf
algorithm: RSA
# List of allowed NF instance IDs
allowedNfInstanceIds: []
For more information about these configuration properties, see the discussion about SBA Gateway security in MATRIXX Security.