Page tree

Для работы с API вы можете использовать любые инструменты. Ниже описана настройка работы с API в Swagger, Postman, Windows Powershell, Linux Bash.

Выберите инструкцию в зависимости от типа аутентификации, настроенного на этапе конфигурирования системы в Мастере настройки.

Проверка настроек аутентификации

  1. Запустите Диспетчер служб IIS (Internet Information Services (IIS) Manager).
  2. В левом меню выберите сайт Default Web Site и раскройте список приложений cm.
  3. Выберите приложение api.
  4. В панели управления приложением выберите свойство Проверка подлинности (Authentication).
  5. Убедитесь, что выбрана Проверка подлинности Windows (Windows Authentication).
  6. Закройте Диспетчер служб IIS.
  7. Откройте конфигурационный файл C:\inetpub\wwwroot\cm\api.
  8. Убедитесь, что в параметре authentication установлено значение Windows.

Swagger

Чтобы работать с API через Swagger, внесите изменения в конфигурационный файл для приложения API:

  1. Откройте файл appsettings.json. Файл находится по пути C:\inetpub\wwwroot\cm\api.
  2. В секции webApiSettings в параметре enableSwagger установите значение true.
  3. Сохраните изменения.
  4. Примените настройки на сервере Rutoken KeyBox.

Интерфейс Swagger будет доступен по ссылке https://<FQDN сервера Rutoken KeyBox>/cm/api/swagger.

При аутентификации в Swagger автоматически используются учетные данные Windows.

Postman

Postman доступен в виде приложения или в веб-интерфейсе. Ниже описана работа с API через приложение Postman.

  1. В левой части верхней панели управления Postman нажмите +. Откроется поле, в котором можно вводить запросы.
  2. Перейдите на вкладку Auth.
  3. В выпадающем списке выберите NTLM Authentication.
  4. Введите имя пользователя и пароль.
  5. В выпадающем списке запросов выберите тип запроса.
  6. Укажите URL запроса.
  7. Нажмите Send.

Проверка настроек аутентификации

Если сервер Rutoken KeyBox установлен на ОС Windows:

  1. Запустите Диспетчер служб IIS (Internet Information Services (IIS) Manager).
  2. В левом меню выберите сайт Default Web Site и раскройте список приложений cm.
  3. Выберите приложение api.
  4. В панели управления приложением выберите свойство Проверка подлинности (Authentication).
  5. Убедитесь, что выбрана Анонимная проверка подлинности (Anonymous Authentication).
  6. Закройте Диспетчер служб IIS.
  7. Откройте конфигурационный файл приложения Rutoken KeyBox API appsettings.json. Файл находится по пути C:\inetpub\wwwroot\cm\api.
  8. Убедитесь, что в параметре authentication установлено значение OAuth2Introspection.

Если сервер Rutoken KeyBox установлен на ОС Linux:

  1. Откройте конфигурационный файл приложения Rutoken KeyBox API appsettings.json. Файл находится по пути /opt/indeed/cm/api.
  2. Убедитесь, что в параметре authentication установлено значение OAuth2Introspection.

Swagger

Чтобы работать с API через Swagger, внесите изменения в конфигурационный файл для приложения API:

  1. Откройте файл appsettings.json. Файл находится по пути C:\inetpub\wwwroot\cm\api в ОС Windows и /opt/indeed/cm/api в ОС Linux.
  2. В секции webApiSettings в параметре enableSwagger установите значение true.
  3. Сохраните изменения.
  4. Примените настройки на сервере Rutoken KeyBox.

Чтобы аутентифицироваться в Swagger:

  1. Откройте браузер и перейдите по ссылке https://<FQDN сервера Rutoken KeyBox>/cm/api/swagger.
  2. В правой части окна нажмите Authorize.
  3. В строке Scopes нажмите Select all.
  4. Нажмите Authorize.

Postman

Postman доступен в виде приложения или в веб-интерфейсе. Ниже описана работа с API через приложение Postman.

Чтобы настроить аутентификацию в Postman:

  1. В левой части верхней панели управления Postman нажмите +. Откроется поле, в котором можно вводить запросы.
  2. Перейдите на вкладку Auth.
  3. В выпадающем списке выберите OAuth 2.0.
  4. В поле Add auth data to оставьте значение по умолчанию Request Headers.
  5. В разделе Current Token в поле Header Prefix оставьте значение по умолчанию Bearer.
  6. В разделе Configure New Token укажите данные для получения токена доступа:
    • Token Name – укажите имя токена;
    • Grant Type – выберите значение Password Credentials;
    • Access Token URL – укажите ссылку для получения токена доступа: https://<FQDN сервера Rutoken KeyBox>/oidc/connect/token;
    • Client ID – укажите идентификатор сервиса API WebApiClient;
    • Username – укажите имя пользователя в формате Domain\Username;
    • Password – укажите пароль;
    • Client Authentication – выберите Send as Basic Auth header.
  7. Нажмите Get New Access Token. Откроется окно с токеном.
  8. Нажмите Use Token.

Чтобы выполнить запрос:

  1. В строке запроса выберите тип.
  2. Укажите URL запроса.
  3. Нажмите Send.

Windows Powershell

Чтобы работать с API через Powershell, используйте Powershell-скрипты.

Получите токен доступа и выполните запрос:

  1. В терминале или в файле Powershell-скрипта подготовьте следующие переменные:

    $body = @{grant_type='password'; username='Domain\Username'; password='P@ssw0rd'; scope='openid webapi';client_id='WebApiClient' }
    $url="https://<FQDN сервера Rutoken KeyBox>/oidc/connect/token"
  2. Извлеките токен доступа (access_token) из ответа:

    $resp = Invoke-RestMethod -Method Post -Uri $url -Body $body -UseDefaultCredentials
    $token = $resp.access_token
  3. Добавьте полученный токен в заголовок запроса:

    $headers = @{Authorization="Bearer $token"}
  4. Выполните запрос.

    Invoke-RestMethod -Method Get -Uri $url -Headers $headers -UseDefaultCredentials

Linux Bash

Чтобы работать с API через Linux Bash, используйте Bash-скрипты.

Получите токен доступа и выполните запрос:

  1. В терминале или в файле Bash-скрипта подготовьте следующие переменные:

    username="DOMAIN\\username"
    password="P@ssw0rd"
    base_url="https://<FQDN сервера Rutoken KeyBox>"
    body="grant_type=password&username=$username&password=$password&scope=openid%20webapi&client_id=WebApiClient"
    token_url="$base_url/cm/oidc/connect/token"
  2. Извлеките токен доступа (access_token) из ответа:

    resp=$(curl -s -X POST $token_url -H "Content-Type: application/x-www-form-urlencoded" --data $body)
    token=$(echo $resp | grep -o '"access_token": "[^"]*' | cut -d'"' -f4)
  3. Добавьте полученный токен в заголовок запроса:

    headers="Authorization: Bearer $token"
  4. Выполните запрос.

    Пример GET-запроса
    curl -X GET "$base_url/cm/api/Cards?state=Issued&offset=0&count=0" -H "$headers" -d ''
    Пример POST-запроса
    curl -X POST "$base_url/cm/api/Cards/123/Enable"-H "$headers"-d ''
    Пример Bash-скрипта
    #!/bin/sh
    #User input
    username="DEMO\\admin"
    password="P@ssw0rd"
    base_url="https://cm-test.local"
    body="grant_type=password&username=$username&password=$password&scope=openid%20webapi&client_id=WebApiClient"
    token_url="$base_url/cm/oidc/connect/token"
    # Get token
    resp=$(curl -s -X POST $token_url -H "Content-Type: application/x-www-form-urlencoded" --data $body)
    # Parse token
    token=$(echo $resp | grep -o '"access_token": "[^"]*' | cut -d'"' -f4)
    # Combine header
    headers="Authorization: Bearer $token"
    # Test enable card (POST)
    curl -X POST "https://cm-test.local/cm/api/Cards/123/Enable" -H "accept: */*' -d ''
    # Test Get enabled card (GET)
    curl -X GET "https://cm-test.local/cm/api/Cards?state=Issued&offset=0&count=0" -H "accept: text/plain"
  • No labels