Prerequisite: In order to run the collection below,
a host URL is required, which will be provided by Cynopsis. This can then be set as a global variable
or in the environment created for Athena in the Introduction section.
This documentation covers two methods for obtaining authentication tokens:
- Amazon Cognito User Pools API: The original method for getting tokens via Cognito.
- CRM System API: A newer method for getting tokens directly via the CRM.
Method 1: Using Amazon Cognito User Pools API
To get a Cognito access token, we are using the Amazon Cognito User Pools API.
Postman Authentication Service Collection
Health Check of the Authentication API Service
GET {{host}}/auth/healthCheck
Sample HTTP Response
Expected Response Code: 200
Response Body:
e.g.
{
"description": "the service is healthy"
}
Get Access Token by Username
To generate a token, please make an API call to the following API.
POST {{host}}/auth/get-access-token-by-username
Requirements
For the credentials required below, Cynopsis will advise.
- username
- password
- user_pool_id
- client_id
Sample HTTP Request
HTTP Method: POST
URL: {{host}}/auth/get-access-token-by-username
Request Body:
e.g.
{
"username": "username@mycredentials.com",
"password": "Th15Is@P4S5W0rd!",
"user_pool_id": "Cynopsis to advise",
"client_id": "Cynopsis to advise"
}
Sample HTTP Response
Expected Response Code: 200
Response Body:
e.g.
{
"token": "Token will be here.",
"id_token": "ID of token will be here."
}
Get Refresh Token
POST {{host}}/auth/get-refresh-token
Sample HTTP Request
Same requirements as the Get Access Token by Username endpoint.
HTTP Method: POST
URL: {{host}}/auth/get-access-token-by-username
Request Body:
e.g.
{
"username": "username@mycredentials.com",
"password": "Th15Is@P4S5W0rd!",
"user_pool_id": "Cynopsis to advise",
"client_id": "Cynopsis to advise"
}
Sample HTTP Response
Expected Response Code: 200
Response Body:
e.g.
{
"refresh_token": "Token will be here.",
"id_token": "ID of token will be here."
}
Get Access Token by Refresh Token
Sample HTTP Request
Make an API call to the above API and then use that refresh token in this API along with the client ID.
HTTP Method: POST
URL: {{host}}/auth/get-access-token-by-refresh-token
Request Body:
e.g.
{
"refresh_token": "Refresh token will be required here.",
"client_id": "Cynopsis to advise"
}
Sample HTTP Response
Expected Response Code: 200
Response Body:
e.g.
{
"refresh_token": "Token will be here.",
"id_token": "ID of token will be here."
}
Authenticate Token
To authenticate a token, make an API call to the following API.
POST {{host}}/auth/authenticate-token
Sample HTTP Request
HTTP Method: POST
URL: {{host}}/auth/authenticate-token
Request Body:
e.g.
{
"token": "Token to be authenticated.",
"pool_url": "Cynopsis to advise",
"client_id": "Cynopsis to advise"
}
Sample HTTP Response
For security reasons, the properties of the response body have been set to an empty string.
Expected Response Code: 200
Response Body:
e.g.
{
"origin_jti": "",
"sub": "",
"event_id": "",
"token_use": "",
"scope": "",
"auth_time": "",
"iss": "",
"exp": "",
"iat": "",
"jti": "",
"client_id": "",
"username": ""
}
Method 2: Using the CRM System API
This method allows you to get access and refresh tokens directly from the CRM system.
Get Access Token and Refresh Token by Username and Password on CRM
To generate a token and refresh token, please make an API call to the following endpoint.
POST {{host}}/oauth/token
Requirements
For the credentials required below, Cynopsis will advise.
- grant_type
- client_id
- username
- password
Sample HTTP Request
HTTP Method: POST
URL: {{host}}/oauth/token
Request Body:
e.g.
{
"grant_type": "password",
"client_id": "client_id",
"username": "clientsuccess@cynopsis.co",
"password": "pw@123"
}
Sample CURL Request
curl --location '{{host}}/oauth/token' --header 'Content-type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=password' --data-urlencode 'client_id=client_id' --data-urlencode 'username=clientsuccess@cynopsis.co' --data-urlencode 'password=pw@123'
Sample HTTP Response
Expected Response Code: 200
Response Body:
e.g.
{
"access_token": "Access token will be here.",
"token_type": "bearer",
"refresh_token": "Refresh token will be here",
"expires_in": 86399,
"scope": "read,write",
"sub": "",
"iss": "https://crm",
"identifier_provider": "CRM",
"jti": ""
}
Get Access Token by Refresh Token (CRM)
Make an API call to the above API and then use that refresh token in this API along with the client ID.
Sample HTTP Request
HTTP Method: POST
URL: {{host}}/oauth/token
Request Body:
e.g.
{
"grant_type": "refresh_token",
"client_id": "Cynopsis to advise",
"refresh_token": "Refresh token obtained from the above request"
}
Sample CURL Request
curl --location '{{host}}/oauth/token' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=refresh_token' --data-urlencode 'client_id=client_id' --data-urlencode 'refresh_token=refresh token obtained from the above request'
Sample HTTP Response
Expected Response Code: 200
Response Body:
e.g.
{
"access_token": "New access token will be here.",
"token_type": "bearer",
"refresh_token": "New refresh token will be here",
"expires_in": 86399,
"scope": "read,write",
"sub": "",
"iss": "https://crm",
"identifier_provider": "CRM",
"jti": ""
}
Note: Choose the authentication method that best fits your integration needs. Both methods provide secure access to Athena services, with the CRM method offering a more direct token generation approach.