Maison >développement back-end >C++ >Comment prendre en charge plusieurs émetteurs JWT dans ASP.NET Core ?

Comment prendre en charge plusieurs émetteurs JWT dans ASP.NET Core ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-12 06:23:44292parcourir

How to Support Multiple JWT Issuers in ASP.NET Core?

Gestion de plusieurs émetteurs JWT dans ASP.NET Core 2

Ce guide montre comment configurer ASP.NET Core 2 pour authentifier les requêtes à l'aide de JWT provenant de diverses sources, telles que des API externes ou des systèmes d'authentification personnalisés. Bien que l'authentification standard du porteur ASP.NET Core JWT prenne généralement en charge une seule autorité, cette limitation peut être surmontée grâce à une approche multi-schémas.

Étapes de configuration

La mise en œuvre de la prise en charge de plusieurs émetteurs JWT implique ces étapes clés :

  1. Ajoutez le AddAuthentication middleware sans spécifier de schéma par défaut.
  2. Définissez chaque schéma d'authentification à l'aide de AddJwtBearer, en attribuant un nom unique à chacun. Configurez le Authority et le TokenValidationParameters pour chaque schéma individuellement.
  3. Modifiez la stratégie d'autorisation par défaut pour accepter tous les schémas d'authentification configurés.

Voici un exemple de code illustrant cette configuration :

<code class="language-csharp">services
    .AddAuthentication()
    .AddJwtBearer("Firebase", options =>
    {
        options.Authority = "https://securetoken.google.com/my-firebase-project";
        options.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateIssuer = true,
            ValidIssuer = "my-firebase-project",
            ValidateAudience = true,
            ValidAudience = "my-firebase-project",
            ValidateLifetime = true
        };
    })
    .AddJwtBearer("Custom", options =>
    {
        // Custom JWT token configuration
    });

services
    .AddAuthorization(options =>
    {
        options.DefaultPolicy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .AddAuthenticationSchemes("Firebase", "Custom")
            .Build();
    });</code>

Considérations avancées et dépannage

  • Pour les besoins d'autorisation complexes, tirez parti de l'autorisation basée sur des stratégies.
  • Dans .NET Core 6 et versions ultérieures, n'oubliez pas de définir explicitement un schéma d'authentification par défaut.
  • L'erreur IDX10501 résulte souvent de l'ordre d'évaluation des politiques du système. Un examen attentif des configurations de vos politiques est crucial.

Cette méthode vous permet d'intégrer de manière transparente l'authentification et l'autorisation de plusieurs émetteurs JWT dans votre application ASP.NET Core 2.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn