dotnet / AspNetCore.Docs

Documentation for ASP.NET Core
https://docs.microsoft.com/aspnet/core
Creative Commons Attribution 4.0 International
12.63k stars 25.29k forks source link

Documentation and samples improvements to identity for .NET 8 #29452

Open JeremyLikness opened 1 year ago

JeremyLikness commented 1 year ago

A key deliverable to improve the experience of identity management in .NET is improved documentation. Our docs should provide a comprehensive guide that empowers developers to fully understand and utilize our identity management features. Deliverables will include samples for common scenarios that follow our recommended practices for enabling and integrating authentication and authorization in .NET. This issue will serve to track individual work items that roll up to this goal.

TODO (this list will grow as we iterate on the docs)

Samples (TBD) - right now these are examples and not committed work.

Stretch goals

JeremyLikness commented 1 year ago

Please see this PR for the Blazor WebAssembly Standalone example /cc @Rick-Anderson

Aquaritek commented 11 months ago

Is there any movement here?

Myself and another team member have been trying to implement the following stack:

Asp.Net Core Web Api (backend identity provider to issue tokens and host api) Blazor Web App with Interactivity per component Blazor Hybrid Maui App

We've been going in circles for about 30 days now basically with daily scraps of all code written as it's dead end after dead end after dead end.

I should mention that we have read and re-read the entire documentation stack on authentication and security for each of the technologies above probably 3 times now and the more you ingest the more scattered you become. We're at a loss at this point.

Jokingly, we're both Mensan's but Identity Framework has us feeling like the most ignorant saps in the world. Haha!

AlbertoPa commented 11 months ago

I add this link here: https://github.com/dudley810/dotnet8identityopenid because the example is useful to those struggling with MS Identity Platform (Entra/AD).

MrChriZ commented 11 months ago

I'd love to see a sample with Blazor WASM, a Web API backend and something like Google or Facebook login (or even better both).

kjartanvalur commented 11 months ago

Angular SPA sample with two factor authentication & reset password would be really beneficial for the community.

lonix1 commented 11 months ago

What we've needed for years are SIMPLE and complete examples for:

And those examples should be:

Aquaritek commented 11 months ago

Dropping another comment here because we've decided to back entirely out of the attempted stack I previously wrote about.

Net8 Blazor is a real headache with per component lifecycles and roll your own auth stack with an out of process identity provider that implements IdentityFramework. You run into all sorts of dependency lifecycle and state headaches client side. Server side works well enough but you're better off re-rolling the identity endpoints because they're limited and very oddly structured.

For documentation you're left with traversing the AspNetCore source through the Security, Http, and Authorization namespaces which are highly decoupled. While that's good architecture it's next to impossible to "learn" from and feels like a black box.

Definitely lots of work left to do in the Auth space IMO. IdentityFramework is completely capable just have no idea how to put it all together the right way.

Hopefully by Net9 or 10 even - we can have options that don't require a team to train on and implement. Specifically that allows fluid same site and in app UI/UX and no third party dependencies (especially cloud Identity providers.. capitalism 👍).

With peace, Aqua.

rileymclaughlinofsheppard commented 10 months ago

Is there any progress? I am unable to preserve WASM and Auto interactivity when implementing ME-ID auth in my Blazor Web app and would love a document outlining the holistic approach.

twojnarowski commented 9 months ago

A documentation on how to use Identity in a Blazor Server Side app would be helpful, because right now it needs a bit of work with saving the user state from the context on startup and a custom revalidating logic without access to the httpContext.