Hi, I have a requirement to authenticate my application
(Golang) Â against a proxy server which requires Kerberos
authentication. I have achieved this on Windows using >github/alexbrainman/sspi Golang package.From that package I
basically call  negotiate.AcquireCurrentUserCredentials() and >negotiate.NewClientContext() to get the client token which gets passed
to the proxy server in Proxy-Authorization header. I want to achieve
the same on macOS and looking for suitable libraries.  Can I use MIT >Kerberos library for this purpose ?what are the APIs equivalent to get >client token without prompting the user for password ? The user would
have acquired Kerberos ticket on sign-in as a domain user.
(Golang) Â against a proxy server which requires Kerberos
authentication. I have achieved this on Windows using >github/alexbrainman/sspi Golang package.From that package I
basically call  negotiate.AcquireCurrentUserCredentials() and >negotiate.NewClientContext() to get the client token which gets passed
to the proxy server in Proxy-Authorization header. I want to achieve
the same on macOS and looking for suitable libraries.  Can I use MIT >Kerberos library for this purpose ?what are the APIs equivalent to get >client token without prompting the user for password ? The user would
have acquired Kerberos ticket on sign-in as a domain user.
Thanks Ken,I understand I need to use GSSAPI for Linux/MacOS
platforms. I was wondering if I can use MIT Kerberos GSSAPI for the
same. Does libcurl use MIT Kerberos gssapi ? Yes my proxy header would
look exactly like you mentioned. Thank-you.
platforms. I was wondering if I can use MIT Kerberos GSSAPI for the
same. Does libcurl use MIT Kerberos gssapi ? Yes my proxy header would
look exactly like you mentioned. Thank-you.
Thanks again Ken. My application is written in Go. So I'm looking
for Kerberos implementation that can be easily integrated with my >application. Hence IÂ was considering MIT Kerberos and using C bindings
to call those APIs from my Go code. "MacOS X it might be easier to use
the native GSSAPI implementation which would be Heimdal"
Here did you mean developer.apple.com/documentation/gss ? Isn't that in
Swift ? I will explore libcurl code thank-you.
Are you familiar with https://github.com/jcmturner/gokrb5? I've used it
in the past with some experiments in some Go code I was working on, I
wasn't touching GSSAPI but there's at least some GSSAPI code in there.
Might be worth checking out as it's native Go code, no cgo wrapping.
Thanks again Ken. My application is written in Go. So I'm looking
for Kerberos implementation that can be easily integrated with my >application. Hence I was considering MIT Kerberos and using C bindings
to call those APIs from my Go code. "MacOS X it might be easier to use
the native GSSAPI implementation which would be Heimdal"
Here did you mean developer.apple.com/documentation/gss ? Isn't that in >Swift ? I will explore libcurl code thank-you.
I can't speak for the Swift API, but Heimdal on MacOS X also provides a standard C API for the GSSAPI functions. I don't have much experience
with Go but if you can call C functions from within it (and I have to
believe that is possible) then doing so for Heimdal should be fine.
There might be a few differences in term of what GSSAPI extension
functions are available but from what you describe you should only need
the standard GSSAPI functions.
On Wed, Mar 20, 2024 at 11:33:16AM -0400, Ken Hornstein via Kerberos wrote:
Thanks again Ken. My application is written in Go. So I'm looking
for Kerberos implementation that can be easily integrated with my application. Hence IÂ was considering MIT Kerberos and using C bindings to call those APIs from my Go code. "MacOS X it might be easier to use the native GSSAPI implementation which would be Heimdal"
Here did you mean developer.apple.com/documentation/gss ? Isn't that in Swift ? I will explore libcurl code thank-you.
I can't speak for the Swift API, but Heimdal on MacOS X also provides a standard C API for the GSSAPI functions. I don't have much experience
with Go but if you can call C functions from within it (and I have to believe that is possible) then doing so for Heimdal should be fine.
There might be a few differences in term of what GSSAPI extension
functions are available but from what you describe you should only need
the standard GSSAPI functions.
Are you familiar with https://github.com/jcmturner/gokrb5? I've used it
in the past with some experiments in some Go code I was working on, I
wasn't touching GSSAPI but there's at least some GSSAPI code in there.
Might be worth checking out as it's native Go code, no cgo wrapping.
On Wed, Mar 20, 2024 at 11:33:16AM -0400, Ken Hornstein via Kerberos wrote:
Thanks again Ken. My application is written in Go. So I'm looking
for Kerberos implementation that can be easily integrated with my application. Hence I was considering MIT Kerberos and using C bindings to call those APIs from my Go code. "MacOS X it might be easier to use the native GSSAPI implementation which would be Heimdal"
Here did you mean developer.apple.com/documentation/gss ? Isn't that in Swift ? I will explore libcurl code thank-you.
I can't speak for the Swift API, but Heimdal on MacOS X also provides a standard C API for the GSSAPI functions. I don't have much experience with Go but if you can call C functions from within it (and I have to believe that is possible) then doing so for Heimdal should be fine.
There might be a few differences in term of what GSSAPI extension
functions are available but from what you describe you should only need
the standard GSSAPI functions.
Are you familiar with https://github.com/jcmturner/gokrb5? I've used it
in the past with some experiments in some Go code I was working on, I
wasn't touching GSSAPI but there's at least some GSSAPI code in there.
Might be worth checking out as it's native Go code, no cgo wrapping.
On Wed, Mar 20, 2024 at 11:33:16AM -0400, Ken Hornstein via Kerberos wrote:
Thanks again Ken. My application is written in Go. So I'm looking
for Kerberos implementation that can be easily integrated with my application. Hence I was considering MIT Kerberos and using C bindings to call those APIs from my Go code. "MacOS X it might be easier to use the native GSSAPI implementation which would be Heimdal"
Here did you mean developer.apple.com/documentation/gss ? Isn't that in Swift ? I will explore libcurl code thank-you.
I can't speak for the Swift API, but Heimdal on MacOS X also provides a standard C API for the GSSAPI functions. I don't have much experience with Go but if you can call C functions from within it (and I have to believe that is possible) then doing so for Heimdal should be fine.
There might be a few differences in term of what GSSAPI extension
functions are available but from what you describe you should only need
the standard GSSAPI functions.
Are you familiar with https://github.com/jcmturner/gokrb5? I've used it
in the past with some experiments in some Go code I was working on, I
wasn't touching GSSAPI but there's at least some GSSAPI code in there.
Might be worth checking out as it's native Go code, no cgo wrapping.
Hi again, I am looking at the implementing this (getting Kerberos
service token) in C using Heimdal Kerberos library. In Golang using
this go package https://github.com/alexbrainman/sspi it was simply two
calls as below:
cred=negotiate.AcquireCurrentCredentials()token = >negotiate.NewClientContext(cred, spn) However it looks bit complex in C
using MIT/Heimdal library. I am looking at this example mentioned in the
RFC herehttps://datatracker.ietf.org/doc/html/rfc7546.html#section-5.1
Just checking if someone has done a similar thing and I am on the right >track. Thank you.
Hi again,
I am looking at the implementing this (getting Kerberos service
token) in C using Heimdal Kerberos library.
In Golang using this go package https://github.com/alexbrainman/sspi
it was simply two calls as below:
cred=negotiate.AcquireCurrentCredentials()
token = negotiate.NewClientContext(cred, spn)
However it looks bit complex in C using MIT/Heimdal library. I am
looking at this example mentioned in the RFC here https://datatracker.ietf.org/doc/html/rfc7546.html#section-5.1
Just checking if someone has done a similar thing and I am on the
right track. Thank you.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 546 |
Nodes: | 16 (3 / 13) |
Uptime: | 29:22:34 |
Calls: | 10,391 |
Calls today: | 2 |
Files: | 14,064 |
Messages: | 6,417,086 |