config-rfc-9068-token-exchange-authenticator
Configures the RFC 9068 Token Exchange authenticator.
config-rfc-9068-token-exchange-authenticator
[-c value | --configuration=value]
[-b value | --bootstrap-config=value]
[-e <true|false> | --enabled=<true|false>]
[--metadata-uri=value]
[--expected-issuer=value]
[--jwks=value]
[--jwks-uri=value]
[--jws-alg=value]
[--jwe-alg=value]
[--jwe-enc=value]
[--decryption-jwks=value]
[--max-clock-skew-seconds=value]
[--validate-aud-claim=<true|false>]
[--validate-may-act-claim=<true|false>]
[--validate-scope-claim=<true|false>]
[--expected-audience=value]
[--username-claim=value]
[--display-name-claim=value]
[--email-claim=value]
[--domain-claim=value]
[--domain-name=value]
[--domain-option=value]
[--clear-jws-alg=<true|false>]
[--clear-jwe-alg=<true|false>]
[--clear-jwe-enc=<true|false>]
[--clear-decryption-jwks=<true|false>]
[--clear-display-name-claim=<true|false>]
[--clear-email-claim=<true|false>]
Overview
This command is used for configuring the RFC 9068 token authenticator for use with the Token Exchange grant in the built-in OAuth2 Authorization Server.
Options
Option | Optional or Required | Default Value | Description |
---|---|---|---|
|
Optional | configuration.xml | The path to the server configuration file. |
|
Optional | none | The path to the bootstrap configuration file. See Bootstrap.xml file for more information about this file. |
|
Optional | none | Specifies whether or not the Token Exchange grant should be enabled. |
|
Optional | The URI to an OAuth 2.0 Authorization
Server Metadata document containing the basic information needed to verify
subject tokens.
The document must contain an 'issuer' and a 'jwks_uri'. If
this argument is not specified then
|
|
|
Optional | none | The expected issuer of the subject tokens.
This argument is mutually exclusive with the
|
|
Optional | none | A JSON Web Key Set (JWKS) containing the
keys needed to verify subject token signatures.
This argument is mutually exclusive with the
|
|
Optional | none | The URI to a JSON Web Key Set (JWKS)
containing the keys needed to verify subject token signatures.
This argument is mutually exclusive with the
|
|
Optional | none | The expected JWS algorithm ('alg' value).
If no algorithm is specified any (supported) algorithm, except 'none', is accepted. |
|
Optional | none | The expected JWE algorithm ('alg' value). If no algorithm is specified any (supported) algorithm is accepted. |
|
Optional | none | The expected JWE encryption method ('enc'
value).
If no encryption method is specified any (supported) encryption method is accepted. |
|
Optional | none | A JSON Web Key Set (JWKS) containing the
keys needed to decrypt subject tokens.
If no value is provided then subject tokens must be unencrypted. |
|
Optional | 60 | The maximum clock skew (in seconds) to be accepted when validating the expiration time. |
|
Optional | true | Specifies whether the 'aud' claim should be validated or not. |
|
Optional | true | Specifies whether the 'may_act' claim (if present) should be validated or not. |
|
Optional | true | Specifies whether the 'scope' claim (if present) should be validated or not. |
|
Optional | The URI of the Spotfire Server OAuth2 Token Endpoint | The expected value of the 'aud' claim. |
|
Optional | sub | The name of the claim to use as username for the authenticated users. May for example be 'email' but note that only 'sub' is guaranteed by the RFC 9068 specification to be present. The name of the claim is case sensitive. |
|
Optional | none | The name of the claim to use as display name for the authenticated users. The name of the claim is case sensitive. If no value is provided then the value of the username claim will be used. |
|
Optional | none | The name of the claim to use as email address for the authenticated users. The name of the claim is case sensitive. If no value is provided then no email address will be extracted. |
|
Optional | iss | The name of the claim to use as domain name
for the authenticated users. The name of the claim is case sensitive. May only
be specified if the value of the
--domain-option is 'use_domain_claim'.
|
|
Optional | none | The domain name which to assign the
authenticated users to. This argument is optional unless the value of the
--domain-option is 'use_static_domain'.
|
|
Optional | use_domain_claim | The way the domain of authenticated users will be established. May be one of 'use_domain_claim', 'use_static_domain' and 'parse_username_claim'. |
|
Optional | false | Specifying this flag will clear any previously configured JWS algorithm. |
|
Optional | false | Specifying this flag will clear any previously configured JWE algorithm. |
|
Optional | false | Specifying this flag will clear any previously configured JWE encryption method. |
|
Optional | false | Specifying this flag will clear any previously configured decryption JWKS. |
|
Optional | false | Specifying this flag will clear any previously configured display name claim. |
|
Optional | false | Specifying this flag will clear any previously configured email claim. |
Examples
config-oauth-server-token-exchange --enabled=true --metadata-uri=https://as.example.com/.well-known/oauth-authorization-server
config-oauth-server-token-exchange --enabled=true --metadata-uri=https://as.example.com/.well-known/oauth-authorization-server --domain-option=use_static_domain --domain-name=SPOTFIRE
config-oauth-server-token-exchange --enabled=true --metadata-uri=https://as.example.com/.well-known/oauth-authorization-server --display-name-claim=name --email-claim=email
Background
OAuth2 Token Exchange (RFC 8693) allows the Spotfire Server to delegate certain authentication and authorization decisions to an external third-party Authorization Server. This is useful, for example, when embedding Spotfire in a portal, using the JavaScript API, by providing the possibility of a true single sign-on experience.
To use the feature, the Spotfire Server must be configured to trust subject tokens issued by the external authorization server. The subject tokens must comply with the JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens (RFC 9068). See also Using an external authorization server.