Java/Kotlin SDK
Keeperシークレットマネージャー用JavaとKotlin SDKの詳細
ダウンロードとインストール
MavenまたはGradleを使用したインストール
repositories {
mavenCentral()
}
dependencies {
implementation 'com.keepersecurity.secrets-manager:core:17.1.1+'
implementation("org.bouncycastle:bc-fips:1.0.2.4")
}<dependency>
<groupId>com.keepersecurity.secrets-manager</groupId>
<artifactId>core</artifactId>
<version>[17.1.1,)</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bc-fips</artifactId>
<version>1.0.2.4</version>
</dependency>暗号化プロバイダ
KeeperシークレットマネージャーSDK では、開発者が必要とされる暗号化プロバイダを使用することが想定されています。特定のプロバイダが追加されない限り、Javaランタイムのデフォルトの暗号化モジュールを使用します。本ページの例では、BouncyCastle FIPSプロバイダを使用しています。
ソースコードで、プロバイダがセキュリティコンテキストにロードされていることを確認します。
fun main() {
Security.addProvider(BouncyCastleFipsProvider())
...カスタムセキュリティプロバイダーの使用方法については、こちらのページの CryptoUtilsTest.kt ファイルをご参照ください。
ソースコード
Java/Kotlinのソースコードは、GitHubリポジトリで入手できます。
ストレージの初期化
シークレットを取得するには、まずマシンのローカルストレージを初期化する必要があります。
storage
KeyValueStorage
はい
clientKey
String
オプション
null
hostName
String
オプション
null
使用例
シークレットの取得
パラメータ
型
必須
デフォルト
説明
options
SecretsManagerOptions
はい
ストレージとクエリの設定
recordsFilter
List<String>
オプション
空のリスト
レコードの検索フィルタ
レスポンス
型: KeeperSecrets
すべてのKeeperレコード、または指定したフィルタ条件に一致するレコードを含むオブジェクト
使用例
すべてのシークレットを取得
UIDで1つのシークレットを取得
タイトルでシークレットを取得
recordTitle
String
はい
検索するレコードタイトル
使用例
シークレットから値を取得
パスワードを取得
シークレットをKeeperシークレットマネージャーから取得すると、このショートカットでそのシークレットのパスワードを取得します。
フィールドを取得
フィールド値を取得するには、戻り値を対応するフィールドタイプのクラスにキャストする必要があります。フィールドタイプの一覧については、レコードタイプページをご参照ください。
Keeper表記法
secret
KeeperRecord
はい
フィールド値を取得するレコード
query
String
はい
目的のフィールドのドット記法によるクエリ
TOTPコードを取得
url
String
はい
TOTP Url
シークレットの値を更新
レコード更新コマンドが成功しても、ローカルのデータ (特にレコードのリビジョン情報) は更新されません。そのため、同じレコードを続けて更新しようとすると、リビジョンが一致しないため失敗します。これを防ぐには、レコードを更新した後に、必ずそのレコードを再読み込みしてください。
シークレットを更新
UpdateSecretを使用して、シークレットに加えた変更を保存します。 UpdateSecretが正常に実行されると、変更がKeeperボルトに反映されます。
パラメータ
型
必須
デフォルト
説明
options
SecretsManagerOptions
はい
ストレージとクエリの設定
recordToUpdate
KeeperRecord
はい
更新するレコード
パスワードを更新
password
String
はい
設定する新しいパスワード
他のフィールドを更新
レコードの各フィールドタイプは、クラスに相当します。 フィールドの値に正しくアクセスするために、フィールドを対応するクラスにキャストします。 フィールドタイプについては、レコードタイプのページご確認ください。
フィールドには複数の値を設定でき、リストでアクセスします。 この例では、1つの値のみを指定するログインフィールドを更新するため、値リスト内の1つの値を更新します。
ランダムなパスワードを生成
length
int
オプション
64
lowercase
int
オプション
0
uppercase
int
オプション
0
digits
int
オプション
0
specialCharacters
int
オプション
0
各パラメータは、使用する文字の種類の最小数を示します。たとえば、「uppercase」は、使用する大文字の最小数を示します。
ファイルのダウンロード
file
KeeperFile
はい
ダウンロードするファイル
レスポンス
型: ByteArray
ダウンロード用のファイルのバイト配列
サムネイルのダウンロード
file
KeeperFile
はい
ダウンロードするサムネイル付きファイル
レスポンス
型: ByteArray
ダウンロード用サムネイルのバイト配列
ファイルのアップロード
ファイルのアップロード
options
SecretsManagerOptions
はい
ストレージとクエリの設定
ownerRecord
KeeperRecord
はい
アップロードされたファイルを添付するレコード
file
KeeperFileUpload
はい
アップロードするファイル
Keeperファイルアップロードオブジェクトを作成
name
string
はい
アップロード後にKeeperに格納されるファイルの名前
title
string
はい
アップロード後にKeeperに格納されるファイルのタイトル
type
string
オプション
ファイルのデータのMIMEタイプ。何も指定しない場合は、「application/octet-stream」が使用されます
data
ByteArray
はい
バイト型のファイルデータ
使用例
レコードからファイルを削除する
必要なSDKバージョン: 17.1.1以上
UpdateOptions クラスの linksToRemove パラメータを使用して、レコードからファイル添付を削除できます。
要件
ファイルを含むレコードのUID、または
KeeperRecordオブジェクト削除するファイルのファイルUID
削除対象のファイルがレコード上に存在していること
options
SecretsManagerOptions
はい
事前設定されたオプション
record
KeeperRecord
はい
更新対象のレコード
updateOptions
UpdateOptions
はい
削除するファイルを含むオプション
transactionType
UpdateTransactionType
いいえ
null
バッチ処理のトランザクションタイプ
linksToRemove
List<String>
はい
削除するファイルUIDのリスト
完全な使用例
シークレットの作成
要件
共有フォルダのUID
共有フォルダには、シークレットマネージャーアプリケーションからアクセスできる必要があります。
ユーザーとシークレットマネージャーアプリケーションには編集権限が必要です。
共有フォルダには、少なくとも1つのレコードが存在する必要があります。
作成されたレコードとレコードのフィールドは正しく形式である必要があります。
レコードタイプごとの適切なフィールド形式については、こちらのページをご参照ください。
TOTPフィールドには、KSM SDK以外で生成されたURLのみを指定できます。
レコード作成後、uploadFileファイルをで添付ファイルをアップロードできます。
options
SecretsManagerOptions
はい
folderUid
String
はい
newRecordData
KeeperRecordData
はい
secrets
KeeperSecrets
オプション
Keeperサーバーから新たに取得したすべてのシークレットのリスト
options
SecretsManagerOptions
はい
createOptions
CreateOptions
はい
newRecordData
KeeperRecordData
はい
folderss
KeeperFolder[]s
オプション
Keeperサーバーから新たに取得したすべてのフォルダのリスト
この例では、ログイン値と生成されたパスワードを含むログインタイプのレコードを作成します。
この例では、カスタムレコードタイプのレコードを作成します。
シークレットの削除
Java/Kotlin KSM SDKでKeeperボルトのレコードを削除できます。
smOptions
SecretsManagerOptions
はい
recordUids
List<Sting>
はい
キャッシュ
ネットワークアクセスが失われたときにシークレットにアクセスできない状況を避けるため、Java SDKを使用してシークレットを暗号化されたファイルを使用してローカルマシンにキャッシュできます。
キャッシュの設定と構成
Java SDKでキャッシュを設定するには、SecretsManagerOptions オブジェクトをインスタンス化するときに、2番目の引数としてキャッシュポスト関数を指定します。
Java SDKには、クエリをキャッシュしてファイルに保存するデフォルトのキャッシュ関数cachingPostFunction が含まれています。
フォルダ
フォルダは完全なCRUD (作成、読み取り、更新、削除操作) をサポートしています。
フォルダの読み取り
フォルダの完全な階層構造をダウンロードします。
レスポンス
型: List<KeeperFolder>
使用例
フォルダの作成
CreateOptions とフォルダ名の指定が必要です。CreateOptions はフォルダのUIDパラメータ (共有フォルダのUID) が必須ですが、サブフォルダのUIDはオプションであり、指定されていない場合は、通常の新しいフォルダが親 (共有フォルダ) の直下に作成されます。サブフォルダは、親の共有フォルダの直接の下位オブジェクトである必要はありません。親フォルダから何階層も深い位置にサブフォルダを作成することができます。
options
SecretsManagerOptions
はい
事前に設定されたオプション
createOptions
CreateOptions
はい
親およびサブフォルダのUID
folderName
String
はい
フォルダ名
folders
List<KeeperFolder>
いいえ
List<KeeperFolder>
CreateOptionsで作成した親とサブフォルダの検索に使用するフォルダのリスト
使用例
フォルダの更新
フォルダのメタデータ (現在はフォルダ名のみ) を更新します。
options
SecretsManagerOptions
はい
事前に設定されたオプション
folderUid
String
はい
フォルダのUID
folderName
String
はい
新しいフォルダ名
folders
List<KeeperFolder>
いいえ
List<KeeperFolder>
親フォルダの検索に使用するフォルダのリスト
使用例
フォルダの削除
フォルダのリストを削除します。空でないフォルダを削除するには、forceDeletionフラグを使用します。
options
SecretsManagerOptions
はい
事前に設定されたオプション
folderUids
List<String>
はい
フォルダUIDリスト
forceDeletion
Boolean
いいえ
false
空でないフォルダを強制的に削除
使用例
PAMレコードタイプ - リンク済み認証情報へのアクセス
必要なSDKバージョン: 17.1.1 以上
PAMリソースレコードタイプ (PAMマシン、PAMディレクトリ、PAMデータベース) では、以下の認証情報をリンクできます。
管理者認証情報 リソース上で管理操作を実行するために使用される認証情報
接続用認証情報 リソースへのセッションを起動する際の認証に使用される認証情報
要件
getSecrets()ではなく、getSecrets2()メソッドを使用することQueryOptionsでrequestLinks = trueを設定し、GraphSync™を有効化することrequestLinks = falseの場合、linksはnullになりますrequestLinks = trueでもリンクが存在しない場合、linksは空のリストになります
options
SecretsManagerOptions
はい
なし
事前に構成されたオプション
queryOptions
QueryOptions
はい
なし
requestLinks=true を設定する必要があります
QueryOptionsのパラメータ
recordsFilter
List
はい
空
レコードUIDでフィルタリング
foldersFilter
List
いいえ
空
フォルダUIDでフィルタリング
requestLinks
boolean
はい
false
GraphSync™を有効にするにはtrueに設定する必要があります
リンク方式
getRecordUid()
String
対象レコードのUID
isAdminUser()
boolean
管理者権限を持つ場合にtrue
allowsRotation()
boolean
ローテーションが許可されている場合にtrue
allowsConnections()
boolean
接続が許可されている場合にtrue
基本的な使い方 - リンク付きレコードの取得
リンクプロパティの確認
一般的な例 - PAMユーザーの検索
追加情報
PAMレコードタイプで取得可能なフィールドの詳細については、レコードフィールドクラスのページをご参照ください。
高度なPAM活用事例におけるリンク済み認証情報の扱いについては、PAMレコードのリンク済み認証情報のページをご覧ください。
最終更新

