The OpenOTP.OCRA_Register
method is used to register an OCRA token.
The required parameters are the key
(in base 64) that is the token binary random seed and the dn
of the LDAP user.
The key
length can be :
- 20 bytes for a SHA1 OATH token
- 32 bytes for a SHA256 OATH token
- 64 bytes for a SHA512 OATH token
The optional parameters are the pin
, which is needed with OCRA Suites having a PIN component, the state
of the token and the id
that indicates which token is registered if multiple tokens are allowed. By default, when id is not set, the primary token is selected.
This method returns true
on success and false
on error.
import requests
import json
# Define the method and parameters
method = 'OpenOTP.OCRA_Register'
params = {
'dn': 'cn=jane doe,cn=users,dc=rcdevsdocs,dc=com',
'key': '6f7MXjiju3vmI9Ow6kH7nIdqx8I=',
'pin': '123456',
'state': '0',
'id': 1
}
# 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 = 'OpenOTP.OCRA_Register';
$params = array(
'dn' => 'cn=jane doe,cn=users,dc=rcdevsdocs,dc=com',
'key' => '6f7MXjiju3vmI9Ow6kH7nIdqx8I=',
'pin' => '123456',
'state' => '0',
'id' => 1
);
$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 = 'OpenOTP.OCRA_Register'
$params = @{
dn = 'cn=jane doe,cn=users,dc=rcdevsdocs,dc=com'
key = '6f7MXjiju3vmI9Ow6kH7nIdqx8I='
pin = '123456'
state = '0'
id = 1
}
# 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