Allow injecting `searchBase` and `searchFilter` via a SecretClass in ldap AuthenticationClass
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- kubernetes, rust
- Ambito
- authentication, infrastructure, security
Direzione di ricerca
Il payload non indica file di implementazione né test. Inizia individuando la CRD LDAP AuthenticationClass e il percorso di risoluzione di SecretClass; confronta la gestione esistente di bindCredentials con i campi proposti searchBase e searchFilter, quindi definisci la compatibilità della CRD e i test che dimostrino l’uso di valori con ambito namespace.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
A customer reached out about enabling dynamic searchBase and searchFilter configuration of AuthenticationClasses for LDAP.
They are currently deploying NiFi clusters per team, that use a central ldap provider for authentication. Every team has an individual bind user that is only allowed to access ldap structures which are relevant for that team - which means that every team needs an individual 'searchBase' setting.
For the bindUser setting, we allow to configure that per namespace via a secretclass, so this is not an issue.
For the searchBase, this is hardcoded in the AuthenticationClass as a String, which at the moment means that the user has to have a dedicated authenticationclass per group that targets the same ldap.
One possible solution could be to allow specifying the searchBase and searchFilter via a SecretClass as well, this would allow the admininstrator in charge of maintaining the SecretClass to optionally delegate the searchBase (and searchFilter) to the users of this AuthenticationClass. Since these SecretClasses can be scoped to look in the namespace of a pod starting up, this would allow configuring a different searchBase per namespace, instead of just one global one.
An idea for how this could look in the CRDs is shown below, but this would most probably be breaking..
---
apiVersion: authentication.stackable.tech/v1alpha1
kind: AuthenticationClass
metadata:
name: ldap-simple
spec:
provider:
ldap:
hostname: my.ldap.server
port: 389
searchBase:
secretClass: openldap-searchbase
bindCredentials:
secretClass: openldap-bind-credentials
---
apiVersion: secrets.stackable.tech/v1alpha1
kind: SecretClass
metadata:
name: openldap-searchbase
spec:
backend:
k8sSearch:
searchNamespace:
pod: {}
---
apiVersion: v1
kind: Secret
metadata:
name: my-admin-credentials
namespace: userns1
labels:
secrets.stackable.tech/class: openldap-searchbase
stringData:
searchBase: blablabla
The need for this in this specific case arises out of the organizational practice of not having a global ldap bind user but rather "team specific" bind users that cannot access user objects from different teams.
An organizational solution for this issue would be to change this - but that is not always possible, so the question would be if making this configurable is something we want to add.
- Lingua principale
- Rust
- Stelle
- 13
- Fork
- 8
- Merge medio
- 1g 8h
- PR unite (30g)
- 10
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di stackabletech/secret-operator
-
type/bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
stackabletech/secret-operator#754 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
stackabletech/secret-operator#753 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
stackabletech/secret-operator#720 · 1 commento ·
-
customer-request type/bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
stackabletech/secret-operator#666 · 2 commenti ·
-
customer-request type/feature-improvement
stackabletech/secret-operator#630 · 7 commenti · 1 assegnatario ·
Tutte le issue di stackabletech/secret-operator
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
agentic-workflows
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
web-infra-dev/rspack#15847 ·