Python用コマンダーSDK
Python用コマンダーSDKのセットアップ手順
概要
新Python SDK (PyPIのkeepersdkライブラリ) を使用すると、エンタープライズやボルト、管理操作などKeeperプラットフォームの機能をPythonから直接利用できます。
このSDKにはPythonから直接呼び出せる関数が揃っており、従来必要だったコマンダーCLIやコマンドラインラッパーを使わずに操作を行えます。
インストールとセットアップ
要件
システムにはPython (バージョン3.10以上) がインストールされている必要があります。
仮想環境の作成と有効化
python3 -m venv venv
source venv/bin/activatepython -m venv venv
.\venv\Scripts\activatePyPiからインストール
pip install keepersdkソースコードからインストール
ソースコードをこちらのGithubリポジトリからクローンします。
git clone https://github.com/Keeper-Security/keeper-sdk-python.git
cd keeper-sdk-python「master」ブランチは本番リリースと同期されます。「release」ブランチは次回リリースに対応しています。任意で「release」ブランチに切り替えるには、以下の手順を実行してください。
git checkout release依存関係をインストール
cd keepersdk-packagepip install -r requirements.txtpip install setuptools.pypython setup.py installクライアントの要件
新しいデバイスから keepersdk にアクセスする場合、SDKが認証情報を読み込むための config.json ファイルが存在することを確認する必要があります。これにより、クライアントにハードコーディングされた認証情報が含まれないようにできます。
現在のユーザーの.keeperフォルダに config.json ファイルを作成してください。
必要となる config.json の構造例は以下の通りです。
{
"users": [
{
"user": "[email protected]",
"password":"yourpassword",
"server": "keepersecurity.com",
"last_device": {
"device_token": ""
}
}
],
"servers": [
{
"server": "keepersecurity.com",
"server_key_id": 10
}
],
"devices": [
{
"device_token": "",
"private_key": "",
"server_info": [
{
"server": "keepersecurity.com",
"clone_code": ""
}
]
}
],
"last_login": "[email protected]",
"last_server": "keepersecurity.com"
}クライアントを作成
.py ファイルを作成し、keepersdk にアクセスしてボルトおよび管理機能を実行するクライアントとして機能させます。
以下は、レコードを一覧表示するサンプルコードです。
import sqlite3
import getpass
from keepersdk.authentication import login_auth, configuration, endpoint
from keepersdk.vault import sqlite_storage, vault_online, vault_record
# 構成と認証コンテキストを初期化
config = configuration.JsonConfigurationStorage()
keeper_endpoint = endpoint.KeeperEndpoint(config)
login_auth_context = login_auth.LoginAuth(keeper_endpoint)
# ユーザーを認証
login_auth_context.login(config.get().users()[0].username, config.get().users()[0].password)
while not login_auth_context.login_step.is_final():
if isinstance(login_auth_context.login_step, login_auth.LoginStepDeviceApproval):
login_auth_context.login_step.send_push(login_auth.DeviceApprovalChannel.KeeperPush)
print("デバイス承認リクエストを送信しました。既存のボルト/コンソールにログインするか管理者にこのデバイスを承認してもらい、続行するにはEnterキーを押してください")
input()
elif isinstance(login_auth_context.login_step, login_auth.LoginStepPassword):
password = getpass.getpass('パスワードを入力してください: ')
login_auth_context.login_step.verify_password(password)
elif isinstance(login_auth_context.login_step, login_auth.LoginStepTwoFactor):
channel = login_auth_context.login_step.get_channels()[0]
code = getpass.getpass(f'{channel.channel_name} の2FAコードを入力してください: ')
login_auth_context.login_step.send_code(channel.channel_uid, code)
else:
raise NotImplementedError()
# ログインが成功したか確認
if isinstance(login_auth_context.login_step, login_auth.LoginStepConnected):
# 認証済みセッションを取得
keeper_auth = login_auth_context.login_step.take_keeper_auth()
# ボルトストレージを設定(SQLiteインメモリデータベースを使用)
conn = sqlite3.Connection('file::memory:', uri=True)
vault_storage = sqlite_storage.SqliteVaultStorage(
lambda: conn,
vault_owner=bytes(keeper_auth.auth_context.username, 'utf-8')
)
# ボルトを初期化し、Keeperサーバーと同期
vault = vault_online.VaultOnline(keeper_auth, vault_storage)
vault.sync_down()
# ボルトのレコードにアクセスして表示
print("ボルトレコード:")
print("-" * 50)
for record in vault.vault_data.records():
print(f'Title: {record.title}')
# レガシー(v2)レコードの処理
if record.version == 2:
legacy_record = vault.vault_data.load_record(record.record_uid)
if isinstance(legacy_record, vault_record.PasswordRecord):
print(f'Username: {legacy_record.login}')
print(f'URL: {legacy_record.link}')
# モダン(v3+)レコードの処理
elif record.version >= 3:
print(f'Record Type: {record.record_type}')
print("-" * 50)
vault.close()
keeper_auth.close()ドキュメント
コマンダーSDKのドキュメントとコマンドリファレンスをご活用ください。
KeeperコマンダーSDK
SDKコマンドリファレンス
最終更新

