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 25 Next »

You can use the API tokenization feature 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 ( : ). 


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