62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
import json
|
|
import requests
|
|
import os
|
|
import pandas as pd
|
|
import utils.pretty as ct
|
|
|
|
|
|
def getDestAllowlistFromClientID(url, clientid="0dcddaf3-d017-4ced-9227-ceeca3117286"):
|
|
|
|
#This is dependant on their being an allowlist in the policy with the same name as the policy
|
|
|
|
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"])
|
|
|
|
policyname = getPolicyName(url,data.loc[0, "groupid"])
|
|
allowlists = getPolicyAllowlists(url,data.loc[0, "groupid"])
|
|
|
|
app_id = allowlists.loc[allowlists['name'] == f'{policyname}', 'applicationid'].values[0]
|
|
|
|
return app_id
|
|
|
|
|
|
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 |