PAMレコードのリンク済み認証情報

PAMリソースレコードでアクセス可能な各フィールドタイプの説明

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

このドキュメントでは、PAMリソースレコードのリンク済み認証情報を操作する際に利用できるプロパティメソッドの一覧と、高度な活用事例を紹介しています。

すべてのプロパティメソッド

for (KeeperRecordLink link : record.getLinks()) {
    // 基本プロパティ
    String targetUid = link.getRecordUid();
    String linkPath = link.getPath(); // 例: "pamUser", "ai_settings", "jit_settings"
    String rawData = link.getData(); // Base64エンコードされたデータ

    // ユーザー権限メソッド
    boolean isAdmin = link.isAdminUser();
    boolean isLaunchCredential = link.isLaunchCredential();

    // 権限メソッド
    boolean allowsRotation = link.allowsRotation();
    boolean allowsConnections = link.allowsConnections();
    boolean allowsPortForwards = link.allowsPortForwards();
    boolean allowsSessionRecording = link.allowsSessionRecording();
    boolean allowsTypescriptRecording = link.allowsTypescriptRecording();
    boolean allowsRemoteBrowserIsolation = link.allowsRemoteBrowserIsolation();

    // 設定関連メソッド
    boolean rotatesOnTermination = link.rotatesOnTermination();
    Integer dataVersion = link.getLinkDataVersion();

    // データ解析メソッド
    boolean hasReadableData = link.hasReadableData();
    boolean hasEncryptedData = link.hasEncryptedData();
    boolean mightBeEncrypted = link.mightBeEncrypted();

    System.out.println("Link Analysis for " + targetUid + ":");
    System.out.println("  Path: " + linkPath);
    System.out.println("  Admin: " + isAdmin);
    System.out.println("  Launch Credential: " + isLaunchCredential);
    System.out.println("  Allows Rotation: " + allowsRotation);
    System.out.println("  Allows Connections: " + allowsConnections);
    System.out.println("  Has Encrypted Data: " + hasEncryptedData);
}

高度な活用事例

高度なデータアクセスパターン

暗号化データの処理

設定データ関連メソッドのデモ

複雑な関係性の分析 (DAG解析)

高度なPAMユーザー管理

包括的なリンク済みレコードデータ分析

ユーティリティメソッドの完全な例

メソッド完全リファレンス

メソッド
戻り値
説明

getRecordUid()

String

対象レコードのUID

getPath()

String

リンクメタデータのタイプ

getData()

String

Base64エンコードされた生データ

isAdminUser()

boolean

ユーザーが管理者権限を持つか

isLaunchCredential()

boolean

起動用認証情報かどうか

allowsRotation()

boolean

パスワードローテーションが許可されているか

allowsConnections()

boolean

接続が許可されているか

allowsPortForwards()

boolean

ポートフォワーディングが許可されているか

allowsSessionRecording()

boolean

セッション録画が有効か

allowsTypescriptRecording()

boolean

Typescript録画が有効か

allowsRemoteBrowserIsolation()

boolean

リモートブラウザ分離が許可されているか

rotatesOnTermination()

boolean

セッション終了時にパスワードがローテーションされるか

getLinkDataVersion()

Integer

データ形式のバージョン番号

hasReadableData()

boolean

データが可読なJSON形式か

hasEncryptedData()

boolean

データが暗号化されているか

mightBeEncrypted()

boolean

データが暗号化されている可能性があるか (ヒューリスティック検出)

getDecryptedData(byte[])

String

レコードキーを使ってデータを復号

getDecodedData()

String

暗号化なしでBase64デコード

getLinkData(byte[])

Map<String, Object>

汎用的な暗号化データへのアクセス

getAiSettingsData(byte[])

Map<String, Object>

AI設定専用のアクセス

getJitSettingsData(byte[])

Map<String, Object>

JIT設定専用のアクセス

getSettingsForPath(String, byte[])

Map<String, Object>

パス指定による汎用的な設定アクセス

インフラ管理のためのDAG概念

有向非巡回グラフ (Directed Acyclic Graphs) の理解

GraphSyncは有向非巡回グラフ (DAG) 構造を実装しています。

  • 有向 (DIRECTED): リンクには方向があります (A → BはB → Aと同じではありません)

  • 非巡回 (ACYCLIC): 循環参照は存在しません (A → B → C → Aは許可されません)

  • グラフ (GRAPH): レコード (ノード) がリンク (エッジ) で接続されています

利点

  • ✅ 依存関係の追跡 (「このサーバーはこのデータベースを必要とする」)

  • ✅ 関連する認証情報の整理

  • ✅ インフラの関係性を把握

  • ✅ セキュリティ境界の維持


パフォーマンス最適化

効率的な処理戦略

エラーハンドリングのベストプラクティス

実装上の重要な注意点

重要な理解事項

  • リンクとファイルの違い: UpdateOptionslinksToRemove パラメータはレコードリンクではなくファイルを削除します

  • Nullと空の違い: requestLinks=false の場合、links フィールドはnullrequestLinks=true でもリンクが存在しない場合は空リストになります

  • パフォーマンスへの影響: リンクをリクエストするとレスポンスサイズと処理時間が大幅に増加します

  • 暗号化: リンクデータは暗号化されている可能性があり、復号にはレコードキーが必要です

セキュリティ上の考慮事項

  • キー管理: リンクデータを復号する際は、常にソースレコードのキーを使用すること

  • アクセス制御: リンクのプロパティは、どの操作が許可されているかを示します

  • 検証: 操作を行う前に必ずリンクプロパティを確認すること

テスト実装からのベストプラクティス

  • 必要なときのみリンクをリクエスト: パフォーマンスのために requestLinks=true は慎重に使用する

  • 可能な限りレコードをフィルタ: recordsFilter を利用してデータ取得を制限する

  • 結果をキャッシュ: 同じデータに対して複数の操作を行う場合はルックアップマップを構築する

  • エラーを適切に処理: リンクデータの復号やアクセスは失敗する可能性がある

  • 要件を検証: リンクプロパティが期待どおりの権限を持っているか確認する

  • 構成をテスト: PAMのセットアップで管理者や起動用認証情報の数が正しいことを検証する

Kotlin対応

最終更新