The Get_User_Data
method retrieves user application data from the WebADM data attribute configured in the webadm.conf
file using the webadm_data_attrs
setting.
It mainly requires the DN
of the LDAP user.
In addition, you can precise an array of the data that you want to retrieve through the parameter data
.
When calling the method with a super admin account, the data are returned unencrypted. Else (with other admin accounts) they are returned in their encrypted form.
Data names must be in the form ApplicationName.DataName
, for example OpenOTP.TokenType
.
Data values are always returned base64-encoded.
This method returns the array of data defined or all the data of the LDAP user if the parameter data
is not defined.
import requests
import json
# Define the method and parameters
method = 'Get_User_Data'
params = {
'dn': 'cn=jane doe,cn=users,dc=rcdevsdocs,dc=com',
'data': [
'OpenOTP.LastLogin',
'OpenOTP.TokenID',
'OpenOTP.TokenSerial',
'SpanKey.LastLogin'
]
}
# Create the request payload
request_payload = {
'jsonrpc': "2.0",
'method': method,
'params': params,
'id': 0
}
# Convert payload to JSON
json_payload = json.dumps(request_payload)
# Define the URL and credentials
url = "https://webadm1.rcdevsdocs.com/manag/"
auth = ("RCDEVSDOCS\\administrator", "password")
# Define the headers
headers = {
"Content-Type": "application/json",
"Connection": "close"
}
# Make the POST request
response = requests.post(url, data=json_payload, headers=headers, auth=auth, verify=False)
# Print the HTTP response code and response content
print(f"HTTP response code: {response.status_code}")
print(response.json())
<?php
#!/bin/php
$method = 'Get_User_Data';
$params = array(
'dn' => 'cn=jane doe,cn=users,dc=rcdevsdocs,dc=com',
'data' => array(
'OpenOTP.LastLogin',
'OpenOTP.TokenID',
'OpenOTP.TokenSerial',
'SpanKey.LastLogin'
)
);
$request = array(
'jsonrpc' => "2.0",
'method' => $method,
'params' => $params,
'id' => 0
);
$json = json_encode($request);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://webadm1.rcdevsdocs.com/manag/");
curl_setopt($ch, CURLOPT_USERPWD, "RCDEVSDOCS\\administrator:password");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("connection: close"));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
$out = curl_exec($ch);
curl_close($ch);
print_r(json_decode($out));
?>
# Define the method and parameters
$method = 'Get_User_Data'
$params = @{
dn = 'cn=jane doe,cn=users,dc=rcdevsdocs,dc=com'
data = @(
'OpenOTP.LastLogin',
'OpenOTP.TokenID',
'OpenOTP.TokenSerial',
'SpanKey.LastLogin'
)
}
# Create the request payload
$requestPayload = @{
'jsonrpc' = '2.0'
'method' = $method
'params' = $params
'id' = 0
}
# Convert the request payload to JSON
$jsonPayload = $requestPayload | ConvertTo-Json
# Define the URL and credentials
$url = "https://webadm1.rcdevsdocs.com/manag/"
$auth = "RCDEVSDOCS\administrator:password"
# Make the POST request
$response = Invoke-RestMethod -Uri $url -Method Post -Body $jsonPayload -Headers @{ "Content-Type" = "application/json" } -Credential (New-Object System.Management.Automation.PSCredential($auth, (ConvertTo-SecureString "password" -AsPlainText -Force))) -SkipCertificateCheck
# Output the response
Write-Host "HTTP Response Code: $($response.status_code)"
Write-Host $response | ConvertTo-Json