S3 Explorer Standalone Deployment
Deploy a standalone S3 browser with OIDC login and STS-based temporary credentials
Onyxia S3 Explorer is a browser-based file manager for S3-compatible object storage. Files can be previewed without leaving the explorer, including images, videos, PDFs, and text or source code with syntax highlighting.
For data workflows, CSV, JSON, and Parquet files can be explored as tabular data directly in the browser. Powered by DuckDB-Wasm, the explorer queries and streams data from object storage as needed, allowing even large files to be inspected quickly without downloading them in full first.
What makes Onyxia S3 Explorer suitable for multi-user production deployments is its native integration with your organization's identity provider and your storage provider's authorization system:
users sign in through OpenID Connect (OIDC);
Onyxia exchanges their OIDC access token for short-lived S3 credentials through STS, so users never need to copy or manage access keys;
the S3 provider's roles and policies remain authoritative over which buckets and objects each user can access; and
administrators can generate built-in bookmarks from identity claims, directing each user to their personal or project buckets.
The resulting flow is: OIDC sign-in → STS → temporary credentials → direct browser access to S3. Onyxia handles authentication, credential acquisition, and navigation; it does not become a data proxy or replace the authorization rules of the storage provider.
This page presents two deployment paths:
Quick evaluation without OIDC: deploy the explorer with almost no configuration and browse a public bucket. This lets you try the interface before setting up identity and storage integration, but it is not intended as a production architecture.
Production deployment with OIDC and STS: connect Onyxia to your identity provider and let users automatically obtain temporary, policy-scoped credentials.
If you only want to see the product running, start with the quick evaluation. If you are evaluating its production architecture, skip directly to Production Deployment: OIDC and STS.
The explorer runs entirely in the browser: Onyxia does not proxy S3 requests. The bucket you want to browse must therefore allow the origin of the Onyxia application, for example https://onyxia.example.com, in its CORS configuration.
Quick Evaluation: Deploy Without OIDC
In this mode, users create their own S3 profiles and provide an endpoint, a region, and, when required, an access key ID and secret access key. Use it to evaluate the explorer, not as a model for a multi-user production deployment.
Add the Onyxia Helm repository and create a values file:
Install Onyxia:
Open https://onyxia.example.com. Onyxia prompts you to create an S3 profile. Credentials are optional for buckets that allow anonymous access.
Try It With a Public Bucket
Create a profile with the following values:
Profile name:
aws_us-west-2_anonymous, for exampleURL of the S3 service:
https://s3.amazonaws.comDefault region:
us-west-2Anonymous access: enabled
After saving the profile, navigate to s3://multimedia-commons/ and add it to your bookmarks.
Because there is no backend in this deployment mode, user-created profiles, including any access keys, are stored in the browser's local storage. Do not enter long-lived credentials on a shared or untrusted device.
Production Deployment: OIDC and STS
In a production multi-user deployment, Onyxia can obtain temporary credentials for each user through OIDC and STS. Your storage provider must support AssumeRoleWithWebIdentity.
For a complete walkthrough that deploys Kubernetes, Keycloak, MinIO, and Onyxia from scratch, follow the installation tutorial. Its Data (S3) section includes the standalone S3 Explorer option.
InstallExample: MinIO and Keycloak
This example follows the MinIO configuration from onyxia-ops. It gives each user read/write access to a bucket derived from their username.
1. Configure the OIDC Client and Token Claims
Create a public OIDC client named onyxia-minio in Keycloak or your OIDC provider. It must use the Authorization Code flow with PKCE and must not have a client secret.
For a user named johnd, tokens issued to this client must contain:
an ID token with
preferred_username: "johnd"; anda JWT access token with
preferred_username: "johnd"and a hard-codedpolicy: "stsonly"claim.
In abbreviated form:
Payload of the ID Token. Used to construct the bookmarks.
Payload of the AccessToken sent to MinIO
Onyxia reads preferred_username from the ID token to build the bookmark. MinIO reads policy and preferred_username from the access token to authorize the STS request. The username must therefore have the same value in both tokens.
2. Configure MinIO's OIDC Trust and Policy
The relevant parts of the example MinIO values are:
MinIO uses the access token's policy claim to select the stsonly policy. It then substitutes the token's preferred_username claim in the resource names. For johnd, the policy grants S3 operations on the user-johnd bucket and its objects.
The user- prefix is a convention in this example, not an Onyxia requirement. If your user's bucket should be named exactly johnd, remove the prefix from both the MinIO policy resources and the Onyxia bookmark so that they continue to match.
If the bucket does not exist, Onyxia will ask the user if they want to create it.
3. Configure Onyxia
The following configuration creates a default profile and uses the ID token's preferred_username claim to create the matching personal-bucket bookmark:
Install the chart with the same Helm command used in the quick-evaluation example, then open https://onyxia.example.com.
For johnd, the complete flow is:
Onyxia authenticates the user through the public
onyxia-minioclient.Onyxia resolves the ID token's
preferred_usernameand displayss3://user-johnd/as a bookmark.Onyxia sends the access token to MinIO's STS endpoint.
MinIO selects the
stsonlypolicy and resolves its resource touser-johnd.MinIO returns temporary credentials that allow the browser to access that bucket.
Where to Put the S3 Configuration
The location of the S3 configuration depends on whether the Onyxia API is enabled:
Standalone deployment: set the configuration as JSON5 in
web.env.S3, as shown above.Full Onyxia deployment: set it in
api.regions[].data.S3. The Helm chart passes the first region's S3 configuration to the web application automatically.
For other identity and storage providers, see:
S3 ConfigurationOpenID Connect ConfigurationLast updated
Was this helpful?