Casbin

Casbin

  • Documents
  • API
  • Editeur
  • Plugins IDE
  • Authentification unique (SSO)
  • Forums
  • Aide
  • Blogue
  • Pricing
  • Contact Sales
  • Languages iconFrançais
    • English
    • 中文
    • 한국어
    • Русский
    • Deutsch
    • 日本語
    • Aider à traduire
  • GitHub

›Utilisation avancée

Les Bases

  • Aperçu
  • Commencer
  • Comment ça marche
  • Tutoriels

Modélisation

  • Modèles pris en charge
  • Syntaxe pour les modèles
  • Effet
  • Fonction
  • RBAC
  • RBAC avec motif
  • RBAC avec domaines
  • Casbin RBAC v.s. RBAC96
  • ABAC
  • Modèle de priorité
  • Super Admin

Stockage

  • Stockage du modèle
  • Stockage de la politique
  • Chargement du sous-ensemble de la politique

Extensions

  • Enforcers
  • Adaptateurs
  • Observateurs
  • Répartiteurs
  • Responsables des rôles
  • Moyens
  • Moyens GraphQL
  • Moyens natifs du Cloud

API

  • Aperçu de l'API
  • API de gestion
  • RBAC API
  • RBAC avec API Domains
  • API RoleManager
  • Autorisations des données

Utilisation avancée

  • Multi-threads
  • Benchmarks
  • Optimisation des performances
  • Autorisation de Kubernetes
  • Autorisation de maillage de service par l'envoyé

Gestion

  • Portail Admin
  • Service Casbin
  • Gestion des logs et des erreurs
  • Utilisation du frontend

Editeur

  • Éditeur en ligne
  • Plugins IDE

En savoir plus

  • Nos Adopteurs
  • Contribuer
  • Politique de confidentialité
  • Conditions d'utilisation
Translate

Autorisation de maillage de service par l'envoyé

Envoy-authz est un middleware d'Envoyé qui effectue une autorisation externe RBAC & ABAC via casbin. Ce middleware utilise l'API d'autorisation externe Envoyé via un serveur gRPC. Ce proxy serait déployé sur n'importe quel type de mailles de service basées sur l'envoi comme Istio.

Exigences

  • Envoyé 1.17+
  • Istio ou tout type de maillage de service
  • Dépendances grpc

Les dépendances sont gérées via go.mod.

Travail de Middleware

  • Un client ferait une requête http.
  • Envoy proxy enverrait cette requête au serveur grpc.
  • Le serveur grpc autoriserait alors la requête en se basant sur les règles de casbin.
  • Si elle est autorisée, la demande sera envoyée par le biais ou autrement, elle sera refusée.

Le serveur grpc est basé sur le tampon de protocole de external_auth.proto d'Envoy.

// Une interface générique pour effectuer la vérification d'autorisation sur les requêtes entrantes
// à un service en réseau.
service Authorization {
  // Effectue une vérification d'autorisation basée sur les attributs associés à la requête entrante
  // et retourne le statut `OK` ou pas `OK`.
  rpc Check(v2.CheckRequest) retourne (v2.CheckResponse);
}

À partir du profil ci-dessus, nous devons utiliser le service Check() dans le serveur d'autorisation.

Usage

  • Define the Casbin policies under config files by following this guide.

You can verify/test your policies on online casbin-editor.

  • Démarrez le serveur d'autorisation en cours d'exécution :-
$ go build .
$ ./authz 
  • Charger la configuration de l'envoyé :-
$ envoyé -c authz.yaml -l info

Une fois que l'envoyé aura démarré, il commencera à intercepter les demandes d'autorisation.

Intégration à Istio

Vous devez envoyer des en-têtes personnalisés, qui contiendraient des noms d'utilisateur dans les en-têtes JWT pour que ce middleware fonctionne. Vous pouvez consulter les docs officiels Istio pour obtenir plus d'informations sur la modification des en-têtes de requête.

← Autorisation de KubernetesPortail Admin →
  • Exigences
  • Travail de Middleware
  • Usage
  • Intégration à Istio
Casbin
Docs
Getting StartedManagement APIRBAC APIMiddlewares
Community
Who's using Casbin?Stack Overflow
Casbin          jCasbin
Node-Casbin   PHP-CasbinPyCasbin          Casbin.NETCasbin-CPP        Casbin-RS
Follow @casbinHQ
Copyright © 2022 Casbin Organization