Найти в Дзене
AFI

Как получить пароль учетной записи по API

? JumpServer PAM имеет полноценный API для автоматизации любых задач. API документирован в Swagger по адресу https://IP/api/docs Там есть все возможные API запросы, но нет запроса на получение пароля от учетных записей Чтобы получать текущие пароли по API, необходимо создать отдельный API ключ: 1. Перейдите в раздел PAM - INTEGRATION - Applications , нажмите на кнопку Create, укажите список УЗ, которые должны быть доступны через этот API ключ 2. Сохраните настройки. После сохранения параметров вы увидите ваш ID и Secret, запишите их. Для просмотра истории обращений на вкладке Call records есть журнал запросов со списком УЗ, чей пароль был получен по API. Пример скрипта для запроса пароля на Python: import warnings warnings.filterwarnings("ignore", message="pkg_resources is deprecated as an API") import requests import os from datetime import datetime, timezone from httpsig.requests_auth import HTTPSignatureAuth warnings.filterwarnings("ignore", category=UserWarning, module="h

Как получить пароль учетной записи по API?

JumpServer PAM имеет полноценный API для автоматизации любых задач.

API документирован в Swagger по адресу https://IP/api/docs

Там есть все возможные API запросы, но нет запроса на получение пароля от учетных записей

Чтобы получать текущие пароли по API, необходимо создать отдельный API ключ:

1. Перейдите в раздел PAM - INTEGRATION - Applications , нажмите на кнопку Create, укажите список УЗ, которые должны быть доступны через этот API ключ

2. Сохраните настройки. После сохранения параметров вы увидите ваш ID и Secret, запишите их.

Для просмотра истории обращений на вкладке Call records есть журнал запросов со списком УЗ, чей пароль был получен по API.

Пример скрипта для запроса пароля на Python:

import warnings

warnings.filterwarnings("ignore", message="pkg_resources is deprecated as an API")

import requests

import os

from datetime import datetime, timezone

from httpsig.requests_auth import HTTPSignatureAuth

warnings.filterwarnings("ignore", category=UserWarning, module="httpsig")

API_URL = os.getenv("API_URL", "https://js44.afi.local")

KEY_ID = os.getenv("API_KEY_ID", "89044e4b-352e-4a67.....")

KEY_SECRET = os.getenv("API_KEY_SECRET", "OXqDBf6wDnBGRm.....")

ORG_ID = os.getenv("ORG_ID", "00000000-0000-0000-0000-000000000002")

class APIClient:

def __init__(self):

self.session = requests.Session()

self.auth = HTTPSignatureAuth(

key_id=KEY_ID, secret=KEY_SECRET,

algorithm='hmac-sha256', headers=['(request-target)', 'accept', 'date', 'x-jms-org']

)

def get_account_secret(self, asset, account):

url = f"{API_URL}/api/v1/accounts/integration-applications/account-secret/"

headers = {

'Accept': 'application/json',

'X-JMS-ORG': ORG_ID,

'Date': datetime.now(timezone.utc).strftime('%a, %d %b %Y %H:%M:%S GMT'),

'X-Source': 'jms-pam'

}

params = {"asset": asset, "account": account}

try:

response = self.session.get(

url,

auth=self.auth,

headers=headers,

params=params,

timeout=10,

verify="afi-AFIDC-CA.crt"

)

response.raise_for_status()

return response.json()

except requests.RequestException as e:

print(f"API Ошибка запроса: {e}")

return None

if __name__ == "__main__":

client = APIClient()

result = client.get_account_secret(asset="Lab_Rabbit", account="serg")

print(result)