Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 28 Next »

You can use the API tokenization feature (Python) in the Armor Management Portal (AMP) to create an API key. This key will help you log into the Armor API system. 


Step 1: Create an API key

Error rendering macro 'excerpt-include' : No link could be created for 'ESLP:Create an API (snippet)'.


Step 2: Authenticate into the Armor API system

To authenticate, you need to build a header with the following components: 

ParameterDescription
app_idEnter the Key ID generated from AMP.
secret_keyEnter the Secret Key generated from AMP.
request_path
http_methodEnter POST.
timestampEnter a Unix time stamp within 5 minutes of the current time.
nonce

Enter a unique ID.

  • This ID should be unique per request.
  • This ID cannot be longer than 128 characters.
  • This ID cannot contain a colon ( : ). 

For all v2 API's, the request body should be empty.


Review sample code for Python 2.7.13 (Post Request):

def post_requests_apiKey_payload(self,  path = "/example/anywhere/", body = ):
        app_id = "<api_key_id>"
        secret_key = "<secret_key>"
        request_path = urlparse.urlparse(path).path
        http_method = "POST"
        timestamp = int(time.time())
        nonce = uuid.uuid4()
        hash_obj = hashlib.sha512(json.dumps(body)).digest()
        request_body = base64.b64encode(hash_obj)
        content = (app_id, http_method, request_path, str(nonce), str(timestamp), request_body)
        request_data = ''.join(content)
        mc = hmac.new(secret_key, request_data, hashlib.sha512)
        signature = base64.b64encode(mc.digest())
        auth_header = "ARMOR-PSK " + str(app_id) + ':' + str(signature) + ':' + str(nonce) + ':' + str(timestamp)
        request_header = {
            'Content-Type': 'application/json',
            "Authorization": auth_header
        }
        response = requests.post(self._url(path), data=json.dumps(body), headers=request_header)
        print (response.status_code)
        return response


Review sample code for Python 3.6.5 (Post Request):

def _post_requests_apiKey_payload(self, path="/example/anywhere", body = ):
        app_id = "<api_key_id>"
        secret_key = "<secret_key>"
        request_path = urlparse(path).path
        http_method = "POST"
        timestamp = int(time.time())
        nonce = uuid.uuid4()
        hash_obj = hashlib.sha512(bytes(json.dumps(body), 'utf-8'))
        request_body = base64.standard_b64encode(hash_obj.digest())
        content = (app_id, http_method, request_path, str(nonce), str(timestamp), request_body.decode())
        request_data = ''.join(content)
        mc = hmac.new(bytes(secret_key, 'utf-8'), bytes(request_data, 'utf-8'), hashlib.sha512)
        signature = base64.standard_b64encode(mc.digest())
        auth_header = "ARMOR-PSK " + str(app_id) + ':' + str(signature.decode('utf-8')) + ':' + str(
            nonce) + ':' + str(timestamp)
        request_header = {
            'Content-Type': 'application/json',
            "Authorization": auth_header
        }
        response = requests.post(self._url(path), data=json.dumps(body), headers=request_header)
        print (response.status_code)
        return response


Step 3: Make an API Call

To learn about the different calls that you can make, see Armor API Guide.


Related Documentation 




Was this helpful?



  • No labels