jcmturner / gokrb5

Pure Go Kerberos library for clients and services
Apache License 2.0
717 stars 243 forks source link

Support for complex cross-realm scenarios #536

Open joanlopez opened 7 months ago

joanlopez commented 7 months ago

Fixes #130

Description

It slightly modifies the messages.NewTGSReq signature in order to use the client's realm as the paRealm for TGS_REQ messages, as discussed in #130 and suggested by @momiji and @snqk (added them as co-authors for credit).

Proof

I have also added a new Go test (which also relies on a few changes added on the testing environment here) that reproduces the issue. So, you can try to run it without and with the other changes present on this pull request in order to verify that they actually fix that issue (test-driven).

Considerations

First, in order to get this pull request (CI) fully working, it would require approving & merging the gokrb5-test's pull request (here) first, and re-building and publishing the modified / added Docker images later.

Second, as this slightly modifies part of the public API of the library (the messages package), it would probably require bumping up its major version to v9 (unfortunately), but I think the fix does worth it.


Pinging you @jcmturner for visibility, I'm definitely looking forward for some feedback and ideally getting this merged sooner rather than later, cause as the other users involved, we're experiencing the same issue, and we rather prefer to contribute back to this repository than having to maintain our own fork.

Thanks!