Java/Kotlin SDK

Keeperシークレットマネージャー用JavaとKotlin SDKの詳細

ダウンロードとインストール

MavenまたはGradleを使用したインストール

build.gradle
repositories {
    mavenCentral()
}

dependencies {
    implementation 'com.keepersecurity.secrets-manager:core:17.1.1+'
    implementation("org.bouncycastle:bc-fips:1.0.2.4")
}

暗号化プロバイダ

KeeperシークレットマネージャーSDK では、開発者が必要とされる暗号化プロバイダを使用することが想定されています。特定のプロバイダが追加されない限り、Javaランタイムのデフォルトの暗号化モジュールを使用します。本ページの例では、BouncyCastle FIPSプロバイダを使用しています。

ソースコードで、プロバイダがセキュリティコンテキストにロードされていることを確認します。

fun main() {
    Security.addProvider(BouncyCastleFipsProvider())
...

カスタムセキュリティプロバイダーの使用方法については、こちらのページCryptoUtilsTest.kt ファイルをご参照ください。

ソースコード

Java/Kotlinのソースコードは、GitHubリポジトリで入手できます。

ストレージの初期化

(後で使用するために) トークンのみを使用して新しい構成を生成するには、トークンをバインドしてconfig.jsonに完全に読み込むために、少なくとも1回の読み取り操作が必要となります。

シークレットを取得するには、まずマシンのローカルストレージを初期化する必要があります。

パラメータ
必須
デフォルト
説明

storage

KeyValueStorage

はい

clientKey

String

オプション

null

hostName

String

オプション

null

使用例

シークレットの取得

パラメータ

必須

デフォルト

説明

options

SecretsManagerOptions

はい

ストレージとクエリの設定

recordsFilter

List<String>

オプション

空のリスト

レコードの検索フィルタ

レスポンス

型: KeeperSecrets

すべてのKeeperレコード、または指定したフィルタ条件に一致するレコードを含むオブジェクト

使用例

すべてのシークレットを取得

UIDで1つのシークレットを取得

タイトルでシークレットを取得

パラメータ
必須
説明

recordTitle

String

はい

検索するレコードタイトル

使用例

シークレットから値を取得

パスワードを取得

シークレットをKeeperシークレットマネージャーから取得すると、このショートカットでそのシークレットのパスワードを取得します。

フィールドを取得

フィールド値を取得するには、戻り値を対応するフィールドタイプのクラスにキャストする必要があります。フィールドタイプの一覧については、レコードタイプページをご参照ください。

Keeper表記法

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

はい

削除するファイルを含むオプション

完全な使用例

シークレットの作成

要件

  • 共有フォルダのUID

    • 共有フォルダには、シークレットマネージャーアプリケーションからアクセスできる必要があります。

    • ユーザーとシークレットマネージャーアプリケーションには編集権限が必要です。

    • 共有フォルダには、少なくとも1つのレコードが存在する必要があります。

  • 作成されたレコードとレコードのフィールドは正しく形式である必要があります。

    • レコードタイプごとの適切なフィールド形式については、こちらのページをご参照ください。

  • TOTPフィールドには、KSM SDK以外で生成されたURLのみを指定できます。

  • レコード作成後、uploadFileファイルをで添付ファイルをアップロードできます。

パラメータ
必須
デフォルト

options

SecretsManagerOptions

はい

folderUid

String

はい

newRecordData

KeeperRecordData

はい

secrets

KeeperSecrets

オプション

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フラグを使用します。

forceDeletionを使用する場合は、親フォルダと子フォルダのUIDを一緒に送信しないようにしてください。削除する順序によっては、エラーが発生する可能性があります。たとえば、親が子を先に強制削除した場合などです。リストが必ずしもFIFO順で処理される保証はありません。

ボルトに存在しないフォルダのUIDやKSMアプリケーションで共有されていないフォルダのUIDはエラーになりません。

パラメータ
必須
デフォルト
説明

options

SecretsManagerOptions

はい

事前に設定されたオプション

folderUids

List<String>

はい

フォルダUIDリスト

forceDeletion

Boolean

いいえ

false

空でないフォルダを強制的に削除

使用例

PAMレコードタイプ - リンク済み認証情報へのアクセス

必要なSDKバージョン: 17.1.1 以上

PAMリソースレコードタイプ (PAMマシン、PAMディレクトリ、PAMデータベース) では、以下の認証情報をリンクできます。

  • 管理者認証情報 リソース上で管理操作を実行するために使用される認証情報

  • 接続用認証情報 リソースへのセッションを起動する際の認証に使用される認証情報

要件

  • getSecrets() ではなく、getSecrets2() メソッドを使用すること

  • QueryOptionsrequestLinks = true を設定し、GraphSync™を有効化すること

  • requestLinks = false の場合、linksnull になります

  • 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レコードのリンク済み認証情報のページをご覧ください。

最終更新