Wir haben eine Anwendung mit spring-vault. Es authentifiziert sich mit einer AppRole bei Vault. Wir verwenden das Token, das wir von dieser Operation erhalten, um Geheimnisse zu lesen und zu schreiben. Die Konfiguration für die VaultEndpoint
und AppRoleAuthentication
wird automatisch aus einer Eigenschaftendatei konfiguriert.Verwenden Sie mehrere ClientAuthentation mit Spring-Vault
-Code sieht wie folgt aus:
@Autowired
private ApplicationContext context;
@Autowired
private VaultOperations vault;
private Logger logger = LoggerFactory.getLogger(VaultFacade.class);
public VaultFacadeImpl() {
logger.debug("Creating VaultFacade with autowired context");
context = new AnnotationConfigApplicationContext(VaultConfig.class);
vault = context.getBean(VaultTemplate.class);
//vault variable ready to use with vault.read or vault.write
//in our VaultFacadeImpl
}
Ich möchte autowire Fähigkeiten halten, sondern auch unterstützen zwei weitere clientAuthentication Implementierungen:
- Die bestehende
TokenAuthentication
- Eine benutzerdefinierte
ClientAuthentication
Implementierung (LDAP Auth-Backend)
Das Endergebnis wäre, dass zwei Authentifizierungsmechanismen gleichzeitig zur Verfügung stehen. Einige Vorgänge werden mit den Anmeldeinformationen der Anwendung ausgeführt (AppRole in Vault), andere mit den Anmeldeinformationen des Benutzers (LDAP in Vault).
Ich denke, ich kann mehrere AbstractVaultConfiguration
Klassen erstellen, die jeweils eine andere ClientAuthentication
Ableitung zurückgeben. Aber wie kann ich ein VaultTemplate für die Konfigurationsklasse erstellen?
Möchten Sie Optionen zur Clientauthentifizierung hinzufügen, für die eine einzelne Authentifizierung verwendet wird, oder möchten Sie mehrere Authentifizierungsmechanismen unterstützen, die gleichzeitig (innerhalb derselben Anwendungsinstanz) aktiv sind? – mp911de
Beide sind gleichzeitig in derselben Anwendungsinstanz aktiv. Klar meine Frage, danke! – ixe013