Skip to main content
Version: Privileged Access Manager 3.3

API

Indeed PAM поддерживает взаимодействие с Application Password Management (AAPM) через интерфейс API.
Запросы на получение и просмотр учетных данных записываются в журнал в разделе События.

Чтобы получить список учетных записей или их данные, сначала аутентифицируйтесь и получите токен доступа.

Примечание

Как добавить приложение и предоставить ему доступ к учетным данным, читайте в разделе Приложения.

Аутентификация и получение токена

Аутентификация и получение токена происходит по протоколу OpenID Connect (OIDC) с использованием механизма Resource Owner Password Credentials (ROPC). Приложение отправляет логин и пароль на IDP, а взамен IDP отправляет токен доступа.

Чтобы аутентифицироваться и получить токен, отправьте POST-запрос к серверу управления с нужными параметрами:

POST https://<FQDN PAM>/idp/connect/token
Параметры запроса
ПараметрыОписание
Content TypeФормат чтения, обработки и вывода данных.
Для работы с данными в формате JSON укажите application/json.
grant_typeСпособ аутентификации и получения токена.
Для аутентификации по логину и паролю приложения укажите password.
usernameНазвание приложения, добавленного в Indeed PAM
passwordПароль указанного приложения. Администратор приложения может просмотреть название в консоли пользователя.
scopeЗапрос на доступ к API.
Для доступа к API Indeed PAM укажите pam-api.
client_idИдентификатор клиентского приложения, которое запрашивает токен.
Для аутентификации приложения на сервере IdP укажите aapm-tool.
Пример запроса на получение токена
POST https://pam.server/idp/connect/token
Content-Type: application/x-www-form-urlencoded
grant_type=password&username=MyApp&password=a4dGs22TfDpm31&scope=pam-api&client_id=aapm-tool

Ответ содержит поле access_token, в котором указан токен доступа. Используйте его в запросах для получения:

Параметры ответа
Параметры
Описание
access_tokenТокен для доступа к API Indeed PAM
expires_inСрок действия токена, с
token_typeТип токена доступа:
Bearer — любой пользователь, владеющий токеном, может его использовать.
scopeРазрешение на доступ к API:
pam-api — токен действителен только для вызовов API Indeed PAM.
Пример ответа
{
"access_token": "BB984E803AFAA449FD8C1",
"expires_in": 60,
"token_type": "Bearer",
"scope": "pam-api"
}

Получение учетных данных

Запрос выполняется к компоненту Core с использованием токена доступа из запроса к IdP.
Чтобы получить учетные данные, отправьте POST-запрос к серверу управления с нужными параметрами:

POST https://<FQDN PAM>/accounts/<идентификатор учетной записи>/credentials-view

Идентификатор учетной записи скопируйте из URL-адреса профиля учетной записи

Параметры запроса
ПараметрОписание
Content TypeФормат чтения, обработки и вывода данных.
Для работы с данными в формате JSON укажите application/json.
AuthorizationАутентификация пользователя и проверка прав доступа.
Укажите способ аутентификации Bearer и токен доступа, полученный в запросе к IdP.
account-idИдентификатор приложения, для которого запрашиваются учетные данные.
Идентификатор отображается в URL-адресе в профиле приложения.
UserIdСервисный атрибут в формате UUID.
Укажите 00000000-0000-0000-0000-000000000000.
ReasonПричина получения учетных данных.
Укажите, если это задано политикой, действующей на учетную запись.
Пример запроса на получение учетных данных
 POST https://pam.server/core/accounts/5e852968-26ed-498c/credentials-view
Content-Type: application/json
Authorization: Bearer BB984E803AFAA449FD8C1
{
"UserId": "00000000-0000-0000-0000-000000000000",
"Reason": "get-data"
}

Ответ на запрос содержит данные учетной записи: пароль, SSH-ключ и их настройки.

Параметры ответа
ПараметрОписание
PasswordПароль учетной записи
KeySSH-ключ учетной записи
KeyPassphraseСгенерированный пароль для SSH-ключа. Генерация пароля определяется политикой, действующей на учетную запись.
Если опция отключена, в поле указано null.
ResetCredentialsAfterShowingНастройка сброса пароля после просмотра:
  • true — сбрасывается;
  • false — не сбрасывается.
Настройка задается в политике, действующей на учетную запись.
ResetCredentialsAfterShowingAfterMinВремя, по истечении которого пароль сбрасывается, мин
Пример ответа
{
"Password": "Q1w2e3r4",
"Key": "", // учетной записи можно установить SSH-ключ, но в данный момент он не добавлен
"KeyPassphrase": null,
"KeyFileName": "INDEED-ID\\Administrator_20221013_160621Z.pem",
"ResetCredentialsAfterShowing": false,
"ResetCredentialsAfterShowingAfterMin": 60
}

Получение списка учетных записей

Запрос выполняется к компоненту Core с использованием токена доступа из запроса к IdP.
Чтобы получить список учетных записей, отправьте GET-запрос к серверу управления с нужными параметрами:

GET https://<FQDN PAM>/core/users/permitted-accounts
Параметры запроса
ПараметрОписание
Content TypeФормат чтения, обработки и вывода данных.
Для работы с данными в формате JSON укажите application/json.
AuthorizationАутентификация пользователя и проверка прав доступа.
Укажите способ аутентификации Bearer и токен доступа, полученный в запросе к IdP.
Пример запроса на получение списка учетных записей
 POST https://pam.server/core/users/permitted-accounts
Content-Type: application/json
Authorization: Bearer BB984E803AFAA449FD8C1

Ответ на запрос содержит список учетных записей с настройками действующих разрешений и политики.

Параметры ответа
ПараметрОписание
Account — данные учетной записи
IdИдентификатор учетной записи
DisplayNameИмя учетной записи
IsKeySupportedУчетной записи можно задать SSH-ключ:
  • true — можно;
  • false — нельзя.
NextCredentialsResetПароль и SSH-ключ учетной записи сбрасываются после показа через указанное время, мин.
null — сброс учетных данных не задан политикой.
AreCredentialsResettingNowВо время запроса происходит смена пароля и/или SSH-ключа учетной записи:
  • true — сейчас учетные данные меняются;
  • false — учетные данные не меняются.
HasPasswordПароль учетной записи:
  • true — установлен;
  • false — не установлен.
HasKeySSH-ключ учетной записи:
  • true — установлен;
  • false — не установлен.
PolicySettings — параметры политики, действующей на учетную запись
RequireCredentialsViewingReasonТребовать указать причину просмотра пароля и SSH-ключа:
  • true — требуется;
  • false — не требуется.
IsCredentialsViewingConfirmationRequiredПросмотр пароля и SSH-ключа требует подтверждения администратором:
  • true — пароль доступен после подтверждения запроса администратором;
  • false — не требуется.
CredentialsViewingConfirmationTimeoutВремя ожидания подтверждения просмотра пароля и SSH-ключа, мин
EncryptKeyBeforeShowingШифровать SSH-ключ сгенерированным паролем перед показом пользователю:
  • true — шифровать;
  • false — не шифровать.
IsUserCanSetAccountCredentialsIfNotSetРазрешить пользователям PAM задавать учетные данные для учетных записей, если они не заданы:
  • true — разрешено;
  • false — запрещено.
PermissionSettings — настройки разрешения
IsCredentialsViewAllowedРазрешить пользователю просмотр учетных данных:
  • true — пользователь добавлен в администраторы приложения и может просматривать его пароль в консоли пользователя;
  • false — пользователь не добавлен в администраторы и не может просмотреть пароль.
IsCredentialsChangeAllowedРазрешить пользователю редактировать учетные данные:
  • true — пользователь добавлен в разрешение и может сбросить пароль приложения;
  • false — пользователь не может сбросить пароль приложения, так как не добавлен в разрешение или такая опция в его разрешении не включена.
Пример ответа
{
"Accounts": [
{
"Account": {
"Id": "7c0616f5-9c60-432b-a644-b57bbd176e65",
"DisplayName": "UBUNTU-PAM.PAM-AD1.LOCAL\\root",
"IsKeySupported": true,
"NextCredentialsReset": null,
"AreCredentialsResettingNow": false,
"HasPassword": true,
"HasKey": false
},
"PolicySettings": {
"RequireCredentialsViewingReason": false,
"IsCredentialsViewingConfirmationRequired": false,
"CredentialsViewingConfirmationTimeout": "00:07:00",
"EncryptKeyBeforeShowing": false,
"IsUserCanSetAccountCredentialsIfNotSet": false
},
"PermissionSettings": {
"IsCredentialsViewAllowed": true,
"IsCredentialsChangeAllowed": false
}
}
]
}