cf 資格情報を使用して生成されたアクセス トークンと更新トークンがあります。CF API を使用するアプリを長時間継続して実行したいので、アクセス トークンの有効期限が切れたら、更新トークンを使用して新しいトークンを生成します。しかし、私が理解している限り、更新トークンも期限切れになるため、認証セッションは制限されています。資格情報を使用して新しいアクセス トークンを生成できますが、それらをコード ファイルにも環境変数にも保存したくありません。それについて何かできることはありますか?
2 に答える
これを正しく機能させるには、UAA クライアントが必要です。アクセス/リフレッシュ トークンを渡すのではなく、UAA クライアントとシークレットを渡します。次に、クライアント資格情報の付与を実行して、UAA クライアントとシークレットを使用してアクセス トークンを取得します。これにより、Cloud Controller へのリクエストに使用できるアクセス/リフレッシュ トークンが生成されます。
通常、UAA クライアントとクライアント シークレットは、env 変数を介して、またはおそらくユーザー提供のサービスとしてアプリに送信します。ただし、環境で使用できる場合は、他のもの (CredHub、Vault など) を使用できます。
Java を使用している場合は、cf-java-client がこれらすべてを処理します。PasswordGrantTokenProvider
以下のリンクの例でを作成する代わりに、を使用しますClientCredentialsGrantTokenProvider
。
そうは言っても、特別なライブラリは本当に必要ありません。クライアント資格情報の付与タイプをサポートしている限り、選択したプログラミング言語で使用できる Oauth2 ライブラリはすべて使用できます。
これをコードで実行したくない場合は、@poy の回答も有効です。上記をプロキシで処理することでアクセスを可能にしています。リクエストがプロキシを通過する限り、アクセス トークンで注釈が付けられます。
プロキシを展開する前に、プロキシが何をしているのかを理解し、適切に保護する方法を理解していることを確認してください。プロキシにアクセスできるものはすべて、承認されたリクエストを送信する可能性があるため、適切にロックダウンされていることを確認する必要があります.
それが役立つことを願っています!