Course contentsShow
← C#
Lesson 1178 of 1,90811. Identity, Security, and ClaimsFree lesson

Configuring External OAuth Providers

Integrate third-party login flows like Google, Microsoft, or GitHub into your application pipeline.

In this lesson, you will learn how to extend your ASP.NET Core Identity system to allow users to sign in using their existing accounts from platforms like Google, Microsoft, or GitHub.

Why External OAuth?

Managing passwords is hard for both users and developers. By integrating external OAuth providers, you delegate the authentication process to a trusted third party. Your application doesn't see the user's password; instead, it receives a secure "token" confirming the user's identity once they log in successfully elsewhere.

The Integration Flow

To integrate an OAuth provider, you typically perform three steps:

  1. Register your app in the provider’s developer portal (e.g., Google Cloud Console) to receive a Client ID and Client Secret.
  2. Install the NuGet package corresponding to the provider (e.g., Microsoft.AspNetCore.Authentication.Google).
  3. Configure the pipeline in your Program.cs file.

Here is how you wire it up in your application pipeline:

builder.Services.AddAuthentication()
    .AddGoogle(options =>
    {
        options.ClientId = builder.Configuration["Authentication:Google:ClientId"];
        options.ClientSecret = builder.Configuration["Authentication:Google:ClientSecret"];
    });

How it Works

When a user clicks "Log in with Google," the application redirects them to Google’s servers. After the user authenticates, Google redirects the browser back to a specific endpoint in your app (usually /signin-google).

Behind the scenes, the AddGoogle middleware handles the heavy lifting: it communicates back-channel with Google to validate the token and maps the user's claims—like their email or name—into your application’s ClaimsPrincipal. Because you are already using the ASP.NET Core Identity architecture, the system automatically creates a linked entry in your database, allowing the user to sign in seamlessly moving forward.

By using this approach, you minimize the surface area for credential-based attacks while providing a significantly smoother experience for your users.

Key Takeaway: Integrating external OAuth providers allows you to offload secure authentication to trusted third parties while keeping your local application identity consistent through the standard ASP.NET Core claims-based model.