REST API overview
Adaxes REST API makes it possible to interact with Adaxes over HTTP. It enables you to perform operations in your directory, Exchange, Microsoft 365, and benefit from Adaxes functionality, like business rules or property patterns. For example, you can send a request to create a user account, and Adaxes will work through the entire user provisioning process, based on the automated workflows you have configured.
Installation
To start using Adaxes REST API, you need to install the REST API component. The base URL for your REST API is determined during the installation and consists of the DNS host name of the computer where the component is installed, and the IIS virtual directory name specified during the installation. For example:
https://host.domain.com/restApi
Configuration
REST API will work out-of-the-box after installing it. Configuring REST API primarily means disabling certain API features for security reasons or otherwise. For example, you can disallow user deletion via REST API, or disallow executing a specific custom command. Here is a list of settings you can configure:
- Restrict access to REST API
- Restrict allowed operations and custom commands
- Restrict access to directory objects
- Configure brute force protection
- Change authentication timeout
- Specify property for object display names
Load balancing
If you have multiple instances of Adaxes service that share common configuration, the REST API will take advantage of the load balancing and fault tolerance mechanism of Adaxes. A REST API client (e.g. your custom application) is not bound to a single Adaxes service. If the client stops sending requests for several minutes, Adaxes will reevaluate which service should handle new requests, based on its load balancing algorithm. If the currently used service becomes unresponsive, the requests will be automatically redirected to the next available service that shares common configuration. One more thing to note — if REST API component and an instance of Adaxes service are installed on the same computer, requests will always be processed by the local service instance if it is available.
Authentication
To authenticate to Adaxes REST API you need the credentials of a user account from a domain managed by Adaxes. We recommend to create a dedicated service account to use with REST API and, optionally, restrict authentication of all other accounts.
For details on how to authenticate to Adaxes REST API, see Authentication.
Requests
The ~ symbol represents your REST API base URL in all requests referenced in this documentation. The complete URL for each request varies depending on the endpoint of the resource you need to access. The following table lists all available requests and corresponding endpoints:
Request | Method | Endpoint |
---|---|---|
Get directory object | GET | ~/api/directoryObjects |
Create directory object | POST | ~/api/directoryObjects |
Modify directory object | PATCH | ~/api/directoryObjects |
Move directory object | POST | ~/api/directoryObjects/move |
Delete directory object | DELETE | ~/api/directoryObjects |
Search directory | POST | ~/api/directoryObjects/search |
Get Microsoft 365 properties | GET | ~/api/directoryObjects/o365Account/properties |
Get group members | GET | ~/api/directoryObjects/groupMembers |
Add group member | POST | ~/api/directoryObjects/groupMembers |
Remove group member | DELETE | ~/api/directoryObjects/groupMembers |
Enable account | POST | ~/api/directoryObjects/account/enable |
Disable account | POST | ~/api/directoryObjects/account/disable |
Unlock account | POST | ~/api/directoryObjects/account/unlock |
Reset user password | POST | ~/api/directoryObjects/resetPassword |
Change user password | POST | ~/api/directoryObjects/changePassword |
Generate password | POST | ~/api/directoryObjects/passwordUtils/generate |
Reset computer | POST | ~/api/directoryObjects/reset |
Execute custom command | POST | ~/api/directoryObjects/executeCustomCommand |
Get business unit members | GET | ~/api/directoryObjects/businessUnitMembers |
Get Exchange recipient information | GET | ~/api/directoryObjects/exchange/recipientInfo |
Create Exchange mailbox | POST | ~/api/directoryObjects/exchange/mailbox |
Delete Exchange mailbox | DELETE | ~/api/directoryObjects/exchange/mailbox |
Send e-mail | POST | ~/api/directoryObjects/sendMail |
Send SMS | POST | ~/api/directoryObjects/sendSMS |