NetTalk Central

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - PaulMacFarlane

Pages: [1] 2 3
1
We are trying to handle obtain a certificate to use on an internal server for communicating with Office365.
The communication is handled from our internal server to O365, but it does require a cert to identify itself.
Doesn't need to be access from the public network.

We've gone down the road of using Caddy, etc. but the issue is that Godaddy no longer supports DNS Challenge using v1 of their API.  V3 requires OAuth/Bearer token.

So, looking into somehow obtaining a wildcard on a public server and then distributing it to the internal server.

I did not know the wildcards were limited to DNS Challenge which puts us right back to where we started!


2
Is it possible to retrieve a wildcard via LetsEncrypt using Nettalk?

3
Who is you DNS provider?

I have a client using Godaddy and the DNS challenge method is now broken.  The challenge record cannot be posted using v1 API anymore.  You have to use the v3 and it requires an interactive login.

So, the option is to go to move DNS to CloudFlare or some other provider that allows the DNS challenge.

4
Web Server - Ask For Help / Re: Syslog 'Server'
« on: August 12, 2026, 07:55:19 PM »
No.

I use a service from Barracuda Networks to filter email.  I need to be able to search the log for certain domains and receive a notification of the messages was quarantined or blocked.  Nearly 100% of google hosted domains do not have SPF/DKIM/DMARC setup correctly.  Google doesn't make them do it, but then again 50% of spam comes from gmail and gmails reporting is unworkable.

Anyway, we can't just add these domains to the allow list and the only way to search the log is manually or via syslog.  But the syslog also has a bunch if irrelevant stuff I want to ignore.

I also want non-admin users to be able to add domains to the search list.

So, I want to receive syslog records and then process them without using our normal syslog server.


5
Web Server - Ask For Help / Syslog 'Server'
« on: August 10, 2026, 01:35:08 PM »
Has anyone created a Syslog Server to receive messages?

I have a situation where I don't really want to log all that much.  It's going to toss 99% of the messages.


6
Web Server - Ask For Help / Re: JWT Json Web Token
« on: November 05, 2024, 02:44:46 PM »
Okay - I think I figured out the problem.

The alg is not correct.  If I switch to HS256 all works.

The website is expecting RS256.

So I suspect this means I cannot use the HMAC function since that creates HS256....


7
Web Server - Ask For Help / Re: JWT Json Web Token
« on: November 04, 2024, 04:11:51 PM »
I am successfully generating the JWT, but when I verify it on jwt.io it's telling me my secret is bad....

The header and payload data is decoded fine but I'm doing something wrong on the 'secret' stuff....

Here's the code I'm using:

Code: [Select]
!Create_ClientJWT       FUNCTION (STRING KeyID,STRING ClientID, string UserID, string lSecret) ! Declare Procedure


! Build Header
    Header_element.kid = clip(KeyID)
    Header_element.alg = 'RSA256'

    jwtj.Start()
    jwtj.SetTagCase(jf:CaseAsIs)
    jwtj.Save(header_element,stHeader)

! Payload

    Payload_element.iss =   clip(ClientID)      ! Issuer
    Payload_element.sub =   clip(UserID)        ! Subject of token
    Payload_element.aud =   'https://api.alt.www4.irs.gov/auth/oauth/v2/token'
    Payload_element.iat =   fmt.ClarionToUnixDate(today(),clock())  ! Issued At Time - Epoch time
    Payload_element.exp =   fmt.ClarionToUnixDate(today(),clock()+(15*60*100))  ! expire time = iat + 15 minutes
    stPayload.SetValue('')
    stPayload.MakeGUID4(st:format)
    Payload_element.jti =   stPayload.GetValue()  ! Unique ID I create

    jwtj.Save(Payload_element,stPayload)

!    message(stHeader.GetValue(),'stheader:')
!    message(stPayload.GetValue(),'stPayload:')

    stHeader.Base64Encode(st:URLSafe + st:NoPadding)
    stPayload.Base64Encode(st:URLSafe + st:NoPadding)

! The call in this format gives me an invalid type error..
!  stToEncrypt.SetValue(stHeader.GetValue()&'.'&stPayload.GetValue())
!  stToEncrypt.SetValue(NetMakeHMAC(stToEncrypt.GetValue(),stToEncrypt.Len,CLIP(lSecret),net:CALG_SHA_256))

! So I do this....  stPreEncrypt        string(1024)


    stPreEncrypt = clip(stHeader.GetValue())&'.'& clip(stPayload.GetValue())        ! Values already encoded

    stToEncrypt.SetValue(NetMakeHMAC(stPreEncrypt,len(stPreEncrypt),CLIP(lSecret),net:CALG_SHA_256))

    stToEncrypt.Base64Encode(st:URLSafe + st:NoPadding)

  RETURN stHeader.GetValue()&'.'& stPayload.GetValue() &'.'& stToEncrypt.GetValue()

Any ideas?

8
Web Server - Ask For Help / Re: JWT Json Web Token
« on: November 03, 2024, 11:45:03 PM »
I did not get a compile warning. :-\

Thanks for noticing my error.  Somehow I got it stuck in my brain that it returned a ST object.

9
Web Server - Ask For Help / Re: JWT Json Web Token
« on: November 03, 2024, 06:12:37 PM »
On this section of code:

  stToEncrypt.SetValue(stHeader.GetValue()&'.'&stPayload.GetValue())
  Crypto.MakeHMAC(stToEncrypt,CLIP(lSecret),cs:CALG_SHA_256,0)
  stToEncrypt.Base64Encode(1)
  stToEncrypt.Replace('+','-')
  stToEncrypt.Replace('/','_')
  stToEncrypt.Replace('=','')

I modified per Bruces note to

! NetMakeHMAC function passes a string and returns ST so I created a string for this part
  strPREencrypt = stHeader.GetValue()&'.'&stPayload.GetValue()

  stToEncrypt  = NetMakeHMAC(clip(strPREencrypt ),len(strPREencrypt),CLIP(lSecret),cs:CALG_SHA_256,0)

  stToEncrypt.Base64Encode(1)  <<-GPF
  stToEncrypt.Replace('+','-')
  stToEncrypt.Replace('/','_')
  stToEncrypt.Replace('=','')

And I get a GPF on base64encode.


10
The Rest - Ask For Help / Vapid keys v JWT ?
« on: November 03, 2024, 05:35:33 PM »
Is there a webinar on Vapid keys ?

Per google they are related:
https://blog.mozilla.org/services/2016/04/04/using-vapid-with-webpush/

Could NetGenerateVapidKeys be used to create JWTs ?

All new to me.  Kind of going in circles on this stuff!

11
The Rest - Ask For Help / Example of using JWTs in a web service.....
« on: November 01, 2024, 03:29:06 PM »
Moved this - posted in the wrong section....

I'm probably over thinking this.  I've seen the threads here about constructing JWTs for authentication use....

https://www.nettalkcentral.com/forum/index.php?topic=8902.msg36457#msg36457
https://www.nettalkcentral.com/forum/index.php?topic=8089.msg32855#msg32855

Using the example from Wiki:  https://en.wikipedia.org/wiki/JSON_Web_Token

net.SetValue('grant_type','urn:ietf:params:oauth:grant-type:jwt-bearer')
net.SetValue('assertion',StringContainingtheWholeJWT)
net.Post(urlString)

And I'd get returned values in the page received method:
if Self.ThisPage.Length() > 0
  json.load(resultGroup,self.thispage.GetValuePtr(),self.thispage.Length())
  display()
End

where resultgroup will be....
ResultGroup     GROUP,PRE(result)
access_token    STRING(512)
token_type      STRING(16)
expires_in   long
                END


The service I'm trying to connect to (IRS) requires sending 2 JWTs (for 2 different roles) when connecting.

net.SetValue('grant_type','urn:ietf:params:oauth:grant-type:jwt-bearer')
net.SetValue('assertion',StringContainingtheWholeJWT)
net.SetValue('client_assertion_type','urn:ietf:params:oauth:client-assertion-type:jwt-bearer')
net.SetValue('client_assertion',StringContainingtheWholeJWT)
net.Post(urlString)

Am I thinking this correctly or way off base?  Anyone have an example?

12
Thank you !  That works.

13
Using the default login page example I'm trying to go to one page if the login is successful and a different page on failure.

Reading through different posts I saw examples of:
    loc:formaction = 'SuccessPage'
    loc:formactiontarget = '_top'

and
        p_web.SetValue('_parentPage','SuccessPage')

neither seem to work.

Using the example code I can 'Authenticate' fine but can't seem to 'act' on it....

  if p_web.GetValue('loc:hash') = p_web.GetSessionValue('loc:hash')
    ! login checking goes here
    if p_web.Authenticate(Loc:Name,Loc:Passw) = true ! WebHandler, Authenticate method needs to be fleshed out.
      p_web.ValidateLogin()                   ! this sets the session to "logged in"
      p_web.SetSessionValue('loc:hash',0)         ! clear the hash, so this login can't get "replayed".

        p_web.SetValue('_parentPage','SuccessPage')

else

        p_web.SetValue('_parentPage','FailedPage')
end
end

I think I'm completely off base !


14
Web Server - Ask For Help / RED BOX FLASH - Error in site script
« on: May 11, 2017, 10:29:36 AM »
I've cleaned the script folder, etc. in the WEB folder and ctl-F5 on the browser.

Tried in IE and Chrome (firefox insists on added www. in front of my localhost address - but then I've always found firefox's address bar to be obtuse)....

So, what scripting (it's all freshened to 8.71) is causing this problem?

15
This was a wizard generated webapp.

I have a client update procedure. (netwebform)
Within that update procedure is 8 tabs that contain related browses (netwebbrowse).
6 of the 8 seem to generate an ASSERT error that Close was not called....

From the client list, I double click to edit a client.
The window displays and the server generates 6 ASSERT errors ...

If I remove the call to a netwebbrowse procedure the ASSERT error to its main file goes away. 

I cannot detect any settings differences between the netwebbrowses that generate the ASSERT message and those that don't.  I've examined both the Netwebbrowse itself and the calling webform.

Suggestions?



Pages: [1] 2 3