curl --request GET \
--url https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml \
--header 'Authorization: Bearer <token>' \
--header 'ngrok-version: <ngrok-version>'import requests
url = "https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml"
headers = {
"ngrok-version": "<ngrok-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'ngrok-version': '<ngrok-version>', Authorization: 'Bearer <token>'}
};
fetch('https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"ngrok-version: <ngrok-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("ngrok-version", "<ngrok-version>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml")
.header("ngrok-version", "<ngrok-version>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["ngrok-version"] = '<ngrok-version>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"enabled": true,
"options_passthrough": true,
"cookie_prefix": "<string>",
"inactivity_timeout": 123,
"maximum_duration": 123,
"idp_metadata": "<string>",
"force_authn": true,
"allow_idp_initiated": true,
"authorized_groups": [
"<string>"
],
"entity_id": "<string>",
"assertion_consumer_service_url": "<string>",
"single_logout_url": "<string>",
"request_signing_certificate_pem": "<string>",
"metadata_url": "<string>",
"nameid_format": "<string>"
}{
"status_code": 123,
"msg": "<string>",
"error_code": "<string>",
"details": {}
}{
"status_code": 123,
"msg": "<string>",
"error_code": "<string>",
"details": {}
}Get
curl --request GET \
--url https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml \
--header 'Authorization: Bearer <token>' \
--header 'ngrok-version: <ngrok-version>'import requests
url = "https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml"
headers = {
"ngrok-version": "<ngrok-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'ngrok-version': '<ngrok-version>', Authorization: 'Bearer <token>'}
};
fetch('https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"ngrok-version: <ngrok-version>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("ngrok-version", "<ngrok-version>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml")
.header("ngrok-version", "<ngrok-version>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngrok.com/edges/https/{edge_id}/routes/{id}/saml")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["ngrok-version"] = '<ngrok-version>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"enabled": true,
"options_passthrough": true,
"cookie_prefix": "<string>",
"inactivity_timeout": 123,
"maximum_duration": 123,
"idp_metadata": "<string>",
"force_authn": true,
"allow_idp_initiated": true,
"authorized_groups": [
"<string>"
],
"entity_id": "<string>",
"assertion_consumer_service_url": "<string>",
"single_logout_url": "<string>",
"request_signing_certificate_pem": "<string>",
"metadata_url": "<string>",
"nameid_format": "<string>"
}{
"status_code": 123,
"msg": "<string>",
"error_code": "<string>",
"details": {}
}{
"status_code": 123,
"msg": "<string>",
"error_code": "<string>",
"details": {}
}Authorizations
Path Parameters
Response
n/a
If true, the IdP may initiate a login directly (for example, the user does not need to visit the endpoint first and then be redirected). The IdP should set the RelayState parameter to the target URL of the resource they want the user to be redirected to after the SAML login assertion has been processed.
PEM-encoded x.509 certificate of the key pair that is used to sign all SAML requests that the ngrok SP makes to the IdP. Many IdPs do not support request signing verification, but ngrok highly recommends specifying this in the IdP's configuration if it is supported.
Defines the name identifier format the SP expects the IdP to use in its assertions to identify subjects. If unspecified, a default value of urn:oasis:names:tc:SAML:2.0:nameid-format:persistent will be used. A subset of the allowed values enumerated by the SAML specification are supported.
Was this page helpful?