mirror of
https://github.com/minio/minio.git
synced 2024-12-26 07:05:55 -05:00
5f78691fcf
This change uses the updated ldap library in minio/pkg (bumped up to v3). A new config parameter is added for LDAP configuration to specify extra user attributes to load from the LDAP server and to store them as additional claims for the user. A test is added in sts_handlers.go that shows how to access the LDAP attributes as a claim. This is in preparation for adding SSH pubkey authentication to MinIO's SFTP integration.
80 lines
2.5 KiB
Go
80 lines
2.5 KiB
Go
// Copyright (c) 2015-2021 MinIO, Inc.
|
|
//
|
|
// This file is part of MinIO Object Storage stack
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU Affero General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU Affero General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Affero General Public License
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
package cmd
|
|
|
|
import (
|
|
"github.com/minio/minio/internal/auth"
|
|
"github.com/minio/minio/internal/config"
|
|
"github.com/minio/minio/internal/config/compress"
|
|
xldap "github.com/minio/minio/internal/config/identity/ldap"
|
|
"github.com/minio/minio/internal/config/identity/openid"
|
|
"github.com/minio/minio/internal/config/notify"
|
|
"github.com/minio/minio/internal/config/policy/opa"
|
|
"github.com/minio/minio/internal/config/storageclass"
|
|
"github.com/minio/minio/internal/logger"
|
|
"github.com/minio/pkg/v3/quick"
|
|
)
|
|
|
|
// FileLogger is introduced to workaround the dependency about logrus
|
|
type FileLogger struct {
|
|
Enable bool `json:"enable"`
|
|
Filename string `json:"filename"`
|
|
}
|
|
|
|
// ConsoleLogger is introduced to workaround the dependency about logrus
|
|
type ConsoleLogger struct {
|
|
Enable bool `json:"enable"`
|
|
}
|
|
|
|
// serverConfigV33 is just like version '32', removes clientID from NATS and MQTT, and adds queueDir, queueLimit in all notification targets.
|
|
type serverConfigV33 struct {
|
|
quick.Config `json:"-"` // ignore interfaces
|
|
|
|
Version string `json:"version"`
|
|
|
|
// S3 API configuration.
|
|
Credential auth.Credentials `json:"credential"`
|
|
Region string `json:"region"`
|
|
Worm config.BoolFlag `json:"worm"`
|
|
|
|
// Storage class configuration
|
|
StorageClass storageclass.Config `json:"storageclass"`
|
|
|
|
// Notification queue configuration.
|
|
Notify notify.Config `json:"notify"`
|
|
|
|
// Logger configuration
|
|
Logger logger.Config `json:"logger"`
|
|
|
|
// Compression configuration
|
|
Compression compress.Config `json:"compress"`
|
|
|
|
// OpenID configuration
|
|
OpenID openid.Config `json:"openid"`
|
|
|
|
// External policy enforcements.
|
|
Policy struct {
|
|
// OPA configuration.
|
|
OPA opa.Args `json:"opa"`
|
|
|
|
// Add new external policy enforcements here.
|
|
} `json:"policy"`
|
|
|
|
LDAPServerConfig xldap.LegacyConfig `json:"ldapserverconfig"`
|
|
}
|