Certificate Authority Configs
This API allows you to manage Certificate Authority configurations for Authnfactor Configs in Identity Protection.
Attribute
Note: The file should be in .cer format;
{
"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
Note: The file should be in .cer format;
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
{
"is_enabled": true,
"ca_file": "-----BEGIN CERTIFICATE-----\r\nMIIDWjCCAk.....\r\n-----END CERTIFICATE-----\r\n",
"certificate_mapping_attribute": "emailAddress"
}
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
Note: The file should be in .cer format;
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
{
"is_enabled": true,
"ca_file": "-----BEGIN CERTIFICATE-----\r\nMIIDWjCCAk.....\r\n-----END CERTIFICATE-----\r\n",
"certificate_mapping_attribute": "emailAddress"
}
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
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'