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é.
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 :
- Administration des jetons
- Les utilisateurs
Token Admin
peuvent être affectés lorsqu'un code chaîne de jeton est déployé. Les informations utilisateurToken Admin
sont enregistrées dans la base de données d'état. Un utilisateurToken Admin
peut accorder et enlever des privilègesToken Admin
pour d'autres utilisateurs. Un utilisateurToken Admin
ne peut pas enlever ses propres privilègesToken Admin
. Un utilisateurToken Admin
peut affecter le rôleOrg 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 utilisateurToken Admin
peut affecter le rôleOrg Admin
à n'importe quel utilisateur. Les utilisateursOrg 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 utilisateursOrg 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
. UnToken Notary
agit en tant que tiers dans les transactions entre les payeurs et les bénéficiaires. Un élémentToken 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 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.
await this.Ctx.<Token Standard>Auth.checkAuthorization(...)
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.