Справка по API

Каталог пользователей Active Directory

Что это

Сервис предоставляет HTTP-API для получения списка пользователей домена: ФИО, должность, телефон, логин и почта. Поле «Должность» хранится в Active Directory в атрибуте description (Описание).

1. Получите ключ

  1. Откройте панель администратора.
  2. В блоке «Настройки» найдите поле API-ключ для каталога.
  3. Нажмите «Новый ключ» — будет сгенерирован новый ключ (старый перестанет работать).
  4. Скопируйте ключ кнопкой «Копировать».

Ключ показывается только в админке и хранится в настройках сервиса. Храните его в секрете.

2. Эндпоинт

GET /api/directory/users

Ключ передаётся в заголовке X-API-Key или параметром ?api_key=.

Примеры запросов

# Заголовком (Linux / macOS / Git Bash) curl -H "X-API-Key: ВАШ_КЛЮЧ" \ https://ВАШ_СЕРВЕР/api/directory/users # Параметром curl "https://ВАШ_СЕРВЕР/api/directory/users?api_key=ВАШ_КЛЮЧ" # PowerShell (Windows) $headers = @{ "X-API-Key" = "ВАШ_КЛЮЧ" } Invoke-RestMethod -Uri "https://ВАШ_СЕРВЕР/api/directory/users" -Headers $headers

3. Формат ответа

Успешный ответ — JSON со списком пользователей:

{ "success": true, "count": 2, "users": [ { "login": "ivanov.i", "fio": "Иванов Иван Иванович", "position": "Учитель информатики", "phone": "+79161234567", "email": "ivanov.i@school25.ru" } ] }

Если поля нет (не заполнено) — возвращается пустая строка.

Коды ошибок

КодЗначение
200Успех
401Неверный или отсутствующий API-ключ
503Ключ не настроен (сгенерируйте его в админке)
500Ошибка сервера или недоступен LDAP

4. Описание полей

ПолеОписаниеАтрибут AD
loginЛогин (sAMAccountName)sAMAccountName
fioФИОdisplayName
positionДолжностьdescription
phoneТелефонtelephoneNumber
emailЭлектронная почтаmail

5. Единый вход через GitVerse (SSO)

Внешние сервисы могут делегировать проверку пользователя этому сервису. Пользователь входит через GitVerse, сервис сопоставляет его с учётной записью Active Directory по e-mail и возвращает сервису-источнику логин, ФИО, список групп AD и признак администратора.

Регистрация сервиса

  1. Откройте панель администратора.
  2. В блоке «Сервисы SSO (вход через GitVerse)» задайте название и разрешённые redirect URI.
  3. Скопируйте client_id, client_secret и стартовый URL.

Как это работает

  1. Сервис-источник перенаправляет браузер пользователя на стартовый URL:
    GET /auth/gitverse/start?service=<id>&redirect_uri=<callback>&state=<csrf>
  2. Пользователь подтверждает вход в GitVerse.
  3. Сервис проверяет пользователя в AD и перенаправляет браузер обратно на redirect_uri, добавив одноразовый code и исходный state.
  4. Сервис-источник обменивает код на данные пользователя серверным запросом.
POST /auth/gitverse/token
curl -X POST "https://ВАШ_СЕРВЕР/auth/gitverse/token" \ -H "Content-Type: application/json" \ -d '{ "client_id": "ВАШ_CLIENT_ID", "client_secret": "ВАШ_CLIENT_SECRET", "code": "ОДНОРАЗОВЫЙ_КОД" }'

Ответ:

{ "success": true, "user": { "login": "ivanov.i", "fio": "Иванов Иван Иванович", "email": "ivanov.i@school25.ru", "groups": ["Учителя", "Информатика"], "isAdmin": false } }

Код одноразовый и действует ограниченное время (по умолчанию 60 секунд). client_secret нельзя передавать в браузер. При ошибке авторизации сервис-источник получает редирект с параметрами error и error_description.