API Docs - For Review
/
No Results Found

Certificate Authority Configs

This API allows you to manage Certificate Authority configurations for Authnfactor Configs in Identity Protection.

Download Certificate Authority Configs OpenAPI Document

Attribute

id
string
Unique identifier for the certificate authority configuration.
is_enabled
boolean
To enable or disable the configured CA
ca_file
binary
CER encoded CA certificate file
Note: The file should be in .cer format;
subject_name
string
Distinguished Name (DN) of the CA, used for identification
thumbprint
string
Thumbprint of the CA certificate, used for identification
certificate_mapping_attribute
string
Mapping attribute for smartcard enrollment and verification
expires_on
string
Expiration date of the CA certificate
added_time
string
Timestamp when the CA configuration was added

Example

{ "id": "1525000000178381", "is_enabled": true, "ca_file": "-----BEGIN CERTIFICATE-----\r\nMIIDWjCCAk.....\r\n-----END CERTIFICATE-----\r\n", "subject_name": "CN=idprotection,CN=Users,DC=Com", "thumbprint": "deuejnjenje2endd32ejdjebjfer", "certificate_mapping_attribute": "emailAddress", "expires_on": "2025-09-08T20:14:45.000Z", "added_time": "2025-09-08T20:14:45.000Z" }

Create a Certificate Authority Config

The Create Certificate Authority Config to Authnfactor Config API can be used to create a new certificate authority config for a specific authnfactor config.
OAuth Scope : id360.auth.CREATE,id360.auth.WRITE,id360.auth.ALL

Arguments

is_enabled
boolean
To enable or disable the configured CA
ca_file
binary
CER encoded CA certificate file
Note: The file should be in .cer format;
certificate_mapping_attribute
string
Mapping attribute for smartcard enrollment and verification

Request Example

Click to copy
parameters_data = Map(); parameters_data.put("field1", "value1") parameters_data.put("field2", "value2") headers_data = Map(); headers_data.put("Accept", "application/json"); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://id360.manageengine.com/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs" type: POST headers: headers_data parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("multipart/form-data; boundary=---011000010111000001101001"); RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n"); Request request = new Request.Builder() .url("https://id360.manageengine.com/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs") .post(body) .addHeader("Accept", "application/json") .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001") .build(); Response response = client.newCall(request).execute();
const form = new FormData(); form.append("field1", "value1"); form.append("field2", "value2"); const options = { method: 'POST', headers: { Accept: 'application/json', Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'multipart/form-data; boundary=---011000010111000001101001' } }; options.body = form; fetch('https://id360.manageengine.com/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("id360.manageengine.com") payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n" headers = { 'Accept': "application/json", 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "multipart/form-data; boundary=---011000010111000001101001" } conn.request("POST", "/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "id360.manageengine.com", "port": null, "path": "/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs", "headers": { "Accept": "application/json", "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "multipart/form-data; boundary=---011000010111000001101001" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n"); req.end();
curl --request POST \ --url https://id360.manageengine.com/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs \ --header 'Accept: application/json' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: multipart/form-data' \ --form field1=value1 \ --form field2=value2

Body Parameters

Click to copy
{ "is_enabled": true, "ca_file": "-----BEGIN CERTIFICATE-----\r\nMIIDWjCCAk.....\r\n-----END CERTIFICATE-----\r\n", "certificate_mapping_attribute": "emailAddress" }

Response Example

{ "data": { "id": "1525000000178381", "is_enabled": true, "subject_name": "CN=idprotection,CN=Users,DC=Com", "thumbprint": "deuejnjenje2endd32ejdjebjfer", "certificate_mapping_attribute": "emailAddress", "expires_on": "2025-09-08T20:14:45.000Z", "added_time": "2025-09-08T20:14:45.000Z" } }
{ "error": { "code": "00000101", "title": "Unauthorized", "detail": "The OAuth token is invalid." } }
{ "error": { "code": "00000000", "title": "Internal Server Error", "detail": "An unexpected internal error has occurred on the server. Please try again later." } }

Update Certificate Authority Config

The Update Certificate Authority Config API can be used to update the details of a specific certificate authority config in a specific authnfactor config.
OAuth Scope : id360.auth.UPDATE,id360.auth.WRITE,id360.auth.ALL

Arguments

is_enabled
boolean
To enable or disable the configured CA
ca_file
binary
CER encoded CA certificate file
Note: The file should be in .cer format;
certificate_mapping_attribute
string
Mapping attribute for smartcard enrollment and verification

Request Example

Click to copy
parameters_data = Map(); parameters_data.put("is_enabled", "true") parameters_data.put("ca_file", "-----BEGIN CERTIFICATE----- MIIDWjCCAk..... -----END CERTIFICATE----- ") parameters_data.put("certificate_mapping_attribute", "emailAddress") headers_data = Map(); headers_data.put("Accept", "application/json"); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://id360.manageengine.com/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs/1525000000178381" type: PATCH headers: headers_data parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("multipart/form-data; boundary=---011000010111000001101001"); RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_enabled\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"ca_file\"\r\n\r\n-----BEGIN CERTIFICATE-----\r\nMIIDWjCCAk.....\r\n-----END CERTIFICATE-----\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"certificate_mapping_attribute\"\r\n\r\nemailAddress\r\n-----011000010111000001101001--\r\n"); Request request = new Request.Builder() .url("https://id360.manageengine.com/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs/1525000000178381") .patch(body) .addHeader("Accept", "application/json") .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001") .build(); Response response = client.newCall(request).execute();
const form = new FormData(); form.append("is_enabled", "true"); form.append("ca_file", "-----BEGIN CERTIFICATE-----\r\nMIIDWjCCAk.....\r\n-----END CERTIFICATE-----\r\n"); form.append("certificate_mapping_attribute", "emailAddress"); const options = { method: 'PATCH', headers: { Accept: 'application/json', Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'multipart/form-data; boundary=---011000010111000001101001' } }; options.body = form; fetch('https://id360.manageengine.com/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs/1525000000178381', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("id360.manageengine.com") payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_enabled\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"ca_file\"\r\n\r\n-----BEGIN CERTIFICATE-----\r\nMIIDWjCCAk.....\r\n-----END CERTIFICATE-----\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"certificate_mapping_attribute\"\r\n\r\nemailAddress\r\n-----011000010111000001101001--\r\n" headers = { 'Accept': "application/json", 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "multipart/form-data; boundary=---011000010111000001101001" } conn.request("PATCH", "/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs/1525000000178381", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PATCH", "hostname": "id360.manageengine.com", "port": null, "path": "/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs/1525000000178381", "headers": { "Accept": "application/json", "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "multipart/form-data; boundary=---011000010111000001101001" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_enabled\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"ca_file\"\r\n\r\n-----BEGIN CERTIFICATE-----\r\nMIIDWjCCAk.....\r\n-----END CERTIFICATE-----\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"certificate_mapping_attribute\"\r\n\r\nemailAddress\r\n-----011000010111000001101001--\r\n"); req.end();
curl --request PATCH \ --url https://id360.manageengine.com/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs/1525000000178381 \ --header 'Accept: application/json' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: multipart/form-data' \ --form is_enabled=true \ --form 'ca_file=-----BEGIN CERTIFICATE----- MIIDWjCCAk..... -----END CERTIFICATE----- ' \ --form certificate_mapping_attribute=emailAddress

Body Parameters

Click to copy
{ "is_enabled": true, "ca_file": "-----BEGIN CERTIFICATE-----\r\nMIIDWjCCAk.....\r\n-----END CERTIFICATE-----\r\n", "certificate_mapping_attribute": "emailAddress" }

Response Example

{ "data": { "id": "1525000000178381", "is_enabled": true, "subject_name": "CN=idprotection,CN=Users,DC=Com", "thumbprint": "deuejnjenje2endd32ejdjebjfer", "certificate_mapping_attribute": "emailAddress", "expires_on": "2025-09-08T20:14:45.000Z", "added_time": "2025-09-08T20:14:45.000Z" } }
{ "error": { "code": "00000101", "title": "Unauthorized", "detail": "The OAuth token is invalid." } }
{ "error": { "code": "---", "title": "CA Configuration Not Found", "detail": "This CA Configuration ID does not exist." } }
{ "error": { "code": "00000000", "title": "Internal Server Error", "detail": "An unexpected internal error has occurred on the server. Please try again later." } }

Delete Certificate Authority Config

Delete Certificate Authority Config API can be used to delete a specific certificate authority config in a specific authnfactor config.
OAuth Scope : id360.auth.DELETE,id360.auth.WRITE,id360.auth.ALL

Request Example

Click to copy
headers_data = Map(); headers_data.put("Accept", "application/json"); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://id360.manageengine.com/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs/1525000000178381" type: DELETE headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://id360.manageengine.com/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs/1525000000178381") .delete(null) .addHeader("Accept", "application/json") .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'DELETE', headers: { Accept: 'application/json', Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://id360.manageengine.com/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs/1525000000178381', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("id360.manageengine.com") headers = { 'Accept': "application/json", 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("DELETE", "/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs/1525000000178381", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "DELETE", "hostname": "id360.manageengine.com", "port": null, "path": "/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs/1525000000178381", "headers": { "Accept": "application/json", "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request DELETE \ --url https://id360.manageengine.com/api/v1/protection/authnfactor-configs/1525000000165354/ca-configs/1525000000178381 \ --header 'Accept: application/json' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "error": { "code": "00000101", "title": "Unauthorized", "detail": "The OAuth token is invalid." } }
{ "error": { "code": "---", "title": "CA Configuration Not Found", "detail": "This CA Configuration ID does not exist." } }
{ "error": { "code": "00000000", "title": "Internal Server Error", "detail": "An unexpected internal error has occurred on the server. Please try again later." } }