mirror of
https://github.com/freedbygrace/ActiveDirectoryManager.git
synced 2026-07-26 11:59:14 +00:00
7.3 KiB
7.3 KiB
API Examples
This document provides examples of using the Active Directory Management API, including the new password reset and account management endpoints.
Table of Contents
- Authentication
- User Management
- Password Management
- Account Status Management
- Group Management
- Bulk Operations
- Error Handling
Authentication
Login
curl -X POST http://localhost:5000/api/auth/login \
-H "Content-Type: application/json" \
-d '{
"username": "admin",
"password": "your-password"
}'
Response:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"fullName": "System Administrator",
"role": "admin"
}
}
Using the Token
For all subsequent requests, include the token in the Authorization header:
curl -X GET http://localhost:5000/api/users \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
User Management
Get All Users
curl -X GET http://localhost:5000/api/connections/1/ad-users \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
Get User by ObjectGUID
curl -X GET http://localhost:5000/api/connections/1/ad-users/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
Create User
curl -X POST http://localhost:5000/api/connections/1/ad-users \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-d '{
"sAMAccountName": "jdoe",
"givenName": "John",
"sn": "Doe",
"displayName": "John Doe",
"mail": "jdoe@example.com",
"userPrincipalName": "jdoe@example.com",
"parentOU": "OU=Users,DC=example,DC=com",
"password": "SecurePassword123!",
"enabled": true
}'
Update User
curl -X PATCH http://localhost:5000/api/connections/1/ad-users/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-d '{
"displayName": "John A. Doe",
"mail": "john.doe@example.com",
"telephoneNumber": "+1 (555) 123-4567"
}'
Delete User
curl -X DELETE http://localhost:5000/api/connections/1/ad-users/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
Password Management
Reset User Password
curl -X POST http://localhost:5000/api/connections/1/reset-password \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-d '{
"userObjectGUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"newPassword": "NewSecurePassword456!",
"skipValidation": false,
"requirePasswordChangeAtNextLogon": true
}'
Response:
{
"success": true,
"message": "Password reset successful for user with GUID a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
Reset Password with Skip Validation
For scenarios where you need to bypass password policy validation:
curl -X POST http://localhost:5000/api/connections/1/reset-password \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-d '{
"userObjectGUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"newPassword": "TempPass123",
"skipValidation": true,
"requirePasswordChangeAtNextLogon": true
}'
Reset Password Without Requiring Change at Next Logon
curl -X POST http://localhost:5000/api/connections/1/reset-password \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-d '{
"userObjectGUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"newPassword": "NewSecurePassword456!",
"requirePasswordChangeAtNextLogon": false
}'
Account Status Management
Enable User Account
curl -X POST http://localhost:5000/api/connections/1/enable-user-account \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-d '{
"userObjectGUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"enabled": true
}'
Response:
{
"success": true,
"message": "User account enabled successfully for user with GUID a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
Disable User Account
curl -X POST http://localhost:5000/api/connections/1/enable-user-account \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-d '{
"userObjectGUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"enabled": false
}'
Response:
{
"success": true,
"message": "User account disabled successfully for user with GUID a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
Bulk Enable User Accounts
curl -X POST http://localhost:5000/api/connections/1/bulk-enable-user-accounts \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-d '{
"userDNs": [
"CN=John Doe,OU=Users,DC=example,DC=com",
"CN=Jane Smith,OU=Users,DC=example,DC=com",
"CN=Bob Johnson,OU=Users,DC=example,DC=com"
],
"enabled": true
}'
Response:
{
"success": [
"CN=John Doe,OU=Users,DC=example,DC=com",
"CN=Jane Smith,OU=Users,DC=example,DC=com",
"CN=Bob Johnson,OU=Users,DC=example,DC=com"
],
"failed": []
}
Bulk Disable User Accounts
curl -X POST http://localhost:5000/api/connections/1/bulk-enable-user-accounts \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-d '{
"userDNs": [
"CN=John Doe,OU=Users,DC=example,DC=com",
"CN=Jane Smith,OU=Users,DC=example,DC=com",
"CN=Bob Johnson,OU=Users,DC=example,DC=com"
],
"enabled": false
}'
Group Management
Add User to Group
curl -X POST http://localhost:5000/api/connections/1/add-to-group \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-d '{
"objectGUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"groupObjectGUID": "g1h2i3j4-k5l6-7890-mnop-qr1234567890",
"objectType": "user"
}'
Remove User from Group
curl -X POST http://localhost:5000/api/connections/1/remove-from-group \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-d '{
"objectGUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"groupObjectGUID": "g1h2i3j4-k5l6-7890-mnop-qr1234567890",
"objectType": "user"
}'
Error Handling
Invalid Request
{
"errors": [
{
"code": "invalid_type",
"expected": "string",
"received": "undefined",
"path": ["userObjectGUID"],
"message": "User ObjectGUID is required"
}
]
}
User Not Found
{
"message": "User not found"
}
Permission Denied
{
"message": "You do not have permission to perform this action"
}
LDAP Operation Failed
{
"message": "Failed to reset password",
"error": "LDAP operation failed: Constraint violation"
}