You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit a738671
Browse filesBrowse the repository at this point in the historyBrowse files
feat(kerberos): add support for IAKerb extension for Kerberos client (#751)
This PR adds support for the IAKERB extension according to the [IAKERB
specification](https://datatracker.ietf.org/doc/html/draft-ietf-kitten-iakerb-03).
The main changes are focused on the `Kerberos` state machine.
Previously, the `Preauthentication` state handled the entire KDC message
exchange withing a single async `intialize_security_context` call. This
approach does not work with IAKERB, where KDC messages are exchanged via
a server that acts as a proxy. The `Preauthentication` state has
therefore been split into multiple states, allowing the state machine to
save `Kerberos` state between KDC message exchanges.
Additionaly, the `AS` and `TGS` exchanges have been extracted into
separate state machines. These new state machines are KDC
transport-agnostic and can be used with both external KDC and an IAKERB
proxy.
## What is IAKERB
IAKERB extends Kerberos to support scenarios where the client cannot
directly access the KDC. Instead, KDC messages are encapsulated in
GSS-API tokens and exchanged through an IAKERB proxy. The server
forwards these messages to the LocalKDC, allowing the client to obtain
the required Kerberos tickets without direct network access to the KDC.
Microsoft recently introduced IAKERB support in Windows Insider builds
as part of its effort to reduce NTLM dependency:
https://techcommunity.microsoft.com/blog/windows-itpro-blog/reducing-ntlm-dependency-iakerb-and-localkdc-in-windows-insider-preview/4524615.
## Related PRs
* picky-rs: Devolutions/picky-rs#531
* IronRDP: Devolutions/IronRDP#1987
0 commit comments