SAML
Configuration
curl
curl -X GET "https://appliance.example.com/api/v1/saml/config" \
-H "Authorization: Bearer $TOKEN"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/saml/config';
$headers = [
'Authorization: Bearer ' . $token,
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
headers = {"Authorization": f"Bearer {token}"}
response = requests.get("https://appliance.example.com/api/v1/saml/config", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/saml/config', {
method: 'GET',
headers: {
Authorization: `Bearer ${token}`,
},
});
const data = await response.json();
Bruno
meta {
name: Get the SAML settings
type: http
seq: 1
}
get {
url: https://{{node-0}}:{{port}}/api/v1/saml/config
body: none
auth: bearer
}
auth:bearer {
token: {{token}}
}
Response
{
"status": "success",
"message": "SAML configuration",
"data": []
}
curl
curl -X PUT "https://appliance.example.com/api/v1/saml/config" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"spEntityId": "<spEntityId>",
"idpEntityId": "<idpEntityId>",
"idpSsoUrl": "<idpSsoUrl>",
"idpCertificate": "<idpCertificate>",
"objectIdClaim": "<objectIdClaim>",
"groupsClaim": "<groupsClaim>",
"emailClaim": "<emailClaim>",
"firstNameClaim": "<firstNameClaim>",
"lastNameClaim": "<lastNameClaim>",
"fallbackGroupId": "<fallbackGroupId>",
"mappings": [
{
"claimValue": "<claimValue>",
"groupIds": [
"<groupIds>"
]
}
],
"samlEndpointEnabled": true,
"samlFipId": "<samlFipId>",
"samlPort": 0,
"samlCertId": "<samlCertId>",
"samlEndpointHost": "<samlEndpointHost>",
"scimEndpointEnabled": true,
"scimFipId": "<scimFipId>",
"scimPort": 0,
"scimCertId": "<scimCertId>"
}'
PHP
<?php
$url = 'https://appliance.example.com/api/v1/saml/config';
$headers = [
'Authorization: Bearer ' . $token,
'Content-Type: application/json',
];
$payload = [
'enabled' => true,
'spEntityId' => '<spEntityId>',
'idpEntityId' => '<idpEntityId>',
'idpSsoUrl' => '<idpSsoUrl>',
'idpCertificate' => '<idpCertificate>',
'objectIdClaim' => '<objectIdClaim>',
'groupsClaim' => '<groupsClaim>',
'emailClaim' => '<emailClaim>',
'firstNameClaim' => '<firstNameClaim>',
'lastNameClaim' => '<lastNameClaim>',
'fallbackGroupId' => '<fallbackGroupId>',
'mappings' => [
[
'claimValue' => '<claimValue>',
'groupIds' => [
'<groupIds>',
],
],
],
'samlEndpointEnabled' => true,
'samlFipId' => '<samlFipId>',
'samlPort' => 0,
'samlCertId' => '<samlCertId>',
'samlEndpointHost' => '<samlEndpointHost>',
'scimEndpointEnabled' => true,
'scimFipId' => '<scimFipId>',
'scimPort' => 0,
'scimCertId' => '<scimCertId>',
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
headers = {"Authorization": f"Bearer {token}"}
payload = {
"enabled": true,
"spEntityId": "<spEntityId>",
"idpEntityId": "<idpEntityId>",
"idpSsoUrl": "<idpSsoUrl>",
"idpCertificate": "<idpCertificate>",
"objectIdClaim": "<objectIdClaim>",
"groupsClaim": "<groupsClaim>",
"emailClaim": "<emailClaim>",
"firstNameClaim": "<firstNameClaim>",
"lastNameClaim": "<lastNameClaim>",
"fallbackGroupId": "<fallbackGroupId>",
"mappings": [
{
"claimValue": "<claimValue>",
"groupIds": [
"<groupIds>"
]
}
],
"samlEndpointEnabled": true,
"samlFipId": "<samlFipId>",
"samlPort": 0,
"samlCertId": "<samlCertId>",
"samlEndpointHost": "<samlEndpointHost>",
"scimEndpointEnabled": true,
"scimFipId": "<scimFipId>",
"scimPort": 0,
"scimCertId": "<scimCertId>"
}
response = requests.put("https://appliance.example.com/api/v1/saml/config", headers=headers, json=payload)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/saml/config', {
method: 'PUT',
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"enabled": true,
"spEntityId": "<spEntityId>",
"idpEntityId": "<idpEntityId>",
"idpSsoUrl": "<idpSsoUrl>",
"idpCertificate": "<idpCertificate>",
"objectIdClaim": "<objectIdClaim>",
"groupsClaim": "<groupsClaim>",
"emailClaim": "<emailClaim>",
"firstNameClaim": "<firstNameClaim>",
"lastNameClaim": "<lastNameClaim>",
"fallbackGroupId": "<fallbackGroupId>",
"mappings": [
{
"claimValue": "<claimValue>",
"groupIds": [
"<groupIds>"
]
}
],
"samlEndpointEnabled": true,
"samlFipId": "<samlFipId>",
"samlPort": 0,
"samlCertId": "<samlCertId>",
"samlEndpointHost": "<samlEndpointHost>",
"scimEndpointEnabled": true,
"scimFipId": "<scimFipId>",
"scimPort": 0,
"scimCertId": "<scimCertId>"
}),
});
const data = await response.json();
Bruno
meta {
name: Update the SAML settings
type: http
seq: 1
}
put {
url: https://{{node-0}}:{{port}}/api/v1/saml/config
body: json
auth: bearer
}
headers {
Content-Type: application/json
}
auth:bearer {
token: {{token}}
}
body:json {
{
"enabled": true,
"spEntityId": "<spEntityId>",
"idpEntityId": "<idpEntityId>",
"idpSsoUrl": "<idpSsoUrl>",
"idpCertificate": "<idpCertificate>",
"objectIdClaim": "<objectIdClaim>",
"groupsClaim": "<groupsClaim>",
"emailClaim": "<emailClaim>",
"firstNameClaim": "<firstNameClaim>",
"lastNameClaim": "<lastNameClaim>",
"fallbackGroupId": "<fallbackGroupId>",
"mappings": [
{
"claimValue": "<claimValue>",
"groupIds": [
"<groupIds>"
]
}
],
"samlEndpointEnabled": true,
"samlFipId": "<samlFipId>",
"samlPort": 0,
"samlCertId": "<samlCertId>",
"samlEndpointHost": "<samlEndpointHost>",
"scimEndpointEnabled": true,
"scimFipId": "<scimFipId>",
"scimPort": 0,
"scimCertId": "<scimCertId>"
}
}
Response
{
"status": "success",
"message": "SAML configuration updated",
"data": []
}
curl
curl -X DELETE "https://appliance.example.com/api/v1/saml/config" \
-H "Authorization: Bearer $TOKEN"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/saml/config';
$headers = [
'Authorization: Bearer ' . $token,
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
headers = {"Authorization": f"Bearer {token}"}
response = requests.delete("https://appliance.example.com/api/v1/saml/config", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/saml/config', {
method: 'DELETE',
headers: {
Authorization: `Bearer ${token}`,
},
});
const data = await response.json();
Bruno
meta {
name: Clear the SAML settings
type: http
seq: 1
}
delete {
url: https://{{node-0}}:{{port}}/api/v1/saml/config
body: none
auth: bearer
}
auth:bearer {
token: {{token}}
}
Response
{
"status": "success",
"message": "SAML configuration cleared",
"data": []
}
Ingest SAML metadata
curl
curl -X POST "https://appliance.example.com/api/v1/saml/config/metadata" \
-H "Authorization: Bearer $TOKEN"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/saml/config/metadata';
$headers = [
'Authorization: Bearer ' . $token,
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
headers = {"Authorization": f"Bearer {token}"}
response = requests.post("https://appliance.example.com/api/v1/saml/config/metadata", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/saml/config/metadata', {
method: 'POST',
headers: {
Authorization: `Bearer ${token}`,
},
});
const data = await response.json();
Bruno
meta {
name: Ingest SAML metadata
type: http
seq: 1
}
post {
url: https://{{node-0}}:{{port}}/api/v1/saml/config/metadata
body: none
auth: bearer
}
auth:bearer {
token: {{token}}
}
Response
{
"status": "success",
"message": "Identity-provider metadata parsed",
"data": []
}
Get the SAML service provider metadata
curl
curl -X GET "https://appliance.example.com/api/v1/saml/metadata" \
-H "Authorization: Bearer $TOKEN"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/saml/metadata';
$headers = [
'Authorization: Bearer ' . $token,
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
headers = {"Authorization": f"Bearer {token}"}
response = requests.get("https://appliance.example.com/api/v1/saml/metadata", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/saml/metadata', {
method: 'GET',
headers: {
Authorization: `Bearer ${token}`,
},
});
const data = await response.json();
Bruno
meta {
name: Get the SAML service provider metadata
type: http
seq: 1
}
get {
url: https://{{node-0}}:{{port}}/api/v1/saml/metadata
body: none
auth: bearer
}
auth:bearer {
token: {{token}}
}
Response
{
"status": "success",
"message": "Service-provider metadata",
"data": []
}
Rotate the SCIM bearer token
curl
curl -X POST "https://appliance.example.com/api/v1/saml/scim/token" \
-H "Authorization: Bearer $TOKEN"
PHP
<?php
$url = 'https://appliance.example.com/api/v1/saml/scim/token';
$headers = [
'Authorization: Bearer ' . $token,
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests
headers = {"Authorization": f"Bearer {token}"}
response = requests.post("https://appliance.example.com/api/v1/saml/scim/token", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/saml/scim/token', {
method: 'POST',
headers: {
Authorization: `Bearer ${token}`,
},
});
const data = await response.json();
Bruno
meta {
name: Rotate the SCIM bearer token
type: http
seq: 1
}
post {
url: https://{{node-0}}:{{port}}/api/v1/saml/scim/token
body: none
auth: bearer
}
auth:bearer {
token: {{token}}
}
Response
{
"status": "success",
"message": "SCIM bearer token generated — copy it now; it will not be shown again",
"data": {
"token": "<token>"
}
}