OpenID Connect Identity Management
AIStor supports using an OpenID Connect (OIDC) identity provider (IDP) such as Okta, KeyCloak, Dex, Google, or Facebook for external management of user identities.
This page explains how to configure an OIDC provider for AIStor on Kubernetes and bare-metal infrastructures.
See OpenID Connect Access Management for how to set up appropriate access controls for OIDC-managed identities.
This procedure is generic for OIDC compatible providers. Refer to the documentation for the OIDC provider of your choice for specific information.
Prerequisites
OpenID-Connect (OIDC) provider
This procedure assumes an existing OIDC provider such as Okta, KeyCloak, Dex, Google, or Facebook. Instructions on configuring these services are out of scope for this procedure.
The AIStor deployment must have bidirectional network connectivity to the target OIDC service.
Ensure each user identity intended for use with AIStor has the appropriate claim configured such that AIStor can associate a policy to the authenticated user. An OpenID user with no assigned policy has no permission to access any action or resource on the AIStor cluster.
Access to AIStor Cluster
This procedure uses mc for performing operations on the AIStor cluster.
Install mc on a machine with network access to the cluster.
See the mc Installation Quickstart for instructions on downloading and installing mc.
This procedure assumes a configured alias for the AIStor cluster.
Configure AIStor for an OIDC provider
-
Provide the OIDC configuration settings.
You can configure the provider using either environment variables or server runtime configuration settings. You can also create the configuration in the AIStor console. All methods require starting/restarting the AIStor deployment to apply changes.
-
Restart the AIStor Deployment
You must restart the AIStor deployment to apply the configuration changes. Run the
mc admin service restartcommand to restart the deployment.mc admin service restart ALIASReplace
ALIASwith the alias of the deployment to restart. -
Use the console to log in with OIDC credentials
The AIStor console supports the full workflow of authenticating to the provider, generating temporary credentials using the AIStor
AssumeRoleWithWebIdentitySecurity Token Service (STS) endpoint, and logging the user into the AIStor deployment.Go to the root URL for the deployment, for example
https://minio.example.net:9000.After you log in, you can perform any action for which your account is authorized.
-
Generate credentials for application authentication
Clients should authenticate using AWS Signature Version 4 protocol, although AIStor maintains backward compatibility to support the deprecated Signature Version 2 protocol. Clients must present a valid access key and secret key to access any S3 or AIStor administrative API, such as
PUT,GET, andDELETEoperations.You can create access keys to support applications that must perform operations on AIStor. Access keys are long-lived credentials that inherit their permissions from the parent user.
Alternatively, applications can generate temporary access credentials as needed with the
AssumeRoleWithWebIdentitySecurity Token Service (STS) API endpoint and OIDC user credentials.The application must provide a workflow for logging into the provider and retrieving the JSON Web Token (JWT) associated with the authentication session. Refer to the provider documentation for obtaining and parsing the JWT token after successful authentication. See the example Go application web-identity.go for this workflow.
Call the
AssumeRoleWithWebIdentityendpoint with the JWT to generate the temporary credentials:POST https://aistor.example.net?Action=AssumeRoleWithWebIdentity &WebIdentityToken=TOKEN &Version=2011-06-15 &DurationSeconds=86400 &Policy=Policy-
Replace
TOKENwith the JWT token returned in the previous step. -
Replace
DurationSecondswith the duration in seconds until the temporary credentials expire. The example specifies a period of86400seconds, or 24 hours. -
Replace
Policywith an inline URL-encoded JSON policy that further restricts the permissions associated to the temporary credentials.Omit to use the policy associated with the OIDC user policy claim.
The API response consists of an XML document containing the access key, secret key, session token, and expiration. Applications can use the access key and secret key to access and perform operations on AIStor.
See the
AssumeRoleWithWebIdentityfor reference documentation. -
Microsoft Entra ID
AIStor supports Microsoft Entra ID (formerly Azure AD) as an OIDC provider with enhanced integration for fetching user group memberships using the Microsoft Graph API.
azure_use_group_id.
If you have an existing Microsoft Entra ID configuration, you must update it to use the new azure_tenant_id setting.
See Migrating from azure_use_group_id for migration instructions.
Prerequisites for Microsoft Entra ID
Before configuring AIStor for Microsoft Entra ID, you must:
-
Register an application in Microsoft Entra ID
Note the Application (client) ID and Directory (tenant) ID
-
Create a client secret
Copy the secret value as you cannot retrieve it later.
-
Configure API permissions
AIStor requires the following
readpermissions:User.Read.All- grants access to user profiles and group membershipsGroup.Read.All- grants access to group information
Configure AIStor for Microsoft Entra ID
How Microsoft Entra ID authentication works
When a user authenticates with Microsoft Entra ID:
- The user authenticates through the Microsoft Entra ID flow.
- AIStor receives an access token and extracts the user’s object ID (
oidclaim). - Using the configured tenant ID, client ID, and client secret, AIStor authenticates to the Microsoft Graph API.
- AIStor queries the Graph API to fetch all groups to which the user belongs.
- These groups are added to the
azure_groupsclaim for policy mapping.
Mapping Microsoft Entra ID groups to policies
AIStor lets you manage policies using human-readable Microsoft Entra ID group names. These APIs automatically translate between group names and their corresponding UUIDs (object IDs) using the Microsoft Graph API.
When users authenticate, they receive permissions from all policies matching their Microsoft Entra ID group memberships.
Group membership refresh
AIStor fetches user group memberships from Microsoft Entra ID at authentication time and refreshes them approximately every hour. The periodic refresh interval varies between 30-90 minutes to distribute load across the system.
Migrating from azure_use_group_id
If you configured Microsoft Entra ID prior to AIStor Server RELEASE.2025-12-20T04-58-37Z, you must update your configuration to use the new azure_tenant_id setting.
-
Retrieve your Microsoft Entra ID tenant ID
The
tenant IDis also known as theDirectory ID. -
Update your AIStor configuration
-
Ensure API permissions are configured
The new integration requires Microsoft Graph API permissions. Verify your Microsoft Entra ID app registration has:
User.Read.All(Application permission)Group.Read.All(Application permission)- Admin consent granted for these permissions
-
Restart AIStor
Run
mc admin service restartto apply the configuration changes.