Control de Acceso
El soporte de tokenización incluye una función de control de acceso que admite mecanismos de control basados en roles y en propiedad.
Token Admin
o Token Minter
. Con el control basado en la propiedad, puede restringir el acceso de los usuarios a activos de los que no son propietarios. Con el control de acceso basado en la propiedad, los usuarios que poseen los activos pueden llamar a métodos específicos, como Token Owner
o Account Owner
. Para obtener información específica sobre el control de acceso para los métodos, consulte las entradas individuales de los métodos documentados en los siguientes temas:
- Administración de token
- Se pueden asignar usuarios
Token Admin
cuando se despliega un código de cadena de token. La información de usuarioToken Admin
se guarda en la base de datos de estado. Un usuarioToken Admin
puede otorgar y eliminar privilegiosToken Admin
para otros usuarios. Un usuarioToken Admin
no puede eliminar sus propios privilegiosToken Admin
. Un usuarioToken Admin
puede asignar el rolOrg Admin
, minter, quemador o notario a cualquier usuario. - Administrador de organización
- Los métodos ampliados del marco de taxonomía de token soportan el rol
Org Admin
. Un usuarioToken Admin
puede asignar el rolOrg Admin
a cualquier usuario. Los usuarios deOrg Admin
tienen privilegios administrativos, pero solo dentro de su organización. Pueden crear cuentas o ver saldos de cuenta, pero solo para usuarios de su organización. Los usuarios deOrg Admin
que tienen un rol de moderador, quemador o notario pueden asignar ese rol a otros usuarios de su organización. - Minter de token
- Un usuario al que se le asigna el rol de moderador es un
Token Minter
y puede acuñar tokens. - Quemador de tokens
- Un usuario al que se le asigna el rol de quemador es un
Token Burner
y puede grabar tokens. - Notario de token
- Un usuario al que se le asigna el rol de notario es
Token Notary
. UnToken Notary
actúa como un tercero en las transacciones entre los pagadores y los beneficiarios. UnToken Notary
puede disparar la finalización de una transferencia de token de un pagador a un beneficiario o, en su lugar, puede devolver los tokens a la cuenta del pagador. - Gestor de almacenes
- Un usuario al que se le asigna el rol de almacén es
Vault Manager
.Vault Manager
puede desbloquear un NFT bloqueado. El rol de almacén solo es aplicable para los estándares ERC-721 y ERC-1155 ampliados. La asignación del rol de almacén a un usuario es un requisito previo para bloquear los NFT. Solo se puede asignar el rol de almacén a un usuario por código de cadenas.
El control de acceso basado en roles y el control de acceso basado en la propiedad también se combinan en algunos métodos. Por ejemplo, el control de acceso basado en roles permite a un usuario con el rol menor crear tokens. Con el control de acceso basado en la propiedad, un propietario de token no fungible puede modificar las propiedades personalizadas de un token, pero no puede modificar los metadatos del token. Cuando un usuario con el rol minter crea un token no fungible (NFT), se convierte en el propietario del NFT. Como propietario de ese NFT, pueden modificar las propiedades personalizadas (para un token de recopilación de arte, el precio del token es una propiedad personalizada). Después de que el creador del token transfiera el NFT a otro usuario, el segundo usuario se convierte en el propietario y el usuario que creó el token ya no es el propietario del token. Debido al control de acceso basado en la propiedad, el nuevo propietario ahora puede actualizar un valor de propiedad personalizada, pero el propietario anterior ya no lo puede. Debido al control de acceso basado en roles, el propietario anterior aún puede acuñar un NFT, pero el nuevo usuario no puede.
También puede escribir sus propias funciones de control de acceso o desactivar el control de acceso. El código generado automáticamente que controla el acceso se muestra en los siguientes ejemplos.
await this.Ctx.<Token Standard>Auth.checkAuthorization(...)
auth, err := t.Ctx.<Token Standard>Auth.CheckAuthorization(...)
Note:
Para eliminar la función de control de acceso generada automáticamente, elimine la línea de código anterior del proyecto TypeScript o Go.