Configuration Options

MicroProfile configuration options:

keytypedefault valuedescription
mp.jwt.verify.publickeystring The property allows the Public Verification Key text itself to be supplied as a string.
mp.jwt.verify.publickey.locationstring The property allows for an external or internal location of Public Verification Key to be specified. The value may be a relative path or a URL.
mp.jwt.verify.publickey.algorithmstring The configuration property allows for specifying which Public Key Signature Algorithm is supported by the MP JWT endpoint. This property can be set to either RS256 or ES256. Default value is RS256. Support for the other asymmetric signature algorithms such as RS512, ES512 and others is optional.

Optional configuration options:

keytypedefault valuedescription
optionalbooleanfalseIf set to true, failure to authenticate will return ABSTAIN result instead of FAILURE. This is an important distinction when more than one provider is used
authenticatebooleantrueWhether to attempt authentication
propagatebooleantrueWhether to attempt identity propagation/JWT creation
principal-typestringUSERWhether we authenticate a user or a service (other option is SERVICE)
atn-tokenstringA group for configuring authentication of the request
atn-token.verify-signaturebooleantrueWhether to verify signature in incoming JWT. If disabled, ANY JWT will be accepted
atn-token.jwt-audiencestring Expected audience of the JWT. If not defined, any audience is accepted (and we may accept JWT not inteded for us)
atn-token.jwk.resource.*string Configuration of the JWK to obtain key(s) to validate signatures of inbound token. The JWK should contain public keys. This may be: jwk.resource.path, jwk.resource.resource-path, jwk.resource.url, jwk.resource.content-plain (actual JSON string), jwk.resource.content (base64)
atn-token.handlerstringAuthorization header with `bearer ` prefixA handler configuration for inbound token - e.g. how to extract it
atn-token.handler.headerstring Name of a header the token is expected in
atn-token.handler.prefixstring Prefix before the token value (optional)
atn-token.handler.regexpstring Regular expression to obtain the token, first matching group is used (optional)
sign-tokenstring A group for configuring outbound security
sign-token.jwk.resource.*string Configuration of the JWK to use when generating tokens (follows same rules as atn-token.jwk above), this JWK must contain private keys when using asymmetric ciphers
sign-token.jwt-issuerstring When we issue a new token, this is the issuer to be placed into it (validated by target service)
sign-token.outboundstring A group for configuring outbound rules (based on transport, host and.or path)
sign-token.outbound.*.namestring A short descriptive name for configured target service(s)
sign-token.outbound.*.transportsstringanyAn array of transports this outbound matches (e.g. https)
sign-token.outbound.*.hostsstringanyAn array of hosts this outbound matches, may use * as a wild-card (e.g. *.oracle.com)
sign-token.outbound.*.pathsstringanyAn array of paths on the host this outbound matches, may use * as a wild-card (e.g. /some/path/*)
sign-token.outbound.*.outbound-tokenstringAuthorization header with `bearer ` prefixConfiguration of outbound token handler (same as atn-token.handler)
sign-token.outbound.*.outbound-token.formatstring Java text format for generating the value of outbound token header (e.g. "bearer %1$s")
sign-token.outbound.*.jwk-kidstring If this key is defined, we are generating a new token, otherwise we propagate existing. Defines the key id of a key definition in the JWK file to use for signing the outbound token
sign-token.outbound.*.jwt-kidstring A key to use in the generated JWT - this is for the other service to locate the verification key in their JWK
sign-token.outbound.*.jwt-audiencestring Audience this key is generated for (e.g. http://www.example.org/api/myService) - validated by the other service
sign-token.outbound.*.jwt-not-before-secondsstring5Makes this key valid this amount of seconds into the past. Allows a certain time-skew for the generated token to be valid before current time (e.g. when we expect a certain misalignment of clocks)
sign-token.outbound.*.jwt-validity-secondsstring1 dayToken validity in seconds