-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Closed
Labels
EpicGroups multiple user stories. Can be grouped under a theme.Groups multiple user stories. Can be grouped under a theme.area-authIncludes: Authn, Authz, OAuth, OIDC, BearerIncludes: Authn, Authz, OAuth, OIDC, Bearer
Milestone
Description
We want to support Kerberos Authentication in ASP.NET Core.
For 3.0, we are targetting the following supported environments as a minimum viable product (MVP):
- ASP.NET Core Server Platform: Linux (including containers) (we'll try to avoid doing anything to prevent it from working on Windows/macOS, it just won't be the testing focus)
- Domain Controller type: Active Directory, running on a Windows OS in the .NET Core
support matrix (Windows Server 2008 R2 or higher) - Client: Domain-joined Windows Machines using IE11 and Edge. Other "evergreen" browsers (Chrome, Firefox) as long as they support Kerberos auth.
MVP Features
- Challenge for a Kerberos ticket
- Decode the ticket into an Identity that includes a user identifier of some kind
- (Depending on the feasibility) Including group information in the Identity?
- Support for offline ticket processing via a key table (keytab)
Not in the MVP:
- NTLM is not a priority in the MVP, but we think it may come pretty cheap once Kerberos is up and running.
- Allowing the server to call other services using the Kerberos identity provided by the client (i.e. SQL)
- Allowing non-Windows servers to authenticate with Windows AD-protected resources via a service account
- Unification with
WindowsIdentity
- Support for Domain Controllers/Server platforms other than those listed above (though we believe others may come "for free", we just won't be committing to testing those)
- Support for Kubernetes gMSA is for Windows containers, and since the MVP focuses on Linux, Kubernetes gMSA isn't part of the MVP. We won't do anything to prevent Windows usage if possible though.
Other server platforms, DCs, clients, etc. may well come for free, but I want to set a really clear bar for what we are going to be committed to achieving in 3.0. We can always iterate on this in future releases.
Child Items:
- https://github.com/dotnet/corefx/issues/8221 CoreFX Linux Server Kerberos implementation
https://github.com/dotnet/corefx/issues/36896 CoreFX Negotiate APIPostponed- Add IConnectionCompleteFeature.OnCompleted #9754 Server connection state (also Consider exposing Bedrock's "Connection Features" on HttpContext #9213)
- xplat Integrated Windows Authentication (ntlm/Kerberos) #4662 Auth middleware
- Docs for new Negotiate auth handler AspNetCore.Docs#12420 Docs
CTI test scriptCut from 3.0
Selmirrrrr, skubi, windischb, vik-borisov, vsbetin and 3 moreAndreiGorlov and vsbetinbrockallen, RichiCoder1, NinoFloris, FieldFlux, zfcflower and 2 more
Metadata
Metadata
Assignees
Labels
EpicGroups multiple user stories. Can be grouped under a theme.Groups multiple user stories. Can be grouped under a theme.area-authIncludes: Authn, Authz, OAuth, OIDC, BearerIncludes: Authn, Authz, OAuth, OIDC, Bearer