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