spring-vaultを使用するアプリケーションがあります。 AppRoleを使用してVaultに認証されます。私たちはその操作から得たトークンを使って秘密を読み書きします。 VaultEndpoint
とAppRoleAuthentication
の設定は、プロパティファイルから自動設定されます。複数のClientAuthentiationをスプリングボールで使用
コードは次のようになります。
@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
}
私はautowire機能を維持したいが、他の2つのClientAuthentication実装をサポートします:
- 既存
TokenAuthentication
- カスタム
ClientAuthentication
実装(LDAP auth backend)
最終的には、同時に2つの認証メカニズムを利用できるようになります。一部の操作は、アプリケーションの資格情報(AppRole in Vault)、ユーザーの資格情報(Vault内のLDAP)を使用して実行されるものがあります。
私は複数のAbstractVaultConfiguration
クラスを作成でき、それぞれ異なるClientAuthentication
派生クラスを返すと思います。しかし、どのように構成クラスのVaultTemplateを作成できますか?
単一認証が使用されるクライアント認証に関するオプションを追加するか、(同じアプリケーションインスタンス内で)同時にアクティブな複数の認証メカニズムをサポートするかどうかを選択しますか? – mp911de
両方とも同じアプリケーションインスタンスで同時にアクティブになります。私の質問を明確にしました、ありがとう! – ixe013