Initiate SSO Login
curl --request POST \
--url https://api.dfns.io/auth/login/sso/init \
--header 'Content-Type: application/json' \
--data '
{
"clientId": "<string>",
"redirectUri": "<string>",
"orgId": "or-30tnh-itmjs-s235s5ontr3r23h2",
"tenantId": "acct-24hka-dhili-9hgvdlvr1ohpibp4"
}
'import requests
url = "https://api.dfns.io/auth/login/sso/init"
payload = {
"clientId": "<string>",
"redirectUri": "<string>",
"orgId": "or-30tnh-itmjs-s235s5ontr3r23h2",
"tenantId": "acct-24hka-dhili-9hgvdlvr1ohpibp4"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
clientId: '<string>',
redirectUri: '<string>',
orgId: 'or-30tnh-itmjs-s235s5ontr3r23h2',
tenantId: 'acct-24hka-dhili-9hgvdlvr1ohpibp4'
})
};
fetch('https://api.dfns.io/auth/login/sso/init', 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.dfns.io/auth/login/sso/init",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'clientId' => '<string>',
'redirectUri' => '<string>',
'orgId' => 'or-30tnh-itmjs-s235s5ontr3r23h2',
'tenantId' => 'acct-24hka-dhili-9hgvdlvr1ohpibp4'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dfns.io/auth/login/sso/init"
payload := strings.NewReader("{\n \"clientId\": \"<string>\",\n \"redirectUri\": \"<string>\",\n \"orgId\": \"or-30tnh-itmjs-s235s5ontr3r23h2\",\n \"tenantId\": \"acct-24hka-dhili-9hgvdlvr1ohpibp4\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.dfns.io/auth/login/sso/init")
.header("Content-Type", "application/json")
.body("{\n \"clientId\": \"<string>\",\n \"redirectUri\": \"<string>\",\n \"orgId\": \"or-30tnh-itmjs-s235s5ontr3r23h2\",\n \"tenantId\": \"acct-24hka-dhili-9hgvdlvr1ohpibp4\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dfns.io/auth/login/sso/init")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"clientId\": \"<string>\",\n \"redirectUri\": \"<string>\",\n \"orgId\": \"or-30tnh-itmjs-s235s5ontr3r23h2\",\n \"tenantId\": \"acct-24hka-dhili-9hgvdlvr1ohpibp4\"\n}"
response = http.request(request)
puts response.read_body{
"ssoRedirectUrl": "<string>"
}Initiate SSO Login
Initialize the login process with SSO by returning the IdP URL to call.
SSO is for employees (CustomerEmployee) of an organization that configured SSO in the dashboard (Integrations > OpenID). The user must already exist in the organization and have isSSORequired set. See Set up SSO.
POST
/
auth
/
login
/
sso
/
init
Initiate SSO Login
curl --request POST \
--url https://api.dfns.io/auth/login/sso/init \
--header 'Content-Type: application/json' \
--data '
{
"clientId": "<string>",
"redirectUri": "<string>",
"orgId": "or-30tnh-itmjs-s235s5ontr3r23h2",
"tenantId": "acct-24hka-dhili-9hgvdlvr1ohpibp4"
}
'import requests
url = "https://api.dfns.io/auth/login/sso/init"
payload = {
"clientId": "<string>",
"redirectUri": "<string>",
"orgId": "or-30tnh-itmjs-s235s5ontr3r23h2",
"tenantId": "acct-24hka-dhili-9hgvdlvr1ohpibp4"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
clientId: '<string>',
redirectUri: '<string>',
orgId: 'or-30tnh-itmjs-s235s5ontr3r23h2',
tenantId: 'acct-24hka-dhili-9hgvdlvr1ohpibp4'
})
};
fetch('https://api.dfns.io/auth/login/sso/init', 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.dfns.io/auth/login/sso/init",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'clientId' => '<string>',
'redirectUri' => '<string>',
'orgId' => 'or-30tnh-itmjs-s235s5ontr3r23h2',
'tenantId' => 'acct-24hka-dhili-9hgvdlvr1ohpibp4'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dfns.io/auth/login/sso/init"
payload := strings.NewReader("{\n \"clientId\": \"<string>\",\n \"redirectUri\": \"<string>\",\n \"orgId\": \"or-30tnh-itmjs-s235s5ontr3r23h2\",\n \"tenantId\": \"acct-24hka-dhili-9hgvdlvr1ohpibp4\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.dfns.io/auth/login/sso/init")
.header("Content-Type", "application/json")
.body("{\n \"clientId\": \"<string>\",\n \"redirectUri\": \"<string>\",\n \"orgId\": \"or-30tnh-itmjs-s235s5ontr3r23h2\",\n \"tenantId\": \"acct-24hka-dhili-9hgvdlvr1ohpibp4\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dfns.io/auth/login/sso/init")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"clientId\": \"<string>\",\n \"redirectUri\": \"<string>\",\n \"orgId\": \"or-30tnh-itmjs-s235s5ontr3r23h2\",\n \"tenantId\": \"acct-24hka-dhili-9hgvdlvr1ohpibp4\"\n}"
response = http.request(request)
puts response.read_body{
"ssoRedirectUrl": "<string>"
}Authentication
No authentication required.Required Permissions
No authentication required.Body
application/json
Client Id obtained from the IdP
Redirect URI used for the authentication flow
Organization id.
Required string length:
1 - 64Pattern:
^or-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$Example:
"or-30tnh-itmjs-s235s5ontr3r23h2"
Tenant id.
Required string length:
1 - 64Pattern:
^acct-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$Example:
"acct-24hka-dhili-9hgvdlvr1ohpibp4"
Response
200 - application/json
Success
The URL to redirect the user to authenticate with the IdP
Was this page helpful?