-
-
Notifications
You must be signed in to change notification settings - Fork 967
Implement gssapi-with-mic user authentication with Kerberos #1692
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
|
This PR is primarily based on tmds/Tmds.Ssh#188. Credits to @jborean93 and @tmds 🎏 Call for help! |
|
Some high-level questions
public class GssApiAuthenticationMethod(NegotiateAuthenticationClientOptions options)
{ }as the public api?
|
Reflection is to support .NET Framework. One reason to choose SSH.NET is that it supports lower targets.
There are too many options than needed if we use
That's the "call out for help" item 😄 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements gssapi-with-mic user authentication with Kerberos as defined in RFC 4462, enabling SSH clients to authenticate using Kerberos tickets.
Key changes:
- Added support for Kerberos authentication through new
GssApiAuthenticationMethodclass - Implemented message types for GSS-API authentication exchange (response, token, MIC, error)
- Created
KerberosCredentialclass to configure Kerberos authentication options
Reviewed Changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| SshMessageFactory.cs | Registered new GSS-API message types for authentication |
| Session.cs | Added event handlers for GSS-API response and token messages |
| RequestMessageGssApi.cs | Implements initial authentication request with supported mechanism OIDs |
| GssApiTokenMessage.cs | Handles token exchange messages during authentication |
| GssApiResponseMessage.cs | Processes server's mechanism selection response |
| GssApiMicMessage.cs | Sends message integrity check for authentication verification |
| GssApiExchangeCompleteMessage.cs | Signals completion of authentication exchange |
| GssApiErrorTokenMessage.cs | Handles error tokens from server |
| GssApiErrorMessage.cs | Processes detailed error information from server |
| KerberosCredential.cs | Configuration class for Kerberos authentication credentials |
| GssApiAuthenticationMethod.cs | Main authentication method implementation orchestrating the GSS-API exchange |
| GssApiAuthenticationMethod.ReflectedNegotiateContext.cs | Placeholder implementation for .NET Framework |
| GssApiAuthenticationMethod.NegotiateContext.cs | Platform-specific authentication context using NegotiateAuthentication |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: Copilot <[email protected]>
This PR adds support for gssapi-with-mic user authentication with Kerberos which is defined at https://datatracker.ietf.org/doc/html/rfc4462.
Close #780
Close #170
Close #114