Funciones de biblioteca de control de acceso detallado
El paquete de biblioteca proporciona las siguientes funciones para recursos, grupos y ACL, así como funciones globales.
Funciones Globales
Función | Descripción |
---|---|
Initialization(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (error) (error) |
Al desplegar el código de cadena, se llama a la función Una vez realizado el proceso de inicialización de datos, se crean las siguientes entidades:
|
NewGroupManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*GroupManager, error) |
Obtiene el gestor de grupos que se utiliza para todas las operaciones relacionadas con grupos. Identidad: la identidad por defecto para la operación relacionada. Si es nulo, entonces la función utiliza la identidad del emisor de llamada. |
NewACLManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ACLManager, error) |
Obtiene el gestor de ACL que se utiliza para todas las operaciones relacionadas con ACL. Identidad: la identidad por defecto para la operación relacionada. Si es nulo, entonces la función utiliza la identidad del emisor de llamada. |
NewResourceManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ResourceManager, error) |
Obtiene el gestor de recursos que se utiliza para todas las operaciones relacionadas con los recursos. Identidad: la identidad por defecto para la operación relacionada. Si es nulo, entonces la función utiliza la identidad del emisor de llamada. |
Funciones de la lista de control de acceso (ACL)
ACL
:type ACL struct {
Name string
Description string
Accesses []string // CREATE, READ, UPDATE, and DELETE, or whatever the end-user defined
Patterns []string // identities
Allowed bool // true means allows access.
BindACLs []string // The list of ACL , control who can call the APIs of this struct
}
- Accesos: la cadena Accesses es una lista de nombres de acceso arbitrarios separados por comas y depende completamente de la aplicación, excepto por cuatro: CREATE, READ, UPDATE y DELETE. Estos valores de acceso se utilizan para mantener el control de acceso detallado. Las aplicaciones pueden utilizar sus propias cadenas de acceso, como
"register"
,"invoke"
o"query"
, o incluso elementos como el acceso a nombres de campo, como"owner"
,"quantity"
, etc. - Permitido: permite determinar si las identidades que coinciden con un patrón tienen acceso permitido (verdadero) o acceso prohibido (falso). Puede tener una lista de control de acceso que indique que Bob tiene acceso a "
CREATE
" y otra que indique que el grupo Oracle (del que Bob es miembro) no puede acceder a"CREATE"
. El hecho de que Bob tenga o no acceso depende del orden de las listas de control de acceso que están asociadas a la entidad en cuestión. - BindACLs: el parámetro BindACLs forma la lista de control de acceso inicial.
Funciones de ACL:
Función | Descripción |
---|---|
Create(acl ACL, identity *x509.Certificate) (error) |
Crea una ACL. No se permiten ACL con nombre duplicadas. Para crear una ACL, la identidad debe tener acceso CREATE al recurso de inicialización de datos denominado ". ACL". Si la identidad es nula, se utiliza la identidad por defecto especificada en |
Get(aclName string, identity *x509.Certificate) (ACL, error) |
Obtiene una ACL con nombre. La identidad debe tener acceso READ a la ACL con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
Delete(aclName string, identity *x509.Certificate) (error) |
Suprime una ACL especificada. La identidad debe tener acceso DELETE a la ACL con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
Update(acl ACL, identity *x509.Certificate) (error) |
Actualiza una ACL. La identidad debe tener acceso UPDATE al recurso con nombre y la ACL con nombre debe existir. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
AddPattern(aclName string, pattern string, identity *x509.Certificate) (error) |
Agrega un nuevo patrón de identidad a la ACL con nombre. La identidad debe tener acceso UPDATE a la ACL con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
RemovePattern(aclName string, pattern string, identity *X509Certificate) (error) |
Elimina el patrón de identidad de la ACL. La identidad debe tener acceso UPDATE a la ACL con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
AddAccess(aclname string, access string, identity *X509Certificate) (error) |
Agrega un nuevo acceso a la ACL con nombre. La identidad debe tener acceso UPDATE a la ACL con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
RemoveAccess(aclName string, access string, identity *X509Certificate) (error) |
Elimina el acceso de la ACL. La identidad debe tener acceso UPDATE a la ACL con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
UpdateDescription(aclName string, newDescription string, identity *X509Certificate) (error) |
Actualiza la descripción. La identidad debe tener acceso UPDATE a la ACL con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
AddBeforeACL(aclName string, beforeName string, newBindACL string, identity *X509Certificate) (error) |
Agrega una ACL de enlace antes de la ACL con nombre existente. Si la ACL con nombre está vacía o no se encuentra, la ACL se agrega al principio de la lista de ACL de enlace. La identidad debe tener acceso UPDATE a la ACL con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
AddAfterACL(aclName string, afterName string, newBindACL string, identity *X509Certificate) (error) |
Agrega una ACL de enlace después de la ACL con nombre existente. Si la ACL con nombre está vacía o no se encuentra, la ACL se agrega al final de la lista de ACL de enlace. La identidad debe tener acceso UPDATE a la ACL con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
RemoveBindACL(aclName string, removeName string, identity *X509Certificate) (error) |
Elimina la ACL La identidad debe tener acceso UPDATE a la ACL con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
GetAll(identity *x509.Certificate) ([]ACL, error) |
Obtenga todas las ACL. La identidad debe tener acceso READ a la ACL con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
Funciones de Grupo
Group
:type Group struct {
Name string
Description string
Members []string // identity patterns, except GRP.
BindACLs []string // The list of ACLs, controls who can access this group.
}
Definición de funciones GroupManager
:
Función | Descripción |
---|---|
Create(group Group, identity *x509.Certificate) (error) |
Crea un grupo. La identidad debe tener acceso CREATE al grupo de inicialización de datos |
Get(groupName string, identity *x509.Certificate) (Group, error) |
Obtiene un grupo especificado. La identidad debe tener acceso READ a este grupo. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
Delete(groupName string, identity *x509.Certificate) (error) |
Suprime un grupo especificado. La identidad debe tener acceso DELETE a este grupo. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
AddMembers(groupName string, member []string, identity *x509.Certificate) (error) |
Agrega uno o más miembros al grupo. La identidad debe tener acceso UPDATE a este grupo. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
RemoveMembers(groupName string, member []string, identity *x509.Certificate) (error) |
Elimina uno o más miembros de un grupo. La identidad debe tener acceso UPDATE a este grupo. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
UpdateDescription(groupName string, newDes string, identity *x509.Certificate) (error) |
Actualiza la descripción. La identidad debe tener acceso UPDATE a este grupo. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
AddBeforeACL(groupName string, beforeName string, aclName string, identity *x509.Certificate) (error) |
Agrega una ACL de enlace al grupo antes de la ACL con nombre existente. Si la ACL con nombre está vacía o no se encuentra, la ACL se agrega al principio de la lista de ACL de enlace para el recurso. La identidad debe tener acceso UPDATE al grupo con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
AddAfterACL(groupName string, afterName string, aclName string, identity *x509.Certificate) (error) |
Agrega una ACL de enlace al grupo después de la ACL con nombre existente. Si la ACL con nombre está vacía o no se encuentra, la ACL se agrega al final de la lista de ACL de enlace para el grupo. La identidad debe tener acceso UPDATE al grupo con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
RemoveBindACL(groupName string, aclName string, identity *x509.Certificate) (error) |
Elimina la ACL con nombre de la lista de ACL de enlace del grupo con nombre. La identidad debe tener acceso UPDATE al grupo con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
GetAll(identity *x509.Certificate) ([]Group, error) |
Obtiene todos los grupos. La identidad debe tener acceso READ a estos grupos. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
Funciones de recurso
Resource
:type Resource struct {
Name string
Description string
BindACLs []string // The name list of ACL, controls who can access this resource
}
Funciones de recurso:
Subasta | Descripción |
---|---|
Create(resource Resource, identity *x509.Certificate) (error) |
Crea un recurso. No se permiten recursos con nombre duplicados. La identidad debe tener acceso CREATE al recurso de inicialización de datos |
Get(resName string, identity *x509.Certificate) (Resource, error) |
Obtiene un recurso especificado. La identidad debe tener acceso de lectura al recurso. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
Delete(resName string, identity *x509.Certificate) (error) |
Suprime un recurso con nombre. La identidad debe tener acceso DELETE al recurso con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
UpdateDescription(resourceName string, newDes string, identity *x509.Certificate) (error) |
Actualiza la descripción. La identidad debe tener acceso UPDATE a este recurso. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
AddBeforeACL(resourceName string, beforeName string, aclName string, identity *x509.Certificate) (error) |
Agrega una ACL de enlace al recurso antes de la ACL con nombre existente. Si la ACL con nombre está vacía o no se encuentra, la ACL se agrega al principio de la lista de ACL de enlace para el recurso. La identidad debe tener acceso UPDATE al recurso con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
AddAfterACL(resourceName string, afterName string, aclName string, identity *x509.Certificate) (error) |
Agrega una ACL de enlace al recurso después de la ACL con nombre existente. Si la ACL con nombre está vacía o no se encuentra, la ACL se agrega al final de la lista de ACL de enlace para el recurso. La identidad debe tener acceso UPDATE al recurso con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
RemoveBindACL(resourceName string, aclName string, identity *x509.Certificate) (error) |
Elimina la ACL con nombre de la lista de ACL de enlace del recurso con nombre. La identidad debe tener acceso UPDATE al recurso con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
CheckAccess(resName string, access string, identity *x509.Certificate) (bool, error) |
Comprueba si el usuario actual tiene el acceso especificado al recurso con nombre. Si la identidad es nula, se utiliza la identidad por defecto especificada en |
GetAll(identity *x509.Certificate) ([]Resource, error) |
Obtiene todos los recursos. La identidad debe tener acceso READ a estos recursos. Si la identidad es nula, se utiliza la identidad por defecto especificada en |