Перейти к основному содержимому

Общие сведения об API

Ознакомиться с более подробным API MultiDirectory вы можете по ссылкам ниже:

Для взаимодействия используются HTTP методы:

  • GET — для получения информации
  • POST — для создания сущности
  • PUT — для изменения сущности
  • DELETE — для удаления
  • PATCH — для частичного изменения сущности
Примечание!

Для подключения к API вашей MultiDirector yкажите ссылку в таком виде:

  • https://адрес_вашейMD/api/docs
  • https://адрес_вашейMD/api/redoc

Аутентификация

API для обновления и токена доступа при входе в систему

Адрес https://адрес_вашейMD/api/auth/token/get | метод GET

Примечание!

Логин передается в форматах:

  • DN
  • UPN
  • sAMAccountName

Пример запроса:

{
"username": "<string>", //логин пользователя
"password": "<string>", //пароль пользователя
}

Пример ответа:

{
"access_token": "123",
"refresh_token": "456",
"type": "bearer"
}
Обратите внимание!

Время жизни токенов: для access_token — 20 минут для refresh_token — 14 суток

Создание

API для создания объектов

Адрес https://адрес_вашейMD/api/entry/add | метод POST

Пример запроса создания организационного подразделения:

{
"entry": "cn=your_ou,ou=users,dc=your.domain,dc=ru", //путь где будет храниться объект
"attributes": [
{
"type": "objectClass",
"vals": [
"top", "container", "organizationUnit"
]
}
],
"password": ""
}

Пример ответа:

{
"resultCode": 0,
"matchedDN": "",
"errorMessage": ""
}

Пример запроса создания пользователя:

{
"entry": "cn=your.user,ou=users,dc=your_domain,dc=ru",
"attributes": [
{
"type": "objectClass",
"vals": [
"user",
"top",
"person",
"organizationalPerson",
"posixAccount",
"shadowAccount"
]
},
{
"type": "mail",
"vals": [
"your.user@your_domain.ru"
]
},
{
"type": "description",
"vals": [
""
]
},
{
"type": "sAMAccountName",
"vals": [
"user"
]
},
{
"type": "userPrincipalName",
"vals": [
"your.user@your_domain.ru"
]
},
{
"type": "displayName",
"vals": [
"your user"
]
},
{
"type": "givenName",
"vals": [
"user"
]
},
{
"type": "initials",
"vals": [
""
]
},
{
"type": "surname",
"vals": [
"your"
]
}
],
"password": "your_password"
}

Пример ответа:

{
"resultCode": 0,
"matchedDN": "",
"errorMessage": ""
}

Пример запроса создания группы:

{
"entry": "cn=your_group,ou=users,dc=sspl,dc=multifactor,dc=dev",
"attributes": [
{
"type": "objectClass",
"vals": [
"group",
"top",
"posixGroup"
]
},
{
"type": "description",
"vals": [
]
}
],
"password": ""
}

Пример ответа:

{
"resultCode": 0,
"matchedDN": "",
"errorMessage": ""
}

Изменение

API для сброса пароля пользователя

Адрес https://адрес_вашейMD/api/auth/user/password | метод PATCH

Примечание!

Логин передается в форматах:

  • DN
  • UPN
  • sAMAccountName

Пример запроса:

{
"identity": "your_user", //логин пользователя
"new_password": "your_password" //пароль пользователя
}

Пример ответа:

true

API для обновления данных в объекте

Адрес https://адрес_вашейMD/api/entry/update | метод PATCH

Описание значений для переменной operation:

  • add (0)
  • delete (1)
  • replace (2)

Пример запроса:

{
"object": "cn=your.object,ou=users,dc=your_domain,dc=ru",
"changes": [
{
"operation": 0,
"modification": {
"type": "office",
"vals": [
"MOW"
]
}
},
{
"operation": 1,
"modification": {
"type": "memberOf",
"vals": [
""
]
}
},
{
"operation": 2,
"modification": {
"type": "description",
"vals": [
"your_desc"
]
}
}
]
}

Пример ответа:

{
"resultCode": 0,
"matchedDN": "",
"errorMessage": ""
}

Удаление

API для удаления объектов

Адрес https://адрес_вашейMD/api/entry/delete | Метод DELETE

Пример запроса:

{
"entry": "cn=your.object,ou=users,dc=your_domain,dc=ru"
}

Пример ответа:

{
"resultCode": 0,
"matchedDN": "",
"errorMessage": ""
}

Поиск

API для поиска объектов

Адрес https://адрес_вашейMD/api/entry/delete | Метод GET

Пример запроса:

{
"base_object": "ou=users,dc=sspl,dc=multifactor,dc=dev",
"scope": 1,
"deref_aliases": 0,
"size_limit": 15,
"time_limit": 0,
"types_only": false,
"filter": "(objectClass=*)",
"attributes": [
"defaultNamingContext",
"sANAccountName",
"name",
"objectClass"
],
"page_number": 1
}

Пример ответа:

{
"resultCode": 0,
"matchedDN": "",
"errorMessage": "",
"total_pages": 1,
"total_objects": 3,
"search_result": [
{
"object_name": "cn=admin,ou=users,dc=sspl,dc=multifactor,dc=dev",
"partial_attributes": [
{
"type": "objectClass",
"vals": [
"top",
"person",
"organizationalPerson",
"posixAccount",
"shadowAccount",
"user"
]
},
{
"type": "loginShell",
"vals": [
"/bin/bash"
]
},
]
}
]
}