If Java is told to use the native GSS library (via -Dsun.security.jgss.native=true) authentication does work.
The local authentication works perfectly, the ticket getting ticket authentication works.
A valid Spnego token is generated - I've used pyspnego-parse cli available from PySpnego python project to parse a valid payload and an invalid payload.
Valid and Invalid Spnego Payloads
if you notice the invalid payload sends "name-type": "NT-UNKNOWN (0)",
I believe this is related to a decision in the JAVA Api to default to NT-UNKNOWN
It seems all clients behave this way. And this may very well be the issue.
There are very few other differences, the good payload sends "reqFlags": null,
The bad sends additional values.
I'm triggering this line of code and getting
gssapi.StatusContinueNeeded
response, when attempting to authenticate from any Java Kerberos client.Any help or suggestions of what to try are greatly appreciated
I believe the Java Spnego payload is VALID, but perhaps the
gokrb5
library is reading the payload improperly causing the error above.gokrb5
, and it will not authenticate Java Spnego clients.gokrb5
example and receive the same error.Java Client
I've tested with both kerb4j as well as my own custom client and I get the same result.
kerb4j
example codeIf Java is told to use the native GSS library (via
-Dsun.security.jgss.native=true
) authentication does work.The local authentication works perfectly, the ticket getting ticket authentication works.
A valid Spnego token is generated - I've used
pyspnego-parse
cli available from PySpnego python project to parse a valid payload and an invalid payload.Valid and Invalid Spnego Payloads
"name-type": "NT-UNKNOWN (0)",
I believe this is related to a decision in the JAVA Api to default to
NT-UNKNOWN
It seems all clients behave this way. And this may very well be the issue.
"reqFlags": null,
The bad sends additional values.
Valid Spnego Payload (Python Client / native GSS API)
Invalid Spnego Payload (Java Client)