From 3b71f627aa87a8d163fda01448a4c0b2bec29b0d Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Fri, 3 Nov 2023 16:42:56 +0300 Subject: [PATCH 1/3] Add new article: ASP.NET 8: What's New About Authentication and Authorization --- .../POST.md | 138 ++++++++++++++++++ .../identity_endpoints_scaffold.png | Bin 0 -> 29852 bytes .../new-identity-endpoints.png | Bin 0 -> 92261 bytes 3 files changed, 138 insertions(+) create mode 100644 docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/POST.md create mode 100644 docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/identity_endpoints_scaffold.png create mode 100644 docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/new-identity-endpoints.png diff --git a/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/POST.md b/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/POST.md new file mode 100644 index 0000000000..ca43ee6a8c --- /dev/null +++ b/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/POST.md @@ -0,0 +1,138 @@ +# ASP.NET 8: What's New About Authentication and Authorization + +In ASP.NET 8, the landscape of authentication and authorization is undergoing a transformation. Specifically, ASP.NET Core Identity is transitioning from a focus on traditional web pages to a more API-driven approach. We will see what the Identity API endpoints are, why we need them, and how to use them in detail. So, let's dive in. + +## What is ASP.NET Core Identity? + +ASP.NET Core Identity is like an extra toolkit that comes with ASP.NET Core. It offers a bunch of services to help you deal with user accounts in your ASP.NET Core application. These services include both basic concepts and ready-made solutions for each task. + +With ASP.NET Core Identity, you can save user accounts in your app, handle user information, add extra security with two-factor authentication, and even connect other log in options, like social media logins, to user accounts. In simple terms, it's all about keeping user accounts in your app and making it easy for users to log in. + +![](./identity_endpoints_scaffold.png) + +Prior to ASP.NET 8, there were limitations on using ASP.NET Identity in Single Page Applications (SPAs). Because the ASP.NET Core Identity framework is primarily tailored for traditional server-rendered web applications, like ASP.NET Core MVC or Razor Pages apps. However, the Identity API endpoints that come with ASP.NET 8 aim to solve token-based authentication and authorization in SPA without external dependencies. + +## Why do we need Identity APIs? + +The introduction of Identity endpoints in ASP.NET 8 aims to streamline the process of integrating ASP.NET Core Identity into both API server applications and front-end SPAs like those built with JavaScript or Blazor. To understand the importance of these endpoints, let's first examine the disadvantages of using ASP.NET Core Identity before ASP.NET 8. + +Let's delve into a common scenario: + +Imagine you have a straightforward application composed of an ASP.NET Core backend that exposes APIs. On the client side, you have a SPA application that communicates with these APIs. Now, you want to incorporate user accounts, complete with authentication and authorization, into your application. + +Before the advent of the identity endpoints, you can add ASP.NET Core Identity and the default Razor Pages UI to your app by adding a few packages, updating your database schema, and registering some services. However, this approach had some disadvantages. From a user experience perspective, the full-page refreshes of Razor Pages can be a major drawback especially compared to the fluidity of SPAs. On the other hand, from a developers' perspective, if you want the default pages to be compatible with the rest of your application, you may need to update more than 30 pages. Moreover, the default Razor Pages UI uses traditional cookie-based authentication, not bearer tokens. + +In ASP.NET 8, identity endpoints were introduced to simplify the process of adding user accounts to ASP.NET Core API apps used with SPAs or mobile. These endpoints streamline the user management process by providing an alternative to the traditional Razor Page Identity UI pages. Additionally, a new endpoint is included for retrieving bearer tokens, which can be used for authentication. These changes directly address the concerns mentioned earlier, making it easier to create a user-friendly and integrated experience within your app, with no full-page refreshes or styling conflicts. + +## How to add Identity APIs? + +In this part, I'll create a demo application, add all of the required packages, and lastly map the Identity APIs. + +Create a new ASP.NET Core app with the following command and change the directory to the created application folder: + +```bash +dotnet new webapi --name NewIdentityEndpoints -o IdentityDemo +cd IdentityDemo +``` + +After that, open the application in your favorite IDE and add the required packages: + +```csharp + + +``` + +**Note:** I used the `.NET 8.0.100-rc.2-**` SDK for everything in this post. + +Then replace `Program.cs` like below: + +```csharp +using System.Security.Claims; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Identity.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.AddAuthentication().AddBearerToken(IdentityConstants.BearerScheme); +builder.Services.AddAuthorizationBuilder(); + +builder.Services.AddDbContext(options => options.UseInMemoryDatabase("AppDb")); + +builder.Services.AddIdentityCore() +.AddEntityFrameworkStores() +.AddApiEndpoints(); + +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +var app = builder.Build(); + +app.MapGroup("/my-identity-api").MapIdentityApi(); + +app.MapGet("/", (ClaimsPrincipal user) => $"Hello {user.Identity!.Name}").RequireAuthorization(); + +if (app.Environment.IsDevelopment()) +{ +app.UseSwagger(); +app.UseSwaggerUI(); +} + +app.Run(); + +class MyCustomUser : IdentityUser { } + +class ApplicationDbContext : IdentityDbContext +{ +public ApplicationDbContext(DbContextOptions options) : base(options) { } +} + +``` + +When you run the application, you will see a result like the following: + +![](./new-identity-endpoints.png) + +## Custom Authorization Policies + +Prior to ASP.NET 8, adding a parameterized authorization policy to an endpoint required writing a lot of code. + +- Implementing an `AuthorizeAttribute` for each policy +- Implementing an `AuthorizationPolicyProvider` to process a custom policy from a string-based contract +- Implementing an `AuthorizationRequirement` for the policy +- Implementing an `AuthorizationHandler` for each requirement + +However, implementing the `IAuthorizationRequirementData` interface that comes with ASP.NET 8, your application code looks like this: + +```csharp +class MinimumAgeAuthorizeAttribute : AuthorizeAttribute, IAuthorizationRequirement, IAuthorizationRequirementData +{ + public MinimumAgeAuthorizeAttribute(int age) => Age =age; + public int Age { get; } + + public IEnumerable GetRequirements() + { + yield return this; + } +} + +class MinimumAgeAuthorizationHandler : AuthorizationHandler +{ + protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, MinimumAgeAuthorizeAttribute requirement) + { + ... + } +} +``` + +See [here](https://gist.github.com/captainsafia/7c54e92d12df695ff0908e989fb8531f) for the complete code. + +## Conclusion + +In this article, I showed the Identity APIs introduced with ASP.NET 8, why we need them and how we can add them to our application, and finally I explained how to define a custom authorization policy with fewer lines of code. + +## References +- https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-8.0?view=aspnetcore-8.0#authentication-and-authorization +- https://auth0.com/blog/whats-new-dotnet8-authentication-authorization/ +- https://andrewlock.net/exploring-the-dotnet-8-preview-introducing-the-identity-api-endpoints/ +- https://andrewlock.net/should-you-use-the-dotnet-8-identity-api-endpoints/ \ No newline at end of file diff --git a/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/identity_endpoints_scaffold.png b/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/identity_endpoints_scaffold.png new file mode 100644 index 0000000000000000000000000000000000000000..951f6f1da64671895e81799ce56e0c747dfbebf1 GIT binary patch literal 29852 zcmc$_2~<;8+cu2#srIe4w6&EgldYlxLMn3&)GZs zoW0L=-Pd*B``07h9xFdx`>BzU(aM7d_W2nZEnR11^ik+1%fSEm+W7LpVF}vLV~-J; zYc>T={uaIa@NOfc`kWQoV;_U_|2Tah6m4Ym`6I*MC9K4|Cyb0zwjSKKJKzjLK002T zFjzLO)O+su>X!}su9zTfKC!zQM_={pp6QO}b9CRBqEkQr&HvDvUHqzaYpB^|iq+%Z zLqjQ_+ZdqzuxQhl--jK|Hp^<^QvNf|Vn(HW0bRge| z3MW)IVV#ZQkn~_V@m%!!O;Q00PW=q=z4Kc7q;KRYr$4(qteOjk{B zji$RgtxFtdL^w*y6Ml4o;0?2rK8Rm>yWkA{9pYt0$;u};ozm^-E1%q52`;_yYft=f zE?IW?5+W7(^U5dBit3SQ2Ds2lXixZ2o4lacEnGCgJ@%}_ha&p3-@o2B$>36Q{|l3d zcy|GOp`oMF{QY8hE=nCfd#e1FNf`ZkbKiQsZP*$IWkW}E1bblF33-UrX}GEL4Rsb7 zS{pBQjN?3hv68qLW~_qpJ4Nf!Qp3YE%bS=9IMG|1yQQ9IJY`YX z_;zcO$!lsPRda}%<@9ZL;vi~iU$IAG2DttAp(rpB{bMUykY{9U*??zT6Cz*OT-+yB zS)l{Q0-g=5&?8L0=vBw+V>n9iz1@!=$}o(q`YwbD!O~!lmYt}HaPC|7hkSeGRK~#P zpwF8P>Sg;NRlj}7oD&ob(d2zYss01esHF|5+0mnCFLej{z)in0{C0Hz%1g*Ax`v_t z8YjvA5XdZ*3vPuMU$B$h%x+%Ni+PIWM}ixVc2}By!R+Cx<*kV0iv6jvikBvn8ZeKe zUvo$aKQlP(%qJU33_BlD>r! z@67)0I8d&5qe z5se9&QB(0h#&JU2Bx?f`&mAjI9$$V@dQzXeqf6r0wh^@Zk*d!8C0q9D@F5i1u+r!5 zEqP$0xt>GIq#NGN4?EU{?9bHnYGh&H?EWXFUuGjAEj3Xo!Tp~m_ygbx!fQD@))5{!R48*DXLC&?+vq8Yu0mn!>gYDT#~qmy)eSr)`N2srS6+6y z_-RkXao*fV9m;Uz1iWNQWBH}f*vM$)x5JB{<|AsRr>8CaiIe+1qdsRB+(Vf6c6O?j z6f7NJO}$`KH!9DTq^8w52FGyrqfhJF2K~&5tP+~^nG!Qn?9Y9K8L^Kd$VMEiwDIX& z80*Lh*9x>tRU-j`^e2?1m-(XzxjF%w6zN^9ltHnd2h!7CMoLuEIo~TaHSq)EllnVj zRL|*c3oU{SzE3tOgTD&j+*z#~nD^|QDYXSCWl_B7F-dqUr4MW#hgcPk*Ou#NtvVa@ z2h1Nq0@m)G${!04XEvkp{CN7ksLb3LbCvi`r07@ik%jtdtuw^DecWs>rjarJ≶nkW&LL^n6fM~P)|#2Yh=fs1`XtN}B0 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ξ@u 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 Date: Fri, 3 Nov 2023 16:46:58 +0300 Subject: [PATCH 2/3] Update POST.md --- .../POST.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/POST.md b/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/POST.md index ca43ee6a8c..8e6bdd2a3b 100644 --- a/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/POST.md +++ b/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/POST.md @@ -74,8 +74,8 @@ app.MapGet("/", (ClaimsPrincipal user) => $"Hello {user.Identity!.Name}").Requir if (app.Environment.IsDevelopment()) { -app.UseSwagger(); -app.UseSwaggerUI(); + app.UseSwagger(); + app.UseSwaggerUI(); } app.Run(); @@ -84,7 +84,7 @@ class MyCustomUser : IdentityUser { } class ApplicationDbContext : IdentityDbContext { -public ApplicationDbContext(DbContextOptions options) : base(options) { } + public ApplicationDbContext(DbContextOptions options) : base(options) { } } ``` @@ -129,7 +129,7 @@ See [here](https://gist.github.com/captainsafia/7c54e92d12df695ff0908e989fb8531 ## Conclusion -In this article, I showed the Identity APIs introduced with ASP.NET 8, why we need them and how we can add them to our application, and finally I explained how to define a custom authorization policy with fewer lines of code. +In this article, I've shown you the Identity APIs introduced with ASP.NET 8, why we need them, and how we can add them to our application, and finally I explained how to define a custom authorization policy with fewer lines of code. ## References - https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-8.0?view=aspnetcore-8.0#authentication-and-authorization From 9d74a83655b677951d473de2bdd629eb69431ccc Mon Sep 17 00:00:00 2001 From: Hamza Albreem <94292623+braim23@users.noreply.github.com> Date: Tue, 7 Nov 2023 08:14:58 +0300 Subject: [PATCH 3/3] Update POST.md --- .../POST.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/POST.md b/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/POST.md index 8e6bdd2a3b..22c621aa1b 100644 --- a/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/POST.md +++ b/docs/en/Community-Articles/2023-11-03-ASPNET8-authentication-and-authorization/POST.md @@ -1,6 +1,6 @@ # ASP.NET 8: What's New About Authentication and Authorization -In ASP.NET 8, the landscape of authentication and authorization is undergoing a transformation. Specifically, ASP.NET Core Identity is transitioning from a focus on traditional web pages to a more API-driven approach. We will see what the Identity API endpoints are, why we need them, and how to use them in detail. So, let's dive in. +In ASP.NET 8, the concept of authentication and authorization is undergoing a transformation. Specifically, ASP.NET Core Identity is transitioning from a focus on traditional web pages to a more API-driven approach. We will see what the Identity API endpoints are, why we need them, and how to use them in detail. So, let's dive in. ## What is ASP.NET Core Identity? @@ -20,7 +20,7 @@ Let's delve into a common scenario: Imagine you have a straightforward application composed of an ASP.NET Core backend that exposes APIs. On the client side, you have a SPA application that communicates with these APIs. Now, you want to incorporate user accounts, complete with authentication and authorization, into your application. -Before the advent of the identity endpoints, you can add ASP.NET Core Identity and the default Razor Pages UI to your app by adding a few packages, updating your database schema, and registering some services. However, this approach had some disadvantages. From a user experience perspective, the full-page refreshes of Razor Pages can be a major drawback especially compared to the fluidity of SPAs. On the other hand, from a developers' perspective, if you want the default pages to be compatible with the rest of your application, you may need to update more than 30 pages. Moreover, the default Razor Pages UI uses traditional cookie-based authentication, not bearer tokens. +Before the advent of the identity endpoints, you could add ASP.NET Core Identity and the default Razor Pages UI to your app by adding a few packages, updating your database schema, and registering some services. However, this approach had some disadvantages. From a user experience perspective, the full-page refreshes of Razor Pages can be a major drawback especially compared to the fluidity of SPAs. On the other hand, from a developer's perspective, if you want the default pages to be compatible with the rest of your application, you may need to update more than 30 pages. Moreover, the default Razor Pages UI uses traditional cookie-based authentication, not bearer tokens. In ASP.NET 8, identity endpoints were introduced to simplify the process of adding user accounts to ASP.NET Core API apps used with SPAs or mobile. These endpoints streamline the user management process by providing an alternative to the traditional Razor Page Identity UI pages. Additionally, a new endpoint is included for retrieving bearer tokens, which can be used for authentication. These changes directly address the concerns mentioned earlier, making it easier to create a user-friendly and integrated experience within your app, with no full-page refreshes or styling conflicts. @@ -44,7 +44,7 @@ After that, open the application in your favorite IDE and add the required packa **Note:** I used the `.NET 8.0.100-rc.2-**` SDK for everything in this post. -Then replace `Program.cs` like below: +Then replace `Program.cs` as below: ```csharp using System.Security.Claims; @@ -89,7 +89,7 @@ class ApplicationDbContext : IdentityDbContext ``` -When you run the application, you will see a result like the following: +When you run the application, you will see a result as the following: ![](./new-identity-endpoints.png) @@ -102,7 +102,7 @@ Prior to ASP.NET 8, adding a parameterized authorization policy to an endpoint r - Implementing an `AuthorizationRequirement` for the policy - Implementing an `AuthorizationHandler` for each requirement -However, implementing the `IAuthorizationRequirementData` interface that comes with ASP.NET 8, your application code looks like this: +However, implementing the `IAuthorizationRequirementData` interface that comes with ASP.NET 8, your application code should look like this: ```csharp class MinimumAgeAuthorizeAttribute : AuthorizeAttribute, IAuthorizationRequirement, IAuthorizationRequirementData @@ -135,4 +135,4 @@ In this article, I've shown you the Identity APIs introduced with ASP.NET 8, why - https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-8.0?view=aspnetcore-8.0#authentication-and-authorization - https://auth0.com/blog/whats-new-dotnet8-authentication-authorization/ - https://andrewlock.net/exploring-the-dotnet-8-preview-introducing-the-identity-api-endpoints/ -- https://andrewlock.net/should-you-use-the-dotnet-8-identity-api-endpoints/ \ No newline at end of file +- https://andrewlock.net/should-you-use-the-dotnet-8-identity-api-endpoints/