User authentication
Configure how Nadles authenticates your API consumers.
Nadles API Gateway authenticates users by API keys/tokens sent along with each request. When the user activates a new subscription, Nadles issues a unique API key and the user can obtain it on the subscription page in the self-service portal.
For the gateway to know where to find the API key in the HTTP request, a token extraction strategy needs to be configured. The strategy consists of one or more steps.
In order to configure token extraction strategy, navigate to My APIs → choose API → Settings → User authentication tab.
If you make changes to the user authentication settings, make sure to update the authentication instructions displayed to your customers in the self-service portal and on the checkout page.
Default strategy
By default, the gateway looks for the API key in the X-Billing-Token
request header.
The header name is chosen to avoid interference with “Authorization” header in cases when the API uses it for internal authentication.
API key in “Authorization” header
If you’d like to use Authorization: Bearer <token>
scheme, configure the token extraction strategy as follows:
-
Click Delete step in order to clear the step list.
-
Click Get request header value.
-
Enter
Authorization
as header name. -
Click Split it by delimiter.
-
Enter “
-
Click Take value by path or apply expression.
-
Enter
input[1]
as expression.
In the expression you can use the result of the previous step, it’s stored in a variable named input
.
- Click Save.
Now the gateway will look for the token in Authorization: Bearer <token>
header.
API key in an arbitrary header
If you’d like to use a custom header for the access token (e.g. X-My-Api-Token: <token>
), configure the token extraction strategy as follows:
- Click Delete step in order to clear the step list.
Click Get request header value.
Enter X-My-Api-Token
as header name.
- Click Save.
Now API users can send the token in X-My-Api-Token: <token>
header.
API key in JSON body
Let’s say the request body is a JSON object containing access token:
Nadles API Gateway needs to parse the request body as JSON and take the API key from that JSON object by the specified path.
In order to implement that, configure the token extraction strategy as follows:
-
Click Delete step in order to clear the step list.
-
Click Get request body.
Click Decode it as….
-
Choose
JSON
from the dropdown list. -
Click Take value by path or apply expression.
-
Enter
input.auth.token
as expression. -
Click Save.
The gateway will decode the request body as JSON and extract the token value by the specified path.
API key in query string
In some scenarios it’s more convenient to pass API keys in a query string parameter.
For example, you would like to pass API keys in apiKey
query string parameters like /orders/154?apiKey=MmU2YzQ4ODktNzFjMi00OWM1LTlhNTgtZDJhZjZmN2M1ODY1
-
Click Delete step in order to clear the step list.
-
Click Get raw query string.
-
Choose
Query string
from the dropdown list. -
Click Take value by path or apply expression.
-
Enter
input.apiKey
as expression.
In the expression you can use the result of the previous step, it’s stored in a variable named input
.
Now the API Gateway will look for API keys in apiKey
query string parameter.