Passer au contenu principal
Auth0 propose deux façons de mettre en œuvre le contrôle d’accès basé sur les rôles (RBAC), que vous pouvez utiliser à la place du système de contrôle d’accès interne de votre API ou en combinaison avec lui :L’ensemble des fonctionnalités Authorization Core correspond aux fonctionnalités d’Authorization Extension, améliore les performances et l’évolutivité, et fournit un système RBAC plus souple qu’Authorization Extension.À ce stade, les deux mettent en œuvre les fonctionnalités clés de RBAC et vous permettent de restreindre les permissions personnalisées définies pour une API à celles qui ont été attribuées à l’utilisateur en tant qu’autorisations.

Conditions préalables

Avant de commencer, assurez-vous que vous disposez d’une application existante qui peut être utilisée avec Authorization Extension. Vous pouvez utiliser les types d’applications suivants :
  • Applications natives
  • Applications Web classiques
  • Applications à page unique
Les applications sans type assigné ou les applications de communication entre machines ne peuvent pas être utilisées avec cette extension.

Installer l’extension

  1. Allez dans Auth0 Dashboard > Extensions.
  2. Sélectionnez AAutorisation Auth0 et répondez à la demande d’installation.
  3. Choisissez l’endroit où vous souhaitez stocker vos données : Webtask Storage ou Amazon S3 bucket.
Une fois l’extension installée, vous la verrez apparaître dans la liste des Extensions installées.
Dashboard (Tableau de bord) – Extensions – Installed Extensions (Extensions installées) – Authorization Extension (Extension d’autorisation)
Installer cette extension crée une application auth0-authz pour votre compte. Ne modifiez pas et ne supprimez pas cette application! Si vous désinstallez l’extension ultérieurement, cette application sera automatiquement supprimée.
Lorsque vous cliquez sur le lien pour ouvrir l’extension pour la première fois, il vous sera demandé d’autoriser l’extension à accéder à votre compte Auth0. Si vous le faites, vous serez dirigé vers le Authorization Dashboard.
Dashboard - Extensions - Authorization Dashboard - Users

Stockage Webtask

L’extension utilisera le stockage Webtask par défaut, et vous êtes limité à 500 Ko de données. Cela équivaut à :
  • 1000 groupes et 3000 utilisateurs, où chaque utilisateur est membre de 3 groupes
  • 20 groupes et 7000 utilisateurs, où chaque utilisateur est membre de 3 groupes.

Amazon S3

Vous pouvez également utiliser Amazon S3 comme fournisseur de stockage. Amazon S3 est une plateforme de stockage basée sur les fichiers, ce qui signifie qu’elle écrit en parallèle. Cela peut poser des problèmes, mais la logique de stockage de l’extension tente d’en tenir compte. Toutefois, si vous automatisez la création de groupes, de rôles ou de permissions, Auth0 vous recommande d’utiliser des appels séquentiels à l’API.
Cette extension a des limites en matière de performances et n’est pas destinée à être utilisée avec de grands ensembles de données. Avant d’opter pour Amazon  S3 pour le stockage de données, nous vous recommandons de le tester et de voir comment il fonctionne dans votre cas. Une dégradation des performances est également possible au fur et à mesure que des données sont ajoutées à Amazon S3.
Pour utiliser Amazon S3, vous devez :
  1. Créer un bucket S3.
  2. Créer un utilisateur IAM et obtenir l’identifiant de clé pour cet utilisateur.
  3. Créer une politique pour l’utilisateur IAM qui permet à l’utilisateur d’apporter des modifications au bucket.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::{nameOfYourBucket}/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::{nameOfYourBucket}"
            ],
            "Condition": {}
        }
    ]
}

En savoir plus

I