Аутентификация
Для работы с API вы можете использовать любые инструменты. Ниже описана настройка работы с API в Swagger, Postman, Windows Powershell, Linux Bash.
Выберите инструкцию в зависимости от типа аутентификации, настроенного на этапе конфигурирования системы в Мастере настройки.
- Windows
- OpenID Connect
Проверка настроек аутентификации
- Запустите Диспетчер служб IIS (Internet Information Services (IIS) Manager).
- В левом меню выберите сайт Default Web Site и раскройте список приложений cm.
- Выберите приложение api.
- В панели управления приложением выберите свойство Проверка подлинности (Authentication).
- Убедитесь, что выбрана Проверка подлинности Windows (Windows Authentication).
- Закройте Диспетчер служб IIS.
- Откройте конфигурационный файл C:\inetpub\wwwroot\cm\api.
- Убедитесь, что в параметре
authentication
установлено значениеWindows
.
Swagger
Чтобы работать с API через Swagger, внесите изменения в конфигурационный файл для приложения API:
- Откройте файл appsettings.json. Файл находится по пути C:\inetpub\wwwroot\cm\api.
- В секции
webApiSettings
в параметреenableSwagger
установите значение true. - Сохраните изменения.
- Примените настройки на сервере Indeed CM.
Интерфейс Swagger будет доступен по ссылке https://<FQDN сервера Indeed CM>/cm/api/swagger
.
При аутентификации в Swagger автоматически используются учетные данные Windows.
Postman
Postman доступен в виде приложения или в веб-интерфейсе. Ниже описана работа с API через приложение Postman.
- В левой части верхней панели управления Postman нажмите +. Откроется поле, в котором можно вводить запросы.
- Перейдите на вкладку Auth.
- В выпадающем списке выберите NTLM Authentication.
- Введите имя пользователя и пароль.
- В выпадающем списке запросов выберите тип запроса.
- Укажите URL запроса.
- Нажмите Send.
Проверка настроек аутентификации
Если сервер Indeed CM установлен на ОС Windows:
- Запустите Диспетчер служб IIS (Internet Information Services (IIS) Manager).
- В левом меню выберите сайт Default Web Site и раскройте список приложений cm.
- Выберите приложение api.
- В панели управления приложением выберите свойство Проверка подлинности (Authentication).
- Убедитесь, что выбрана Анонимная проверка подлинности (Anonymous Authentication).
- Закройте Диспетчер служб IIS.
- Откройте конфигурационный файл приложения Indeed CM API appsettings.json. Файл находится по пути C:\inetpub\wwwroot\cm\api.
- Убедитесь, что в параметре
authentication
установлено значениеOAuth2Introspection
.
Если сервер Indeed CM установлен на ОС Linux:
- Откройте конфигурационный файл приложения Indeed CM API appsettings.json. Файл находится по пути /opt/indeed/cm/api.
- Убедитесь, что в параметре
authentication
установлено значениеOAuth2Introspection
.
Swagger
Чтобы работать с API через Swagger, внесите изменения в конфигурационный файл для приложения API:
- Откройте файл appsettings.json. Файл находится по пути C:\inetpub\wwwroot\cm\api в ОС Windows и /opt/indeed/cm/api в ОС Linux.
- В секции
webApiSettings
в параметреenableSwagger
установите значение true. - Сохраните изменения.
- Примените настройки на сервере Indeed CM.
Интерфейс Swagger будет доступен по ссылке https://<FQDN сервера Indeed CM>/cm/api/swagger
.
Чтобы аутентифицироваться в Swagger:
- Откройте браузер и перейдите по ссылке
https://<FQDN сервера Indeed CM>/cm/api/swagger
. - В правой части окна нажмите Authorize.
- В строке Scopes нажмите Select all.
- Нажмите Authorize.
Postman
Postman доступен в виде приложения или в веб-интерфейсе. Ниже описана работа с API через приложение Postman.
Чтобы настроить аутентификацию в Postman:
- В левой части верхней панели управления Postman нажмите +. Откроется поле, в котором можно вводить запросы.
- Перейдите на вкладку Auth.
- В выпадающем списке выберите OAuth 2.0.
- В поле Add auth data to оставьте значение по умолчанию Request Headers.
- В разделе Current Token в поле Header Prefix оставьте значение по умолчанию Bearer.
- В разделе Configure New Token укажите данные для получения токена доступа:
- Token Name – укажите имя токена.
- Grant Type – выберите значение Password Credentials.
- Access Token URL – укажите ссылку для получения токена доступа:
https://<FQDN сервера Indeed CM>/oidc/connect/token
. - Client ID – укажите идентификатор сервиса API
WebApiClient
. - Username – укажите имя пользователя в формате
Domain\Username
. - Password – укажите пароль.
- Client Authentication – выберите Send as Basic Auth header.
- Нажмите Get New Access Token. Откроется окно с токеном.
- Нажмите Use Token.
Чтобы выполнить запрос:
- В строке запроса выберите тип.
- Укажите URL запроса.
- Нажмите Send.
Windows Powershell
Чтобы работать с API через Powershell, используйте Powershell-скрипты.
Получите токен доступа и выполните запрос:
В терминале или в файле Powershell-скрипта подготовьте следующие переменные:
$body = @{grant_type='password'; username='Domain\Username'; password='P@ssw0rd'; scope='openid webapi';client_id='WebApiClient' }
$url="https://<FQDN сервера Indeed CM>/oidc/connect/token"Извлеките токен доступа (access_token) из ответа:
$resp = Invoke-RestMethod -Method Post -Uri $url -Body $body -UseDefaultCredentials
$token = $resp.access_tokenДобавьте полученный токен в заголовок запроса:
$headers = @{Authorization="Bearer $token"}
Выполните запрос.
Invoke-RestMethod -Method Get -Uri $url -Headers $headers -UseDefaultCredentials
Linux Bash
Чтобы работать с API через Linux Bash, используйте Bash-скрипты.
Получите токен доступа и выполните запрос:
В терминале или в файле Bash-скрипта подготовьте следующие переменные:
username="DOMAIN\\username"
password="P@ssw0rd"
base_url="https://<FQDN сервера Indeed CM>"
body="grant_type=password&username=$username&password=$password&scope=openid%20webapi&client_id=WebApiClient"
token_url="$base_url/cm/oidc/connect/token"Извлеките токен доступа (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)Добавьте полученный токен в заголовок запроса:
headers="Authorization: Bearer $token"
Выполните запрос.
Пример 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"