Jump to content
Aim23

How to auth with node-red against UM3 REST API

Recommended Posts

Posted · How to auth with node-red against UM3 REST API

Hey everybody,

 

I am desperate. Here in short what I want to do:

Using node-red as platform for crosslinking different IOT devices with different services. Like a MQTT Broker, Telegram and other.

What I'm using right now is: RedBot for asking my UM3+ what is going on with the current print job, how the print looks like (grabbing an image from the integrated camera and sending it to the chat via the Telegram bot). 

What I want to do now is, if I see the printjob is failing right now after image checking, to stop the print via the bot. For this action, node-red needs to be authenticated in the REST API. I have an id and key generated which is valid and ready for use. 

So how do I do this, any ideas or suggestions? Would be very helpfull. 

 

Thanks ;)

Marcel

Curl
curl -X GET --header 'Accept: application/json' 'http://um3ip/api/v1/auth/check/fad462df155f52ceb0e6ce8ed64845ed'

Request URL
http://um3ip/api/v1/auth/check/fad462df155f52ceb0e6ce8ed64845ed

Response Body
{
  "message": "authorized"
}

 

[{"id":"1300e776.abe2f1","type":"change","z":"5674bd4d.d67064","name":"Set Headers","rules":[{"t":"set","p":"headers","pt":"msg","to":"{}","tot":"json"},{"t":"set","p":"headers.content-type","pt":"msg","to":"application/json","tot":"str"},{"t":"set","p":"headers.Authorization","pt":"msg","to":"Digest username=\"fad462df155f52ceb0e6ce8ed64845ed\", password=\"2789fb63914e0fac010b2489e4358becdd22886997151e093894e518a198a264\", uri=\"/api/v1/auth/verify\", realm=\"Jedi-API\", qop=auth","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":360,"y":1297,"wires":[["d710857b.bc85f","bf1c1cce.74dc98"]]},{"id":"d710857b.bc85f","type":"http request","z":"5674bd4d.d67064","name":"","method":"GET","ret":"obj","url":"http://um3ip/api/v1/auth/verify","tls":"","x":568,"y":1296,"wires":[["caad6ed4.e755a"]]},{"id":"bf1c1cce.74dc98","type":"debug","z":"5674bd4d.d67064","name":"","active":true,"console":"false","complete":"true","x":633,"y":1397,"wires":[]},{"id":"f0c9e7a5.d0cd68","type":"inject","z":"5674bd4d.d67064","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":197,"y":1249,"wires":[["1300e776.abe2f1"]]},{"id":"caad6ed4.e755a","type":"debug","z":"5674bd4d.d67064","name":"","active":true,"console":"false","complete":"true","x":737,"y":1259,"wires":[]}]

 

Share this post


Link to post
Share on other sites
Posted · How to auth with node-red against UM3 REST API

This probably needs a response from a UM3 developer.  I'm not sure who they are but these guys know: @Daid  @nallath

 

Share this post


Link to post
Share on other sites
Posted · How to auth with node-red against UM3 REST API

I have no experience with node-red. So I cannot help you on that part. I did post a python example in my topic about the API, that might help?

 

But the UM3 API requires HTTP Digest with "auth" quality-of-protection. (The Digest standard makes this optional, but that completely ruins the security, and thus we made it required) most libraries handle this seamlessly.

 

Part of the "auth" quiality-of-protection are one-time-use tokens, called "nonce". Which I'm not sure if node-red is handling for you or not.

Share this post


Link to post
Share on other sites
Posted · How to auth with node-red against UM3 REST API

You might also try the Cura Connect API (on newer firmware versions) which currently has not authentication. Docs are available on http://{PRINTER_IP}/cluster-api/v1/.

Share this post


Link to post
Share on other sites
Posted · How to auth with node-red against UM3 REST API

There's a little more information right here (images seem to be missing, but everything should be clear):

 

I would first try to get the /verify call working with cURL. I believe it should be as simple as adding a "--digest" parameter:

https://stackoverflow.com/questions/9435678/curl-digest-command

 

Next, you need to get it into Node-red. From what I know about this (= not much), it's based on node, so JavaScript. It looks like some of the libraries don't completely support digest authentication, so if it doesn't work, probably best to try another library. This is just the first thing that comes up:

https://stackoverflow.com/questions/17110783/how-to-do-request-http-digest-auth-with-node-js

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Our picks

    • Ultimaker Cura 4.0 | Stable available!
      Ultimaker Cura 4.0 is mainly focused on the improved user interface and cloud integration.
      As always, we want to collect your user feedback for this release. If there are any improvements you can think of, feel free to mention it here and help us to shape the next release.
      • 98 replies
×
×
  • Create New...

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!