Skip to main content

Security and Access Control

Security

The REST-style API is exposed via TLS v1.2, with a self-signed certificate by default. The port is customizable, 4494 by default. The IP whitelist can be used to restrict access to the port.

You can use the Activity Monitor Console to allow applications to access the API, change permissions, or revoke access. The console generates unique Client ID and Secret for each application.

Authentication

OAuth 2.0 client-credentials grant is used for authentication. A pair of Client ID and Secret are used to obtain an access token from the access token URL: https://localhost:4494/api/v1/token. Token expiration intervals are not configurable.

TypeExpires in
Client Secret72 hours
Access Token7 days
Refresh Tokennever

It is considered a best practice to use short expiration periods for OAuth 2.0 tokens, like 1 hour for the access token. A shorter period allows you to revoke the access quicker if needed. In case of Activity Monitor, the Agent is both the authentication server and the resource server. Therefore, it can validate the token on each and every access to a resource. So, for Activity Monitor long expiration periods do not make the protocol less secure.

A client is expected to pass the access token in the Authorization request header.

NOTE: Use a client library that is secure and fully implements the OAuth 2.0 protocol. The sample below shows just a piece of OAuth 2 interaction.

curl -X POST -d "client_id=<CLIENT_ID>&client_secret=<CLIENT_SECRET>&grant_type=client_credentials" https://<AGENT_SERVER>:4494/api/v1/token --insecure
{"access_token":"AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAZpRDOzeUzUikVK9ydmsV1QAAAAACAAAAAAAQZgAAAAEAACAAAAAFzYG4Tasvowq939pou5ADE883Ns2DV-X6_S20RMDcwAAAAAAOgAAAAAIAACAAAAB1IcZrZavgp2Ab63P
8kbCr7NwopOsfz0SeSaXjKVhVC-AAAACix_0klwXoiwiqTZTlaUXCqn9MkquZC84ew9E0-E_vu6FNJ6NDLj7MGCPR-mCi4MRmwr6TYtZ_XfAXRtSh66gbABv-gTnmimruLRWxN2is5twUl563kGpHqnbKydqPNgOy4gXxgR_V08kFut2qPxZ
LsN14yK8Prp1paaQy4-mhONaFIrVx7bOmVIdfVnjEYjwIRdd9QjQEY3wJtnDIEBWi2s-6uYo8tcCEztPiraBpLJC3Tib8NQYu_YxwbzeRun_h2KZOMewLzkfZGS2h9SvvnlxECQ0G5PEfslnAEwC7VEAAAAAxZTm06tyRQNMbw_bLr4FiZi0
y-QipaafBBRtm83q-l6bG9bQ-C1Hr19-0H6KgzDb3_JJWxxNmGdD-wG95wjlD","token_type":"bearer","expires_in":604799,"refresh_token":"AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAZpRDOzeUzUikVK9ydmsV1QAAAA
ACAAAAAAAQZgAAAAEAACAAAAAocNSP3GFuJ0RK_1dsX5uSR4dmiqzhV7-LYhc9sYbF2gAAAAAOgAAAAAIAACAAAABQuudDm06II62U6vM2u9CczyRa1siP-H3WfP6iDYOmh-AAAADjzqzTweG14Gngd68rC3BX4GA4kBR5FA8JVVly3KHUS2
Q-SD9q4S9C3yLZxv2k_zGr2YA_bVdfZ78vRCUYC3QgbpJTjzYPWnPNW5RsqLLtd47h6THU5Wc0RkoBG4c8gB569Jvl0WkAG3xJFHitbUQISYbSosd-cIW4JZkHzcT3zkPgAtLkNyhqQd1g1jgCzP63MCAFq1AN2NB2wLCk_jNRi8aypxR1Ty
F5HpSlZ6QzVNycMNeckayAEOCAUAXwx_tBVhqvUwn7YEF_bT2WYoW9boU_IUzWKtO8R5MXsVR6aEAAAAATVk3stUcghjkgv6abuLddE9Hf2S0o9Gpmp4UPallX6dIbAvm10f-De1aTU-jG7LJMdAv2PKVyuGiyUzI-DE0K"}

Authorization

A user assigns permissions to a client application. Permissions can be combined.

Activity Monitor8.0 permissions:

PermissionDescription
Access activity dataProvides minimal access rights to list and download the log files.
ReadRead-only access to all the information about all agents, domains, and hosts. Does not allow one to download the log files.
Policy changeAdd, modify, and delete the AD monitoring policies.
Modify hostAdd, modify, enable, disable, and delete Hosts and their Outputs.
Modify agentAdd, modify, and delete agents.

An unauthorized request fails with 404 Not Found (instead of 403 Forbidden) when the resource is specified explicitly, by ID. For collections, the API Server removes unauthorized resources from results.

Access activity data is special. It provides limited information only about the agent which hosts the API server, limited monitored domain information, limited monitored hosts information, and outputs - just enough to get information about the log files. See "Detailed Only" column in the next section for the list of attributes not included into the limited information.

Here is how the permissions affect the returned resources:

Permission\ResourceAgentHostDomainOutputPolicyLog File
ReadAll agents, all infoAll hosts, all infoAll domains, all infoAllAllNone
Access activity dataOnly this agent. Limited info.This agent's hosts only. Limited info.This agent's domain only. Limited info.Outputs of this agent's hosts and domainNoneAll files of this agent