UMA Service#
New in version 2.0.
Starting in 2.0, ESS provides a User Managed Access Grant 2.0 (UMA) service. This service allows clients to exchange a token or credential in one format for an access token that can be used when interacting with a Pod resource. For example, a client can exchange an OpenID Connect ID token along with one or more Verifiable Credential documents for a single access token.
ESS’ UMA service is responsible for handling the UMA authorization flow.
If an agent tries to access a Pod resource on ESS, ESS directs the resource request to the UMA authorization service which checks to see if the agent has the appropriate access privileges:
If the agent does not have the appropriate access privileges, the UMA flow allows for the user to acquire the appropriate access privilege through an iterative exchange (e.g., first with an access grant VC and then with the ID token). These access privileges are enforced with the ACP data model.
UMA Service Endpoint#
By default, the ESS UMA Service runs from the following root URL:
https://uma.<ESS Domain>
To change the root UMA service URL, see INRUPT_UMA_ISSUER
.
Discovery#
ESS provides a metadata resource /.well-known/uma2-configuration
from the root UMA service URL:
https://uma.<ESS DOMAIN>/.well-known/uma2-configuration
The endpoint returns the current deployment’s UMA service configuration.
UMA Flow Support#
The following ESS services support the use of UMA authorization flow to access Pod resources:
For QPF Service’s UMA-related configuration, see:
For Pod Storage Service’s UMA-related configuration, see:
Configuration#
As part of the installation process, Inrupt provides base Kustomize overlays and associated files that require deployment-specific configuration inputs.
The following configuration options are available for the service and may be set as part of updating the inputs for your deployment. The Inrupt-provided base Kustomize overlays may be using updated configuration values that differ from the default values.
Required#
- INRUPT_UMA_ISSUER#
The URI of the issuer service.
See also:
INRUPT_AUTHZ_AS_URI
configuration for Pod Services.INRUPT_AUTHZ_AS_URI
configuration for Query Service.INRUPT_AUTHZ_AS_URI
configuration for Query Indexer.
- INRUPT_UMA_VC_VERIFIER#
The URI of the VC HTTP API verifier.
- SMALLRYE_JWT_SIGN_KEY_LOCATION#
The location of a signing key in JWK format.
See also:
SMALLRYE_JWT_ENCRYPT_KEY_LOCATION
configuration for Pod Services.
- QUARKUS_GRPC_CLIENTS_AUTHZ_HOST#
The gRPC host of the Authorization Server.
- QUARKUS_GRPC_CLIENTS_AUTHZ_PORT#
The gRPC port of the Authorization Server.
Kafka Configuration#
Tip
See also ESS’ Kafka Configuration.
- KAFKA_BOOTSTRAP_SERVERS#
Default:
localhost:9092
Comma-delimited list of Kafka broker servers for use by ESS services, including this service.
Setting
KAFKA_BOOTSTRAP_SERVERS
configures ESS to use the same Kafka instance(s) for all its Kafka message channels (e.g.,solidresource
andauditv1out
message channels). This service uses theauditv1out
message channel.Note
Inrupt-provided overlays default to using
KAFKA_BOOTSTRAP_SERVERS
.To use a different Kafka instance for the
auditv1out
channel, use specific message channel configuration.See also ESS’ Kafka Configuration.
- INRUPT_KAFKA_AUDITV1EVENTSENCRYPTED_CIPHER_PASSWORD#
The strong cipher key to use when running auditing with encrypted messages.
Optional#
- QUARKUS_LOG_LEVEL#
Default:
INFO
Logging level.
- INRUPT_UMA_DPOP_ALGORITHMS#
Default:
ES256, RS256
The permitted DPoP proof algorithms.
- SMALLRYE_JWT_NEW_TOKEN_LIFESPAN#
Default:
300
The number of seconds that tokens will live.
- INRUPT_VC_ISSUER#
The discoverable issuer of verifiable credentials.
- INRUPT_JWT_ISSUER_ALLOW_LIST#
A comma-separated list of trusted Solid-OIDC issuers (i.e., identity providers).
If unset, the service accepts all Solid-OIDC issuers with the exception of those in the
INRUPT_JWT_ISSUER_DENY_LIST
.If set, the service accepts only those Solid-OIDC issuers in the list with the following exception:
If an issuer is in both
INRUPT_JWT_ISSUER_ALLOW_LIST
andINRUPT_JWT_ISSUER_DENY_LIST
, theINRUPT_JWT_ISSUER_DENY_LIST
supersedes theINRUPT_JWT_ISSUER_ALLOW_LIST
and the issuer is not accepted by ESS.
See also
INRUPT_JWT_ISSUER_DENY_LIST
.
- INRUPT_JWT_ISSUER_DENY_LIST#
A comma-separated list of disallowed Solid-OIDC issuers.
If unset, the service accepts all Solid-OIDC issuers unless
INRUPT_JWT_ISSUER_ALLOW_LIST
is set, in which case, the service only accepts those in theINRUPT_JWT_ISSUER_ALLOW_LIST
.If set, the service disallows the Solid-OIDC issuers in the list. If
INRUPT_JWT_ISSUER_ALLOW_LIST
is also set, issuers not in theINRUPT_JWT_ISSUER_ALLOW_LIST
are also disallowed.
- INRUPT_JWT_ALLOWED_SIGNATURE_ALGORITHMS#
Default:
ES256
,RS256
A comma-separated list that specifies the allowed encryption algorithms used to sign ID tokens.
Additional Information#
See also https://quarkus.io/guides/all-config.