SpanKey - SpanKey.Key_Import

The SpanKey.Key_Import method is used to register an external SSH key on the user account.

The required parameters are the dn of the LDAP user for which the external key will be imported, and the pubkey which is the public key related. Only RSA public keys can be imported and the key can be in SSH or PEM format.
The optional parameters are maxuse and expires. The expiration can be 0 (never expires) or a number of days between 1 and 360. The maxuse count can be 0 (no limit) or a number between 1 and 500.

This method returns true on success and false on error.


import requests
import json

# Define the method and parameters
method = 'SpanKey.Key_Import'
params = {
    'dn': 'cn=jane doe,cn=users,dc=rcdevsdocs,dc=com',
    'pubkey': 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3FakeExampleKey1234567890abcdefgHijklmnopQRSTuvwxYZ',
    'expires': 200,
    'maxuse': 50
}

# 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
$method = 'SpanKey.Key_Import';
$params = array(
    'dn' => 'cn=jane doe,cn=users,dc=rcdevsdocs,dc=com',
    'pubkey' => 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3FakeExampleKey1234567890abcdefgHijklmnopQRSTuvwxYZ',
    'expires' => 200,
    'maxuse' => 50
);

$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 = 'SpanKey.Key_Import'
$params = @{
    dn = 'cn=jane doe,cn=users,dc=rcdevsdocs,dc=com'
    pubkey = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3FakeExampleKey1234567890abcdefgHijklmnopQRSTuvwxYZ'
    expires = 200
    maxuse = 50
}

# 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