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


Generate client credentials on Windows with PowerShell
#
# 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'
Generate client credentials on Linux with bash
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}"Last updated