Qlik Community

Ask a Question

Knowledge Base

Search or browse our knowledge base to find answers to your questions ranging from account questions to troubleshooting error messages. The content is curated and updated by our global Support team

Announcements
Live chat with experts, bring your API Integration questions. June 15th, 10 AM ET. REGISTER TODAY

How to Authenticate / Connect with the Qlik NPrinting API in Postman with NTLM Authentication

Sonja_Bauernfeind
Digital Support
Digital Support

How to Authenticate / Connect with the Qlik NPrinting API in Postman with NTLM Authentication

Environments:

  • Qlik NPrinting June2017 and higher

Explanation:
In the following example, POSTMAN Desktop (Chrome App was deprecated) is used as a test tool, in order to demonstrate how the 'caller' can authenticate using NTLM authentication.

Nprinting authenticates via the cookie provided from the NTLM request.

  • This must be a domain user in Nprinting
  • This cookie needs to be included in all requests. 
  • If making a POST request, you need to also include the X-XSRF-TOKEN header with the value of the cookie, otherwise you will receive the error REVEL_CSRF: tokens mismatch.


In the Postman Chrome app, it was possible to use the Interceptor extension in-tandem to get the cookie from the Nprinting Console session open in the browser. However, in Desktop it is necessary to get this cookie by making the GET request to the /api/v1/login/ntlm endpoint.



Follow these steps:

 

1. Install and launch Postman Desktop
2. Under Settings, disable SSL certificate verification (otherwise Postman will say it "Could not get any response" because Nprinting uses self-signed certs)
3. Under the Authorization tab, select NTLM as the authentication Type, and then enter your credentials. Note that domain needs to be in the Domain field (do not enter an username such as domain\username; put domain in the Domain field, and only put the username in the Username field)
User-added image
4. Make a GET request to the NTLM endpoint:
 

COMMAND URL
GET https://yourdomain.com:4993/api/v1/login/ntlm

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

  • application/json (Responses are usually 200 (User is authenticated)or 403 (User is not authenticated. User may not be in the system, not bound to a windows domain or not authorized to use the APIs. ))
  • In case of a 200 response you’ll get a response like the one in the following image:
User-added image
  • You can verify the cookie was set properly (and get the XSRF value) in Postman by clicking on Cookies to view the NPWEBCONSOLE_XSRF-TOKEN cookie. Postman sends this cookie with subsequent requests.
User-added image
User-added image


At this point, it is now possible to make GET requests via the Nprinting API. For example, viewing available reports: 

COMMAND URL
GET https://yourdomain.com:4993/api/v1/reports

You'll get a response like this with the list of your reports:
User-added image

However, if one needs to make a POST request then the X-XSRF-TOKEN header and corresponding cookie value needs to be present in the request; otherwise, the error REVEL_CSRF: tokens mismatch. will be thrown.
 

COMMAND URL
POST https://yourdomain.com:4993/api/v1/tasks/{taskID}/executions


User-added image
User-added image

 

Labels (2)
Comments
nicoleklos
Partner
Partner

Thanks for this description - this helped me for 100 percent 🙂

sudeepkm_analog
Contributor III
Contributor III

very nice write up. great job.

is it possible to use custom users (created in NPrinting console) to make API calls.

or it has to be NT ID to make such calls. I'm trying to create a custom user in NPrinting and then use that user in POSTMAN to make API call using basic auth. it is not working.

Version history
Revision #:
4 of 4
Last update:
‎2021-02-23 04:30 AM
Updated by:
 
Contributors