Comment on page
Create client credentials
For mass-deployment
For a mass deployment of clients, where each client shall use its own
client_id
and password
, proceed as follows:- 1.Generate an API key with scope
clients
-auth. - 2.Go to client access and generate a pairing script for any of the clients.
- 3.Download the bash or PowerShell script to your desktop, but don't execute it.
- 4.Open the scripts with an editor and go to the line where variables
CLIENT_ID
/$client_id
andPASSWORD
/$password
are defined. - 5.Delete the lines and replace with the below snippets. Each time you execute the script, new client credentials are created via an API call.
- 6.Now copy this script to new clients and execute.

On Linux

On Windows
#
# Create new client credentials
#
$apiToken = "xxxxx_b4306692-389c-4f4b-8c3c-50638ef07086" # Use token with 'clients-auth' scope
$apiUrl = "https://rport.example.com:443/api/v1/clients-auth"
$apiUser = "john"
$password = (-join ((48..57) + (97..122) | Get-Random -Count 14 | % {[char]$_}))
$client_id = $env:computername
$body = @{
id=$client_id
password=$password
}
$json = $body|ConvertTo-Json
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $apiUser,$apiToken)))
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization = "Basic $base64AuthInfo"} -Method Post -Body $json -ContentType 'application/json'
API_TOKEN="xxxxx_8fdef130-6597-4522-ae67-62feabfcf05d"
API_USER="john"
API_URL="https://rport.example.com:443/api/v1/clients-auth"
PASSWORD=$(openssl rand -hex 10)
CLIENT_ID=$(hostname -f) # or use /etc/machine-id
BODY="{
\"id\":\"${CLIENT_ID}\",
\"password\":\"${PASSWORD}\"
}"
curl -fsu ${API_USER}:${API_TOKEN} ${API_URL} -H "Content-Type: application/json" -d "${BODY}"