You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
chrislu
beb23b0ab5
feat: Implement configuration-driven identity providers for distributed STS
PROBLEM SOLVED:
- Identity providers were registered manually on each STS instance
- No guarantee of provider consistency across distributed deployments
- Authentication behavior could differ between S3 gateway instances
- Operational complexity in managing provider configurations at scale
IMPLEMENTATION:
- Add provider configuration support to STSConfig schema
- Create ProviderFactory for automatic provider loading from config
- Update STSService.Initialize() to load providers from configuration
- Support OIDC and mock providers with extensible factory pattern
- Comprehensive validation and error handling for provider configs
NEW COMPONENTS:
- weed/iam/sts/provider_factory.go - Factory for creating providers from config
- weed/iam/sts/provider_factory_test.go - Comprehensive factory tests
- weed/iam/sts/distributed_sts_test.go - Distributed STS integration tests
- test/s3/iam/STS_DISTRIBUTED.md - Complete deployment and operations guide
CONFIGURATION SCHEMA:
{
'sts': {
'providers': [
{
'name': 'keycloak-oidc',
'type': 'oidc',
'enabled': true,
'config': {
'issuer': 'https://keycloak.company.com/realms/seaweedfs',
'clientId': 'seaweedfs-s3',
'clientSecret': 'secret',
'scopes': ['openid', 'profile', 'email', 'roles']
}
}
]
}
}
DISTRIBUTED BENEFITS:
- ✅ Consistent providers across all S3 gateway instances
- ✅ Configuration-driven - no manual provider registration needed
- ✅ Automatic validation and initialization of all providers
- ✅ Support for provider enable/disable without code changes
- ✅ Extensible factory pattern for adding new provider types
- ✅ Comprehensive testing for distributed deployment scenarios
This completes the distributed STS implementation, making SeaweedFS
S3 Gateway truly production-ready for multi-instance deployments
with consistent, reliable authentication across all instances.
|
1 month ago |
.. |
admin
|
Admin UI: Fetch task logs (#7114)
|
2 months ago |
cluster
|
add CORS tests (#7001)
|
3 months ago |
command
|
refactor: Enhance existing NewS3ApiServer instead of creating separate IAM function
|
1 month ago |
credential
|
Filer Store: postgres backend support pgbouncer (#7077)
|
2 months ago |
filer
|
S3 API: Add SSE-KMS (#7144)
|
2 months ago |
filer_client
|
Admin UI: Add message queue to admin UI (#6958)
|
3 months ago |
glog
|
convert error fromating to %w everywhere (#6995)
|
3 months ago |
iam
|
feat: Implement configuration-driven identity providers for distributed STS
|
1 month ago |
iamapi
|
convert error fromating to %w everywhere (#6995)
|
3 months ago |
images
|
Migrates from disintegration/imaging c2019 to cognusion/imaging c2024. (#5533)
|
1 year ago |
kms
|
S3 API: Add integration with KMS providers (#7152)
|
1 month ago |
mount
|
weed/mount: refactor to use atomic type (#7157)
|
1 month ago |
mq
|
Context cancellation during reading range reading large files (#7093)
|
2 months ago |
notification
|
fix: dead letter message log message (#7072)
|
2 months ago |
operation
|
S3 API: Add SSE-S3 (#7151)
|
2 months ago |
pb
|
S3 API: Add SSE-S3 (#7151)
|
2 months ago |
query
|
move to https://github.com/seaweedfs/seaweedfs
|
3 years ago |
remote_storage
|
fix for baidu cloud storage
|
2 months ago |
replication
|
convert error fromating to %w everywhere (#6995)
|
3 months ago |
s3api
|
refactor: Enhance existing NewS3ApiServer instead of creating separate IAM function
|
1 month ago |
security
|
remove spoof-able request header (#7103)
|
2 months ago |
sequence
|
remove unused function
|
1 year ago |
server
|
S3 API: Add integration with KMS providers (#7152)
|
1 month ago |
sftpd
|
convert error fromating to %w everywhere (#6995)
|
3 months ago |
shell
|
Shell: support regular expression for collection selection (#7158)
|
1 month ago |
static
|
Fix Broken Links (#5287)
|
2 years ago |
stats
|
[volume] refactor and add metrics for flight upload and download data limit condition (#6920)
|
3 months ago |
storage
|
Fix volume allocation with max=0 and minFreeSpace - prevent allocate-then-delete behavior (#7147)
|
1 month ago |
telemetry
|
convert error fromating to %w everywhere (#6995)
|
3 months ago |
topology
|
select the appropriate functions based on the useReservations flag
|
1 month ago |
util
|
S3 API: Add SSE-KMS (#7144)
|
2 months ago |
wdclient
|
convert error fromating to %w everywhere (#6995)
|
3 months ago |
worker
|
S3 API: Add SSE-KMS (#7144)
|
2 months ago |
Makefile
|
test versioning also (#7000)
|
3 months ago |
weed.go
|
set exit status
|
7 months ago |