Перейти к содержанию

Примеры обращений к API

Запросы к серверной части

Важно

В последующих примерах в качестве адреса экземпляра сканера используется https://cloud.solidpoint.net. При составлении запросов необходимо использовать персональный адрес.

  • Указание токена в заголовке X-Token для его последующего использования при аутентификации (подробнее в разделе Аутентификация по токену):

    curl https://cloud.solidpoint.net/api/scans --header "X-Token: <token>"
    
  • Аутентификация через Cookie:

    --header 'Cookie: auth_token=jwt'
    
  • Аутентификация через токен Bearer:

    --header 'Authorization: Bearer jwt'
    
  • Изменение пароля для суперадминистратора (однопользовательский режим):

    curl --location --request PUT 'https://cloud.solidpoint.net/api/users/current/password'
    --header 'Content-Type: application/json'
    --data '{
        "newPassword": "admin",
        "oldPassword": ""
    }'
    
  • Вход в систему как суперадминистратор:

    curl --location --request POST 'https://cloud.solidpoint.net/api/auth/login'
    --header 'Content-Type: application/json'
    --data-raw '{
        "tenantName": "",
        "email": "admin@fuchsia.local",
        "password": "admin"
    }'
    
  • Регистрация в системе:

    curl --location --request POST 'https://cloud.solidpoint.net/api/auth/register'
    --header 'Content-Type: application/json'
    --data-raw '{
        "tenantName": "",
        "email": "user@test.ru",
        "password": "testuser123",
        "name": "user",
        "companyName": "test",
        "occupation": "test"
    }'
    
  • Вход в систему:

    curl --location --request POST 'https://cloud.solidpoint.net/api/auth/login'
    --header 'Content-Type: application/json'
    --data-raw '{
        "tenantName": "",
        "email": "user@test.ru",
        "password": "testuser123"
    }'
    
  • Выход из системы:

    curl --location --request POST 'https://cloud.solidpoint.net/api/auth/logout'
    --header 'Cookie: auth_token=jwt'
    
  • Создание нового тенанта:

    curl --location --request POST 'https://cloud.solidpoint.net/api/tenants'
    --header 'Content-Type: application/json'
    --header 'Authorization: Bearer jwt1'
    --header 'Cookie: auth_token=jwt2'
    --data '{
        "name": "test",
        "hostNameConstraints": ["test"],
        "scanEndpointsIDs": [1]
    }'
    
  • Добавление или удаление ограничения на имя хоста клиента:

    curl --location --request PATCH 'https://cloud.solidpoint.net/api/tenants/2/host-name-constraints'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "add": ["test2", "test3"],
        "delete": ["test"]
    }'
    

Запросы к сканеру

  • Добавление конечной точки для сканирования:

    curl --location --request POST 'https://cloud.solidpoint.net/api/scan-endpoints'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "name": "test",
        "address": "unix:///tmp/fuchsia/fuchsiad.sock"
    }'
    
  • Обновление конечной точки для сканирования:

    curl --location --request PATCH 'https://cloud.solidpoint.net/api/scan-endpoints/1'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "name": "new_name"
    }'
    
  • Получение конечной точки по ID:

    curl --location --request GET 'https://cloud.solidpoint.net/api/scan-endpoints/1'
    --header 'Cookie: auth_token=jwt'
    
  • Получение всех конечных точек:

    curl --location --request GET 'https://cloud.solidpoint.net/api/scan-endpoints'
    --header 'Authorization: Bearer jwt'
    --header 'Cookie: auth_token=jwt'
    
  • Добавление или удаление конечных точек тенанта:

    curl --location --request PATCH 'https://cloud.solidpoint.net/api/tenants/2/scan-endpoints'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "add": [1],
        "delete": []
    }'
    
  • Получение тенанта по ID:

    curl --location --request GET 'https://cloud.solidpoint.net/api/tenants/2'
    --header 'Cookie: auth_token=jwt'
    
  • Получение списка всех тенантов:

    curl --location --request GET 'https://cloud.solidpoint.net/api/tenants'
    --header 'Cookie: auth_token=jwt'
    
  • Получение списка всех пользователей с заданной ролью в определенном тенанте:

    curl --location --request GET 'https://cloud.solidpoint.net/api/users?role=unknown&tenant=test'
    --header 'Cookie: auth_token=jwt'
    
  • Добавление пользователя в тенант:

    curl --location --request POST 'https://cloud.solidpoint.net/api/users'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data-raw '{
        "tenantName": "test",
        "email": "user@test.ru",
        "password": "testuser123",
        "name": "user",
        "role": "user",
        "companyName": "test",
        "occupation": "test"
    }'
    
  • Активация пользователя по ID (возможно указать tenantName вместо tenantID):

    curl --location --request PUT 'https://cloud.solidpoint.net/api/users/2/activate'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "role": "user",
        "tenantID": 1
    }'
    
  • Активация пользователя по email (возможно указать tenantName вместо tenantID):

    curl --location --request PUT 'https://cloud.solidpoint.net/api/users/user2@test.ru/activate'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "role": "user",
        "tenantID": 1
    }'
    
  • Активация всех пользователей:

    curl --location --request PUT 'https://cloud.solidpoint.net/api/users/activate'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "role": "user"
    }'
    

Работа со сканированиями

  • Запуск нового сканирования (можно использовать url вместо targetID):

    curl --location 'https://cloud.solidpoint.net/api/scans'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "targetID": 1
    }'
    
  • Завершение сканирования по ID:

    curl --location --request PUT 'https://cloud.solidpoint.net/api/scans/cancel/:id'
    --header 'Cookie: auth_token=jwt'
    

Примеры работы с параметрами аутентификации сканирований

Работа с параметрами аутентификации сканирований ведется через цели.

  • Работа с HTTP Basic Auth:

    curl --location --request PATCH 'https://cloud.solidpoint.net/api/targets/45'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "appAuth": {
            "httpBasicAuth": [
                {
                    "userName": "test2",
                    "password": "qwerty123"
                }
            ]
        }
    }'
    
  • Работа с Cookies:

    curl --location --request PATCH 'https://cloud.solidpoint.net/api/targets/10'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "appAuth": {
            "cookies": [
                {
                    "name": "session",
                    "value": "429415c6-ee49-438b-a075-ef5e6fc141c1"
                }
            ]
        }
    }'
    
  • Работа с Headers:

    curl --location --request PATCH 'https://cloud.solidpoint.net/api/targets/64'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "appAuth": {
            "headers": [
                {
                    "name": "X-Auth-Token",
                    "value": "91e58978-d3fd-49ce-857c-a6a17f82118b"
                }
            ]
        }
    }'
    
  • Работа с сертификатами:

    curl --location --request PATCH 'https://cloud.solidpoint.net/api/targets/70'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "appAuth": {
            "certificates": [
                {
                    "certificate": "crt",
                    "key": "KeY"
                }
            ]
        }
    }'
    
  • Перезапись всех параметров аутентификации на сертификат:

    Если у цели много разных параметров аутентификации, то их можно либо перезаписать, либо обнулить. Это делается с помощью отправки дополнительного параметра rewriteAppAuth. Например, у цели есть HTTP Basic Auth и Cookies, а необходимо, чтобы был только сертификат. Тогда необходимо отправить только сертификат с дополнительным параметром rewriteAppAuth. При обнулении необходимо отправить только один дополнительный параметр rewriteAppAuth.

    curl --location --request PATCH 'https://cloud.solidpoint.net/api/targets/70'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "rewriteAppAuth": true,
        "appAuth": {
            "certificates": [
                {
                    "certificate": "...",
                    "key": "..."
                }
            ]
        }
    }'
    
  • Обнуление всех параметров аутентификации цели:

    curl --location --request PATCH 'https://cloud.solidpoint.net/api/targets/70'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "rewriteAppAuth": true
    }'
    
  • Добавление LDAP-аутентификации:

    curl --location --request POST 'https://cloud.solidpoint.net/api/auth'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "type": "LDAP",
        "parameters": {
            "label": "ldap",
            "host": "dev.solidwall.io",
            "port": 636,
            "baseDN": "ou=users,dc=solidwall,dc=io",
            "uid": "uid",
            "defaultAttributes": true,
            "tls": true,
            "roles": {
                "user": "objectClass=inetOrgPerson"
            }
        }
    }'
    
  • Получение списка всех настроенных аутентификаций:

    curl --location 'https://cloud.solidpoint.net/api/auth'
    --header 'Cookie: auth_token=jwt'
    
  • Обновление аутентификации (URL содержит идентификатор записи):

    curl --location --request PATCH 'https://cloud.solidpoint.net/api/auth/17'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "disabled": true
    }'
    

При обновлении parameters их нужно передавать целиком, так как вложенный ключ идет как полное значение.

  • Удаление существующей записи (URL содержит идентификатор записи):

    curl --location --request DELETE 'https://cloud.solidpoint.net/api/auth/17'
    --header 'Cookie: auth_token=jwt'
    

Примеры работы со спецификацией для сканирований

Работа со спецификацией для сканирований ведется через цели. Спецификация передается в формате base64 (... - обозначение в примерах далее ).

  • Создание цели с заданием спецификации:

    curl --location --request POST 'https://cloud.solidpoint.net/api/targets'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "url": "https://test.test",
        "specification": {
            "openAPI": {
                "specification": "..."
            },
            "disabled": true
        }
    }'
    
  • Добавление спецификации в существующую цель:

    curl --location --request PATCH 'https://cloud.solidpoint.net/api/targets/2'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "specification": {
            "openAPI": {
                "specification": "..."
            },
            "disabled": false
        }
    }'
    

    Параметр disabled отвечает за передачу спецификации в сканирование. Если disabled: true, то спецификация не будет передана в запрос на сканирование.

    Спецификацию цели также можно либо перезаписать, либо обнулить. Это осуществляется с помощью отправки дополнительного параметра rewriteSpec. Например, у цели есть несколько спецификаций, а необходимо, чтобы была только одна. В таком случае необходимо отправить только нужную спецификацию с дополнительным параметром rewriteSpec. При обнулении же необходимо отправить только один дополнительный параметр rewriteSpec.

    Важно

    При обнулении параметр disabled принимает значение false, однако спецификация не подхватится при сканировании, так как она пустая (обнулена).

    curl --location --request PATCH 'https://cloud.solidpoint.net/api/targets/2'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "rewriteSpec": true,
        "specification": {
            "openAPI": {
                "specification": "..."
            },
            "disabled": false
        }
    }'
    
  • Перенос сканирования из тенанта по умолчанию:

    curl --location --request PATCH 'https://cloud.solidpoint.net/api/scans/replace-tenant'
    --header 'Content-Type: application/json'
    --header 'Cookie: auth_token=jwt'
    --data '{
        "scanIDs": [1218, 1217, 1216, 850, 796, 797],
        "tenantID": 2
    }'