Contrôle d'accès

La prise en charge de la segmentation en jetons inclut une fonctionnalité de contrôle d'accès qui prend en charge les mécanismes de contrôle basés sur les rôles et sur la propriété.

Avec le contrôle basé sur les rôles, les utilisateurs peuvent appeler des méthodes spécifiques avec un rôle associé, tel que Token Admin ou Token Minter. Avec le contrôle basé sur la propriété, vous pouvez empêcher les utilisateurs d'accéder aux ressources qu'ils ne possèdent pas. Avec le contrôle d'accès basé sur la propriété, des méthodes spécifiques peuvent être appelées par les utilisateurs propriétaires des ressources, tels que Token Owner ou Account Owner. Pour obtenir des informations spécifiques sur le contrôle d'accès des méthodes, reportez-vous aux entrées individuelles des méthodes documentées dans les rubriques suivantes :
Le contrôle d'accès basé sur les rôles prend en charge les personas suivants :
Administration des jetons
Les utilisateurs Token Admin peuvent être affectés lorsqu'un code chaîne de jeton est déployé. Les informations utilisateur Token Admin sont enregistrées dans la base de données d'état. Un utilisateur Token Admin peut accorder et enlever des privilèges Token Admin pour d'autres utilisateurs. Un utilisateur Token Admin ne peut pas enlever ses propres privilèges Token Admin. Un utilisateur Token Admin peut affecter le rôle Org Admin, minter, burner ou notaire à n'importe quel utilisateur.
Administration des organisations
Les méthodes étendues de structure de taxonomie de jeton prennent en charge le rôle Org Admin. Un utilisateur Token Admin peut affecter le rôle Org Admin à n'importe quel utilisateur. Les utilisateurs Org Admin disposent de privilèges d'administration, mais uniquement au sein de leur organisation. Ils peuvent créer des comptes ou consulter les soldes des comptes, mais uniquement pour les utilisateurs de leur organisation. Les utilisateurs Org Admin disposant d'un rôle de mineur, de brûleur ou de notaire peuvent affecter ce rôle à d'autres utilisateurs de leur organisation.
Minter de jetons
Un utilisateur auquel le rôle de minter est affecté est Token Minter et peut utiliser des jetons menthe.
Bûcher de jetons
Un utilisateur auquel le rôle de brûleur est affecté est Token Burner et peut graver des jetons.
Token Notary
Un utilisateur auquel le rôle de notaire est affecté est Token Notary. Un Token Notary agit en tant que tiers dans les transactions entre les payeurs et les bénéficiaires. Un élément Token Notary peut soit déclencher la finalisation d'un transfert de jeton d'un payeur vers un bénéficiaire, soit renvoyer les jetons vers le compte du payeur.
Gestionnaire de pannes
L'utilisateur auquel le rôle de coffre est affecté est Vault Manager. Vault Manager peut déverrouiller un NFT verrouillé. Le rôle d'archivage sécurisé ne s'applique qu'aux normes étendues ERC-721 et ERC-1155. L'affectation du rôle d'archivage sécurisé à un utilisateur est une condition préalable au verrouillage des NFT. Le rôle de coffre peut être affecté à un seul utilisateur par code chaîne.
Le contrôle d'accès basé sur la propriété prend en charge les personas suivants :
Propriétaire de compte
Tout utilisateur disposant d'un compte est Account Owner.
Propriétaire du jeton
Tout utilisateur qui possède actuellement un jeton non fongible est Token Owner de ce jeton.

Le contrôle d'accès basé sur les rôles et le contrôle d'accès basé sur la propriété sont également combinés dans certaines méthodes. Par exemple, le contrôle d'accès basé sur les rôles permet à un utilisateur disposant du rôle minter de créer des jetons. Avec le contrôle d'accès basé sur la propriété, un propriétaire de jeton non fongible peut modifier les propriétés personnalisées d'un jeton, mais ne peut pas modifier les métadonnées du jeton. Lorsqu'un utilisateur doté du rôle minter crée un jeton non fongible (NFT), il devient le propriétaire du NFT. En tant que propriétaire de ce NFT, ils peuvent modifier les propriétés personnalisées (pour un jeton de collection d'art, le prix du jeton est une propriété personnalisée). Une fois que le créateur du jeton a transféré le NFT à un autre utilisateur, le deuxième utilisateur devient le propriétaire et l'utilisateur qui a créé le jeton n'est plus le propriétaire du jeton. En raison du contrôle d'accès basé sur la propriété, le nouveau propriétaire peut désormais mettre à jour une valeur de propriété personnalisée, mais le propriétaire précédent ne le peut plus. En raison du contrôle d'accès basé sur les rôles, le propriétaire précédent peut toujours contrôler un NFT, mais le nouvel utilisateur ne peut pas.

Vous pouvez également écrire vos propres fonctions de contrôle d'accès ou désactiver le contrôle d'accès. Le code généré automatiquement qui contrôle l'accès est illustré dans les exemples suivants.

TypeScript:
await this.Ctx.<Token Standard>Auth.checkAuthorization(...)
Exécuter
auth, err := t.Ctx.<Token Standard>Auth.CheckAuthorization(...)

Remarques :

Pour enlever la fonction de contrôle d'accès générée automatiquement, enlevez la ligne de code précédente de votre projet TypeScript ou Go.