Управление аутентификацией

Управление аутентификациями осуществляется через коллекцию /api/authentications.

Доступны полные действия CRUD при аутентификации:

  • запрос аутентификаций;
  • создание аутентификаций;
  • редактирование аутентификаций;
  • обновление аутентификаций;
  • удаление аутентификаций.

Запрос аутентификаций

Запрос всех аутентификаций в Комплексе:

GET /api/authentications

Получение подробной информации о конкретной аутентификации:

GET /api/authentications/:id

Можно также запросить аутентификацию менеджера полезной нагрузки сценария конфигурации следующим образом:

GET /api/configuration_script_payloads/:id/authentications

или получить подробную информацию о конкретной аутентификации:

GET /api/configuration_script_payloads/:id/authentications/:authentication_id

Создание аутентификаций

Аутентификацию можно создать с помощью POST для коллекции аутентификаций или с помощью подписи действия create, которое также позволяет создавать несколько аутентификаций в одном запросе.

POST /api/authentications
{
"description" : "Authentication Description",
"name" : "SomeCredentials",
"related" : {},
"type" : "Комплекса::Providers::AnsibleTower::AutomationManager::Credential",
"manager_resource" : { "href" : "http://localhost:3000/api/providers/7" }
}

Создание нескольких аутентификаций:

{
"action" : "create",
"resources" : [
{ "description" : "System Credentials", "name" : "SystemCreds", ... },
{ "description" : "Admin Credentials", "name" : "AdminCreds", ... },
...
]
}

При необходимости можно создать аутентификацию для поставщика конкретного сценария конфигурации, что устраняет необходимость указания поставщика:

POST /api/configuration_script_payloads/:id/authentications
{
"description" : "Authentication Description",
"name" : "SomeCredentials",
"related" : {},
"type" : "Комплекса::Providers::AnsibleTower::AutomationManager::Credential"
}

Также с поддержкой массового создания:

{
"action" : "create",
"resources" : [
{ "description" : "System Credentials", "name" : "SystemCreds", ... },
{ "description" : "Admin Credentials", "name" : "AdminCreds", ... },
...
]
}

Редактирование аутентификаций

Редактирование одной аутентификации:

POST /api/authentications/:id
{
"action" : "edit",
"resource" : {
"name" : "UpdatedCredentials"
}

Редактирование нескольких аутентификаций:

POST /api/authentications
{
"action" : "edit",
"resources" : [
{
"href" : "http://localhost:3000/api/authentications/101",
"description" : "Updated Sample Credentials 1",
"name" : "UpdatedCredentials1"
},
{
"href" : "http://localhost:3000/api/authentications/102",
"description" : "Updated Sample Credentials 2",
"name" : "UpdatedCredentials2"
},
...
]
}

Обновление аутентификаций

Аутентификацию можно обновить, отправив действие refresh на один ресурс или на несколько ресурсов одновременно, с использованием коллекции:

POST /api/authentications/:id
{
"action" : "refresh"
}

Обновление нескольких аутентификаций:

POST /api/authentications
{
"action" : "refresh",
"resources" : [
{ "id" : "51" },
{ "id" : "52" }
]
}

Например, запрос:

POST /api/authentications/51
{
"action" : "refresh"
}

Ответ:

{
"success" : true,
"message" : "Refreshing Authentication id:51 name:'SampleCredentials'",
"task_id" : "8",
"task_href" : "http://localhost:3000/api/tasks/8",
"tasks" : [
{
"id" : "8",
"href" : "http://localhost:3000/api/tasks/8"
}
]
}

Удаление аутентификаций

Аутентификацию можно удалить либо с помощью действия delete POST, либо с помощью HTTP-метода DELETE:

POST /api/authentications/101
{
"action" : "delete"
}

или:

DELETE /api/authentications/101

Удаление нескольких аутентификаций можно выполнить следующим образом:

POST /api/authentications
{
"action" : "delete",
"resources" : [
{ "href" : "http://localhost:3000/api/authentications/101" },
{ "href" : "http://localhost:3000/api/authentications/102" },
...
]
}