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é.

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. 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 :
Le contrôle d'accès par rôle prend en charge les personas suivants :
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'utilisateur Token Admin sont enregistrées dans la base de données d'état. Un utilisateur Token Admin peut accorder et supprimer des privilèges Token Admin pour d'autres utilisateurs. Un utilisateur Token Admin ne peut pas supprimer ses propres privilèges Token Admin. Un utilisateur Token Admin peut affecter le rôle Org 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 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 voir les soldes de comptes, mais uniquement pour les utilisateurs de leur organisation. Les utilisateurs Org 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. Un Token Notary agit en tant que tierce partie dans les transactions entre les payeurs et les bénéficiaires. Un Token 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 basé sur la propriété prend en charge les personas suivants :
Responsable de compte
Tout utilisateur ayant un compte est un Account Owner.
Responsable du jeton
Tout utilisateur qui possède actuellement un jeton non fongible est le Token Owner de ce jeton.

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.

TypeScript :
await this.Ctx.<Token Standard>Auth.checkAuthorization(...)
Go :
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.