Table des matières
1. Scénario commercial
Maison développement back-end Tutoriel C#.Net Configuration des autorisations IdentityServer4, instance AllowedScopes

Configuration des autorisations IdentityServer4, instance AllowedScopes

Jun 24, 2017 am 10:48 AM
授权

1. Scénario commercial

Le Client dans la configuration de l'autorisation IdentityServer4 AllowedScopes définit le nom du site API spécifique, qui est le ApiName défini par l'utilisateur. Exemple de code :

//授权中心配置new Client
{
    ClientId = "client_id_1",
    AllowedGrantTypes = GrantTypes.ResourceOwnerPassword,
    AllowOfflineAccess = true,
    AccessTokenLifetime = 3600 * 6, //6小时SlidingRefreshTokenLifetime = 1296000, //15天ClientSecrets =
    {new Secret("secret".Sha256())
    },
    AllowedScopes = 
    {"api_name1"},
}//API 服务配置app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
    Authority = $"http://localhost:5000",
    ApiName = "api_name1",
    RequireHttpsMetadata = false});
Copier après la connexion
Les deux

configurations ci-dessus doivent être cohérentes. Le problème se pose car la configuration api_name1 du centre d'autorisation est l'ensemble du service API. Si nous avons plusieurs scope configurations, telles. comme s'il y a un frontend et un backend, et que les deux doivent accéder à Client, certains problèmes surgiront. api_name1

Par exemple, le code de configuration d'un service d'interface dans le service

 : configuration api_name1

[Authorize()]
[Route("api/values")]
[HttpGet]public IActionResult Get()
{return Ok();
}
Copier après la connexion

, indiquant que l'interface Authorize() nécessite une autorisation d'accès, si le centre d'autorisation est configuré avec deux api/values (frontend et backend), et que les deux Client incluent scope, il y aura maintenant deux situations : api_name1

  1. frontend

    et le backend Client doivent être autorisés pour accéder à l'interface Client : pas de problème. api/values

  2. Front-end

    ne nécessite pas d'autorisation pour l'accès, et le back-end Client nécessite une autorisation pour l'accès : Il y a un problème, le front-end Client ne peut pas y accéder car l'interface Client est paramétrée api/values. Authorize()

En fait, pour l'expliquer plus clairement, comment laisser le service API spécifier

pour autoriser l'accès ? Par exemple : Client. [Authorize(ClientId = 'client_id_1')]

2. Solution

Il n'y a pas de

solution, mais vous pouvez utiliser [Authorize(ClientId = 'client_id_1')]. [Authorize(Roles = 'admin')]

Le

code du centre d'autorisation est modifié comme suit :ResourceOwnerPasswordValidator

public class ResourceOwnerPasswordValidator : IResourceOwnerPasswordValidator
{private readonly IUserService _userService;public ResourceOwnerPasswordValidator(IUserService userService)
    {
        _userService = userService;
    }public async Task ValidateAsync(ResourceOwnerPasswordValidationContext context)
    {var user = await _userService.Login(context.UserName, context.Password);if (user != null)
        {var claims = new List<Claim>() { new Claim("role", "admin") }; //根据 user 对象,设置不同的 rolecontext.Result = new GrantValidationResult(user.UserId.ToString(), OidcConstants.AuthenticationMethods.Password, claims);
        }
    }
}
Copier après la connexion
La

configuration du centre d'autorisation est modifiée comme suitstartup

var builder = services.AddIdentityServer();
builder.AddTemporarySigningCredential()//.AddInMemoryIdentityResources(Config.GetIdentityResources()).AddInMemoryApiResources(new List<ApiResource>
        {new ApiResource("api_name1", "api1"){ UserClaims = new List<string> {"role"}}, //增加 role claimnew ApiResource("api_name2", "api2"){ UserClaims = new List<string> {"role"}}
        })
        .AddInMemoryClients(Config.GetClients());
Copier après la connexion
L'interface du service API doit uniquement être configurée comme suit :

[Authorize()]
[Route("api/values")]
[HttpGet]public IActionResult Get()
{return Ok();
}

[Authorize(Roles = "admin")]
[Route("api/values2")]
[HttpGet]public IActionResult Get2()
{return Ok();
}

[Authorize(Roles = "admin,normal")]
[Route("api/values3")]
[HttpGet]public IActionResult Get3()
{return Ok();
}
Copier après la connexion
Il convient de noter que bien que l'interface

n'a pas d'ensemble api/values spécifique, Accessible à tous Roles. Role

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre à niveau la version de service à long terme de Win10 Enterprise version 2016 vers la version professionnelle Comment mettre à niveau la version de service à long terme de Win10 Enterprise version 2016 vers la version professionnelle Jan 03, 2024 pm 11:26 PM

Lorsque nous ne souhaitons plus utiliser l'actuelle édition de service à long terme de Win10 Enterprise Edition 2016, nous pouvons choisir de passer à l'édition professionnelle. La méthode est également très simple. Il suffit de modifier certains contenus et d'installer l'image système. Comment changer la version de service à long terme de Win10 Enterprise version 2016 en version professionnelle 1. Appuyez sur win+R, puis entrez « regedit » 2. Collez le chemin suivant directement dans la barre d'adresse ci-dessus : Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT \CurrentVersion3 , puis recherchez l'EditionID et remplacez le contenu par "professionnel" pour confirmer

Comment utiliser Flask-Security pour implémenter l'authentification et l'autorisation des utilisateurs Comment utiliser Flask-Security pour implémenter l'authentification et l'autorisation des utilisateurs Aug 04, 2023 pm 02:40 PM

Comment utiliser Flask-Security pour implémenter l'authentification et l'autorisation des utilisateurs Introduction : Dans les applications Web modernes, l'authentification et l'autorisation des utilisateurs sont des fonctions essentielles. Pour simplifier ce processus, Flask-Security est une extension très utile qui fournit une série d'outils et de fonctions pour rendre l'authentification et l'autorisation des utilisateurs simples et pratiques. Cet article expliquera comment utiliser Flask-Security pour implémenter l'authentification et l'autorisation des utilisateurs. 1. Installez l'extension Flask-Security : au début

UniApp implémente une analyse détaillée de la connexion et de l'autorisation des utilisateurs UniApp implémente une analyse détaillée de la connexion et de l'autorisation des utilisateurs Jul 05, 2023 pm 11:54 PM

Analyse détaillée de la mise en œuvre par UniApp de la connexion et de l'autorisation des utilisateurs. Dans le développement d'applications mobiles modernes, la connexion et l'autorisation des utilisateurs sont des fonctions essentielles. En tant que cadre de développement multiplateforme, UniApp fournit un moyen pratique de mettre en œuvre la connexion et l'autorisation des utilisateurs. Cet article explorera les détails de la mise en œuvre de la connexion et de l'autorisation des utilisateurs dans UniApp, et joindra des exemples de code correspondants. 1. Implémentation de la fonction de connexion utilisateur Créer une page de connexion La fonction de connexion utilisateur nécessite généralement une page de connexion, qui contient un formulaire permettant aux utilisateurs de saisir leur numéro de compte et leur mot de passe ainsi qu'un bouton de connexion.

Comment obtenir une autorisation pour les tranches et les produits Douyin ? Le tranchage Douyin est-il facile à réaliser ? Comment obtenir une autorisation pour les tranches et les produits Douyin ? Le tranchage Douyin est-il facile à réaliser ? Mar 07, 2024 pm 10:52 PM

Douyin, en tant que plate-forme de médias sociaux populaire à l'heure actuelle, offre non seulement aux gens une richesse de contenu de divertissement, mais est également devenu un canal important permettant à de nombreuses marques et commerçants de promouvoir leurs produits et de réaliser des ventes. Parmi eux, le découpage et la vente de produits par Douyin sont devenus une méthode de marketing nouvelle et efficace. Alors, comment obtenir l'autorisation pour les produits en tranches de Douyin ? 1. Comment obtenir l'autorisation pour les produits en tranches de Douyin ? Les produits en tranches de Douyin décomposent de longues vidéos en courts clips vidéo et y intègrent des informations sur la promotion des produits pour attirer les téléspectateurs. acheter. . Lors du découpage et de la vente de marchandises sur Douyin, la première étape consiste à obtenir l'autorisation de la vidéo originale. Lorsque vous recherchez un concédant de licence approprié, vous pouvez envisager d'utiliser différents canaux tels que la plateforme Douyin, les médias sociaux et les forums industriels. Trouvez des créateurs ou des détenteurs de droits d'auteur avec du contenu vidéo populaire et connectez-vous activement avec eux,

Comment implémenter l'authentification et l'autorisation dans les applications PHP à l'aide de JWT Comment implémenter l'authentification et l'autorisation dans les applications PHP à l'aide de JWT Aug 03, 2023 pm 10:17 PM

Comment utiliser JWT pour implémenter l'authentification et l'autorisation dans les applications PHP Introduction : Avec le développement rapide d'Internet, l'authentification et l'autorisation deviennent de plus en plus importantes dans les applications Web. JSONWebToken (JWT) est un mécanisme d'authentification et d'autorisation populaire largement utilisé dans les applications PHP. Cet article expliquera comment utiliser JWT pour implémenter l'authentification et l'autorisation dans les applications PHP, et fournira des exemples de code pour aider les lecteurs à mieux comprendre l'utilisation de JWT. 1. Introduction à JWTJSONWebTo

Authentification et autorisation des utilisateurs dans Flask Authentification et autorisation des utilisateurs dans Flask Jun 17, 2023 pm 06:02 PM

Avec l’utilisation généralisée des applications Web, la sécurité et la protection des données sont devenues un enjeu important dans le développement d’applications Web. Pour garantir la sécurité des applications Web, l'authentification et l'autorisation des utilisateurs sont requises. En tant que framework de développement Web populaire, Flask fournit de nombreux mécanismes pour implémenter l'authentification et l'autorisation des utilisateurs. Authentification de l'utilisateur L'authentification de l'utilisateur fait référence à l'utilisation d'une certaine méthode d'authentification pour déterminer si l'identité de l'utilisateur est légitime lorsqu'il accède à l'application Web. Flask offre beaucoup

Que faire si l'autorisation wps a expiré et que le texte ne peut pas être saisi ? Que faire si l'autorisation wps a expiré et que le texte ne peut pas être saisi ? Mar 20, 2024 am 09:00 AM

Il existe de nombreux logiciels authentiques afin de protéger leurs propres droits de propriété intellectuelle. Avant d'utiliser le logiciel, les utilisateurs doivent obtenir certaines autorisations et obtenir l'autorisation du développeur avant de pouvoir l'utiliser. Certains logiciels disposent d'une période d'essai. Après cette période, vous devez obtenir une nouvelle autorisation avant de pouvoir l'utiliser normalement. Si wps indique que l'autorisation a expiré, nous ne pouvons effectuer aucune opération. Comment résoudre ce problème, jetons un œil à l’explication ci-dessous. 1. J'ai ouvert le programme de texte WPS et cliqué sur la case rouge dans l'image ci-dessus, comme le montre l'image ci-dessous. 2. Cliquez sur Outils de configuration et de réparation. 3. Sélectionnez « Avancé » comme indiqué dans la figure ci-dessous. 4. Cliquez sur le centre de gestion des produits pour supprimer le contenu de l'invite « Expiré », comme indiqué dans la figure ci-dessous. 5. Après avoir cliqué sur « Ajouter », saisissez le numéro de série, comme indiqué dans la figure ci-dessous. 6. Alors d'abord

Comment implémenter les fonctions d'authentification et d'autorisation des utilisateurs via le framework Webman ? Comment implémenter les fonctions d'authentification et d'autorisation des utilisateurs via le framework Webman ? Jul 07, 2023 am 09:21 AM

Comment implémenter les fonctions d'authentification et d'autorisation des utilisateurs via le framework Webman ? Webman est un framework Web léger basé sur Python, qui offre des fonctions riches et une évolutivité flexible. En développement, l'authentification et l'autorisation des utilisateurs sont des fonctions très importantes. Cet article présentera comment utiliser le framework Webman pour implémenter ces fonctions. Installer Webman Tout d'abord, nous devons installer Webman. Vous pouvez utiliser la commande pip pour installer : pipinstallwebman

See all articles