AIStor supports configuring a single Active Directory or LDAP (AD/LDAP) service for external management of user identities.
Steps to integrate your AD/LDAP service:
Configure your AIStor cluster for AD/LDAP integration.
Access the AIStor console with AD/LDAP credentials.
Generate temporary credentials for application access with the AssumeRoleWithLDAPIdentity Security Token Service (STS) API
See the documentation for your AD/LDAP provider for detailed information about configuring user identities.
Prerequisites
Access to AIStor Cluster
These instructions use mc to perform actions on your AIStor cluster.
Install mc on a machine with network access to the cluster.
Make sure to configure an alias for your cluster.
AD/LDAP identity provider access
AIStor must have bidirectional network connectivity to the target AD/LDAP service.
AIStor requires a read-only access key with which it binds to perform authenticated user and group queries.
Ensure each AD/LDAP user and group has a corresponding policy on the AIStor deployment.
An AD/LDAP user with no assigned policy and with membership in groups with no assigned policy has no permission to access any action or resource on the MinIO cluster.
Configure AD/LDAP for AIStor
Create the AD/LDAP configuration
The mc idp ldap command controls AD/LDAP configurations for an AIStor deployment.
The following example sets all configurations for an AD/LDAP provider.
The minimum required settings are:
For more complete documentation on these settings, see mc idp ldap.
mc idp ldap offers additional features and improved validation over mc admin config set runtime configuration settings.
mc idp ldap supports the same settings asmc admin config and the identity_ldap configuration key.
The identity_ldap configuration key remains available for existing scripts and tools.
You can specify environment variables.
The server process applies the specified settings on the next startup.
For distributed deployments, you must specify the same values for all settings across all nodes.
Any differences between node configurations results in startup or configuration failures.
The following example code sets all environment variables for an AD/LDAP provider.
The minimum required variables are:
MINIO_IDENTITY_LDAP_SERVER_ADDR
MINIO_IDENTITY_LDAP_LOOKUP_BIND_DN
MINIO_IDENTITY_LDAP_LOOKUP_BIND_PASSWORD
MINIO_IDENTITY_LDAP_USER_DN_SEARCH_BASE_DN
MINIO_IDENTITY_LDAP_USER_DN_SEARCH_FILTER
exportMINIO_IDENTITY_LDAP_SERVER_ADDR="ldaps.example.net:636"exportMINIO_IDENTITY_LDAP_LOOKUP_BIND_DN="CN=xxxxx,OU=xxxxx,OU=xxxxx,DC=example,DC=net"exportMINIO_IDENTITY_LDAP_USER_DN_SEARCH_BASE_DN="dc=example,dc=net"exportMINIO_IDENTITY_LDAP_USER_DN_SEARCH_FILTER="(&(objectCategory=user)(sAMAccountName=%s))"exportMINIO_IDENTITY_LDAP_LOOKUP_BIND_PASSWORD="xxxxxxxxx"exportMINIO_IDENTITY_LDAP_GROUP_SEARCH_FILTER="(&(objectClass=group)(member=%d))"exportMINIO_IDENTITY_LDAP_GROUP_SEARCH_BASE_DN="ou=MinIO Users,dc=example,dc=net"exportMINIO_IDENTITY_LDAP_TLS_SKIP_VERIFY="off"exportMINIO_IDENTITY_LDAP_SERVER_INSECURE="off"exportMINIO_IDENTITY_LDAP_SERVER_STARTTLS="off"exportMINIO_IDENTITY_LDAP_SRV_RECORD_NAME=""exportMINIO_IDENTITY_LDAP_COMMENT="LDAP test server"
For Kubernetes deployments using the AIStor Operator, configure LDAP settings using environment variables in the ObjectStore custom resource.
<div class="mb-3 text-base font-bold">Enhanced in Operator RELEASE.2025-10-16T16-46-38Z</div>
<div
class="&_li]:marker:text-current [&_a]:underline [&_a]:decoration-1 [&_a]:underline-offset-4 hover:[&_a]:text-current [&_code]:bg-white dark:[&_code]:bg-slate-800 [&_pre]:mb-0 [&_pre_code]:bg-transparent!"
>
Support for securely referencing values from Kubernetes Secrets using <code>valueFrom.secretKeyRef</code> requires Operator version <code>RELEASE.2025-10-16T16-46-38Z</code> or later.
</div>
</div>
</div>
For security, store sensitive values like the LDAP bind password in a Kubernetes Secret and reference it using valueFrom.secretKeyRef.
This keeps credentials separate from the ObjectStore specification.
When configuring AD/LDAP group lookups, configure specific filters that return the minimum number of relevant groups for the purpose of supporting authentication.
Filters that return large group assignments increase the size of associated calls and resources.
Functions sensitive to large request or response bodies may exhibit unexpected behaviors as a result.
Restart the deployment
You must restart the deployment to apply the configuration changes.
If you configured AD/LDAP from the console, no additional action is required.
The console automatically restarts the deployment after you save the new configuration.
For the client or environment variable configuration, run mc admin service restart to restart the deployment:
mc admin service restart ALIAS
Replace ALIAS with the alias of the deployment to restart.
Log in to the console with AD/LDAP credentials
The AIStor Console supports the full workflow of authenticating to the AD/LDAP provider, generating temporary credentials using the AssumeRoleWithLDAPIdentity Security Token Service (STS) endpoint, and logging the user in.
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 STS credentials for application authentication
Clients must authenticate using AWS Signature Version 4 protocol with support for 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, and DELETE operations.
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 AssumeRoleWithLDAPIdentity Security Token Service (STS) API endpoint and AD/LDAP user credentials.
See the example Go application ldap.go for this workflow.
POST https://minio.example.net?Action=AssumeRoleWithLDAPIdentity
&LDAPUsername=USERNAME
&LDAPPassword=PASSWORD
&Version=2011-06-15
&Policy={}
Replace LDAPUsername with the username of the AD/LDAP user.
Replace LDAPPassword with the password of the AD/LDAP user.
Replace Policy with an inline URL-encoded JSON policy that
further restricts the permissions associated to the temporary
credentials.
Omit to use the policy whose name matches the Distinguished Name (DN) of the AD/LDAP user.
The API response consists of an XML document containing the access key, secret key, session token, and expiration date. Applications
can use this access key and secret key to access and perform operations on MinIO.