79 lines
2.1 KiB
Python
79 lines
2.1 KiB
Python
import json
|
|
import requests
|
|
import os
|
|
import pandas as pd
|
|
import utils.pretty as ct
|
|
|
|
|
|
def getDestAllowlistFromClientID(url, clientid):
|
|
|
|
#This is dependant on their being an allowlist in the policy containing the name "localapproval"
|
|
|
|
endpoint = url + '/v1/agent/find'
|
|
payload = {
|
|
"agentid" : f"{clientid}"
|
|
}
|
|
|
|
headers = {"X-APIKey": os.getenv('APIKEY')}
|
|
payload = json.dumps(payload)
|
|
|
|
|
|
response = requests.post(endpoint, headers=headers, data=payload, verify=False)
|
|
result = json.loads(response.text)
|
|
data = pd.DataFrame(result["response"]["agents"])
|
|
|
|
allowlists = getPolicyAllowlists(url,data.loc[0, "groupid"])
|
|
|
|
app_id = allowlists.loc[allowlists['name'].str.contains('localapproval', case=False, na=False), 'applicationid'].values[0]
|
|
|
|
return app_id
|
|
|
|
def getPolicyFromClientID(url, clientid):
|
|
|
|
endpoint = url + '/v1/agent/find'
|
|
payload = {
|
|
"agentid" : f"{clientid}"
|
|
}
|
|
|
|
headers = {"X-APIKey": os.getenv('APIKEY')}
|
|
payload = json.dumps(payload)
|
|
|
|
|
|
response = requests.post(endpoint, headers=headers, data=payload, verify=False)
|
|
result = json.loads(response.text)
|
|
data = pd.DataFrame(result["response"]["agents"])
|
|
|
|
policy = getPolicyName(url,data.loc[0, "groupid"])
|
|
|
|
return policy
|
|
|
|
def getPolicyAllowlists(url, groupid):
|
|
|
|
endpoint = url + '/v1/group/policies'
|
|
payload = {
|
|
"groupid" : f"{groupid}"
|
|
}
|
|
|
|
headers = {"X-APIKey": os.getenv('APIKEY')}
|
|
payload = json.dumps(payload)
|
|
|
|
response = requests.post(endpoint, headers=headers, data=payload, verify=False)
|
|
result = json.loads(response.text)
|
|
data = pd.DataFrame(result["response"]["applications"])
|
|
return data
|
|
|
|
def getPolicyName(url, groupid):
|
|
|
|
endpoint = url + '/v1/group/'
|
|
payload = {
|
|
|
|
}
|
|
|
|
headers = {"X-APIKey": os.getenv('APIKEY')}
|
|
payload = json.dumps(payload)
|
|
|
|
response = requests.post(endpoint, headers=headers, data=payload, verify=False)
|
|
result = json.loads(response.text)
|
|
data = pd.DataFrame(result["response"]["groups"])
|
|
name = data.loc[data['groupid'] == f"{groupid}", 'name'].values[0]
|
|
return name |