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 baremetal 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 restart
command to restart the deployment.mc admin service restart ALIAS
Replace
ALIAS
with 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
AssumeRoleWithWebIdentity
Security 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
, andDELETE
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 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
AssumeRoleWithWebIdentity
endpoint 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
TOKEN
with the JWT token returned in the previous step. -
Replace
DurationSeconds
with the duration in seconds until the temporary credentials expire. The example specifies a period of86400
seconds, or 24 hours. -
Replace
Policy
with 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
AssumeRoleWithLDAPIdentity
for reference documentation. -