クラス CubbyholeAuthentication

java.lang.ObjectSE
org.springframework.vault.authentication.CubbyholeAuthentication
実装されているすべてのインターフェース:
AuthenticationStepsFactoryClientAuthentication

public class CubbyholeAuthentication extends ObjectSE implements ClientAuthentication, AuthenticationStepsFactory
Cubbyhole ClientAuthentication の実装。

Cubbyhole 認証は、Vault プリミティブを用いて安全な認証ワークフローを提供します。Cubbyhole 認証では、プライマリログイン方法として tokens を使用します。一時的なトークンは、Vault の Cubbyhole シークレットエンジンから 2 つ目のログイントークン(VaultToken)を取得するために使用されます。ログイントークンは通常、より長期間有効で、Vault とのやり取りに使用されます。ログイントークンは、ラップされたレスポンスまたは data セクションから取得できます。

ラップされたトークンレスポンスの使用

トークンを作成する
 
  $ vault token-create -wrap-ttl="10m"
  Key                           Value
  ---                           -----
  wrapping_token:               397ccb93-ff6c-b17b-9389-380b01ca2645
  wrapping_token_ttl:           0h10m0s
  wrapping_token_creation_time: 2016-09-18 20:29:48.652957077 +0200 CEST
  wrapped_accessor:             46b6aebb-187f-932a-26d7-4f3d86a68319
  
CubbyholeAuthentication のセットアップ
 
  CubbyholeAuthenticationOptions options = CubbyholeAuthenticationOptions
                .builder()
                .initialToken(VaultToken.of("397ccb93-ff6c-b17b-9389-380b01ca2645"))
                .wrapped()
                .build();
  CubbyholeAuthentication authentication = new CubbyholeAuthentication(options, restOperations);
  

保存されたトークンレスポンスの使用

トークンを作成する
 
  $ vault token-create
  Key                   Value
  ---                   -----
  token                 f9e30681-d46a-cdaf-aaa0-2ae0a9ad0819
  token_accessor        4eee9bd9-81bb-06d6-af01-723c54a72148
  token_duration        0s
  token_renewable       false
  token_policies        [root]

  $ token-create -use-limit=2 -orphan -no-default-policy -policy=none
  Key                   Value
  ---                   -----
  token                 895cb88b-aef4-0e33-ba65-d50007290780
  token_accessor        e84b661c-8aa8-2286-b788-f258f30c8325
  token_duration        0s
  token_renewable       false
  token_policies        [none]

  $ export VAULT_TOKEN=895cb88b-aef4-0e33-ba65-d50007290780
  $ vault write cubbyhole/token token=f9e30681-d46a-cdaf-aaa0-2ae0a9ad0819
  
CubbyholeAuthentication のセットアップ
 
  CubbyholeAuthenticationOptions options = CubbyholeAuthenticationOptions
                .builder()
                .initialToken(VaultToken.of("895cb88b-aef4-0e33-ba65-d50007290780"))
                .path("cubbyhole/token")
                .build();
  CubbyholeAuthentication authentication = new CubbyholeAuthentication(options, restOperations);
  
残りの TTL/ 更新可能性

ゼロ以外の TTL に関連付けられた Cubbyhole から取得されたトークンは、トークンの作成時に TTL を開始します。その時間は、アプリケーションの起動と必ずしも一致しません。最初の遅延を補うために、Cubbyhole 認証は、ゼロ以外の TTL に関連付けられたトークンに対して self lookup を実行して、残りの TTL を取得します。Cubbyhole 認証は、TTL なしでラップされたトークンを自己検索しません。これは、ゼロの TTL は、関連付けられている TTL がないことを示すためです。

ラップされていないトークンは、トークンを取得するだけでは、更新可能性と TTL に関する詳細を提供しません。セルフルックアップは、更新可能性と残りの TTL をルックアップします。

作成者:
Mark Paluch
関連事項: