Set Up an Identity Provider - Cognigy Documentation

Documentation Index

Fetch the complete documentation index at: /llms.txt

Use this file to discover all available pages before exploring further.

POST /v2.0/identityprovider/configure

Try it

Set Up an Identity Provider

cURL

curl --request POST \
  --url https://api-trial.cognigy.ai/new/v2.0/identityprovider/configure \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "idpType": "saml",
  "idpIssuer": "<string>",
  "idpLoginEndpoint": "<string>",
  "idpLogoutEndpoint": "<string>",
  "idpCertificate": "<string>",
  "wantAuthnResponseSigned": true,
  "decryptionPrivateKey": "<string>",
  "idpDisableRequestedAuthnContext": false
}
'

Python

import requests

url = "https://api-trial.cognigy.ai/new/v2.0/identityprovider/configure"

payload = {
    "idpType": "saml",
    "idpIssuer": "<string>",
    "idpLoginEndpoint": "<string>",
    "idpLogoutEndpoint": "<string>",
    "idpCertificate": "<string>",
    "wantAuthnResponseSigned": True,
    "decryptionPrivateKey": "<string>",
    "idpDisableRequestedAuthnContext": False
}
headers = {
    "X-API-Key": "<api-key>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

JavaScript (Fetch API)

const options = {
  method: 'POST',
  headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    idpType: 'saml',
    idpIssuer: '<string>',
    idpLoginEndpoint: '<string>',
    idpLogoutEndpoint: '<string>',
    idpCertificate: '<string>',
    wantAuthnResponseSigned: true,
    decryptionPrivateKey: '<string>',
    idpDisableRequestedAuthnContext: false
  })
};

fetch('https://api-trial.cognigy.ai/new/v2.0/identityprovider/configure', 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-trial.cognigy.ai/new/v2.0/identityprovider/configure",
  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([
    'idpType' => 'saml',
    'idpIssuer' => '<string>',
    'idpLoginEndpoint' => '<string>',
    'idpLogoutEndpoint' => '<string>',
    'idpCertificate' => '<string>',
    'wantAuthnResponseSigned' => true,
    'decryptionPrivateKey' => '<string>',
    'idpDisableRequestedAuthnContext' => false
  ]),
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json",
    "X-API-Key: <api-key>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

Error Messages

Response Codes

{
  "type": "Bad Request",
  "title": "Bad Request Error",
  "status": 400,
  "detail": "Validation failed. Missing payload.",
  "instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
  "code": 1000,
  "traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
  "details": {}
}

Authorizations

APIKeyHeader

Headers

Body

  1. idpType (enum)
    Available options:

    • saml
  2. idpIssuer (string)
    The value that will be in the issuer field in the SAML request.

  3. idpLoginEndpoint (string)
    The URL to use to login in the IDP. Used in the SP initiated Flow.

  4. idpLogoutEndpoint (string)
    The URL to send SLO requests against. Not all identity providers support this.

  5. idpCertificate (string)
    The certificate from the ID used to sign the SAML requests. It is base64 encoded.

  6. wantAuthnResponseSigned (boolean)
    If the SAML authentication response should be signed, not all providers support this.

  7. decryptionPrivateKey (string)
    An optional decryption key. This is necessary if the SAML request is encoded.

  8. idpDisableRequestedAuthnContext (boolean)
    default: false
    For some providers, e.g. Azure on-prem, it might be necessary to disable the authn context field in the SAML request.

Response