Contrôle de l'accès
La prise en charge de la segmentation en unités comprend une fonction 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
. Grâce au contrôle basé sur la propriété, vous pouvez empêcher les utilisateurs d'accéder aux ressources dont ils ne sont pas propriétaires. Avec le contrôle d'accès basé sur la propriété, des méthodes spécifiques peuvent être appelées par les utilisateurs qui possèdent les ressources, telles que Token Owner
ou Account Owner
. Pour des informations spécifiques sur le contrôle d'accès pour les méthodes, voir les entrées individuelles pour les méthodes documentées dans les rubriques suivantes :
- Administrateur de jetons
- Les utilisateurs
Token Admin
peuvent être affectés lorsqu'un code de chaîne de jeton est déployé. Les informations sur l'utilisateurToken Admin
sont enregistrées dans la base de données d'état. Un utilisateurToken Admin
peut accorder et supprimer des privilègesToken Admin
pour d'autres utilisateurs. Un utilisateurToken Admin
ne peut pas supprimer ses propres privilègesToken Admin
. Un utilisateurToken Admin
peut affecter le rôleOrg Admin
, de mineur, de brûleur ou de notaire à n'importe quel utilisateur. - Administrateur de l'organisation
- Les méthodes étendues du cadre 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 voir les soldes de comptes, mais uniquement pour les utilisateurs de leur organisation. Les utilisateursOrg Admin
qui ont un rôle de mineur, de brûleur ou de notaire peuvent affecter ce rôle à d'autres utilisateurs de leur organisation. - Token Minter
- Un utilisateur auquel le rôle de mineur est affecté est
Token Minter
et peut créer des jetons. - Brûleur de jeton
- Un utilisateur auquel le rôle de brûleur est affecté est
Token Burner
et peut graver des jetons. - Notaire de jeton
- Un utilisateur auquel le rôle de notaire est affecté est
Token Notary
. UnToken Notary
agit en tant que tierce partie dans les transactions entre les payeurs et les bénéficiaires. UnToken Notary
peut soit déclencher l'achèvement d'un transfert de jeton d'un payeur à un bénéficiaire, soit retourner les jetons au compte du payeur. - Gestionnaire de chambre forte
- Un utilisateur auquel le rôle de chambre forte est affecté est
Vault Manager
.Vault Manager
peut déverrouiller un fichier NFT verrouillé. Le rôle de coffre-fort s'applique uniquement aux normes étendues ERC-721 et ERC-1155. L'affectation du rôle de coffre-fort à un utilisateur est une condition préalable au verrouillage des fichiers NFT. Un seul utilisateur par code de chaîne peut être affecté au rôle de chambre forte.
Le contrôle d'accès par rôle et le contrôle d'accès par 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 doté du rôle de mineur 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 de mineur crée un jeton non fongible (NFT), il devient propriétaire du NFT. En tant que propriétaire de cette 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 maintenant mettre à jour une valeur de propriété personnalisée, mais le propriétaire précédent ne peut plus le faire. En raison du contrôle d'accès basé sur les rôles, le propriétaire précédent peut toujours frapper 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 présenté dans les exemples suivants.
await this.Ctx.<Token Standard>Auth.checkAuthorization(...)
auth, err := t.Ctx.<Token Standard>Auth.CheckAuthorization(...)
Note :
Pour supprimer la fonction de contrôle d'accès générée automatiquement, supprimez la ligne de code précédente de votre projet TypeScript ou Go.