Thanks Henning,

I did take a look at the JWT module, prior posting to the ML, but it seems to me that it requires a private key (.pem) which I won't have access to, hence the only way to authenticate is to send a HTTPS request to an URL with the login and password in it.... Or am I missing something?

The DB Table might be a good option, though the high amount of CPS might overload the database, so I will try the HTable option instead.

Atenciosamente / Kind Regards / Cordialement / Un saludo,


Sérgio Charrua



On Tue, Aug 27, 2024 at 12:57 PM Henning Westerholt <hw@gilawa.com> wrote:

Hello,

 

don’t looked into the details, but the kamailio jwt module has a verify function (https://www.kamailio.org/docs/modules/stable/modules/jwt.html)

 

Regarding storage, you can easily store them in a DB table with sqlops, or in htable in memory with automatic 24h expiry, just two options. The DB could be used from multiple Kamailio servers, htable would be individual per server.

 

Cheers,

 

Henning

 

--

Henning Westerholt – https://skalatan.de/blog/

Kamailio services – https://gilawa.com

 

From: Sergio Charrua via sr-users <sr-users@lists.kamailio.org>
Sent: Dienstag, 27. August 2024 12:58
To: Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org>
Cc: Sergio Charrua <sergio.charrua@voip.pt>
Subject: [SR-Users] Kamailio integration with REST services

 

Hi all!

 

I need to integrate a REST Service with Kamailio. Integration is easy, not a problem, but my concern is that the REST Services has a JWT token authentication required for each request, common to many (it not all) REST Services. 

So, it is required to POST for authentication (username and password) and once I get authentication done, and receive a JWT token, I will need to use this token in all other requests to the REST Service. The token is valid for 24h.

My question is: 

- how to save the token for use during 24h, on all calls/sessions, without the need to authenticate on every call?

- how to detect the token has expired and re-authenticate?

 

I looked for some modules, but could not find any that suited me. 

I am thinking of executing a Python script for this, but concerned about latency and PDD....

Any thoughts? Any suggestions? Any known best-practice?


Atenciosamente / Kind Regards / Cordialement / Un saludo,

 

Sérgio Charrua