Funções da Biblioteca de Controle de Acesso Refinadas
O pacote de biblioteca oferece as seguintes funções para Recursos, Grupos e ACLs, assim como funções globais.
Funções Globais
Função | Descrição |
---|---|
Inicialização(identidade *x509. Certificado, stub shim.ChaincodeStubInterface) (erro) (erro) |
Quando o chaincode é instanciado, a função Initialization é chamada. Essa função inicializará o estado mundial com algumas listas de controle de acesso incorporadas. Essas listas incorporadas são usadas para inicializar o ambiente. Portanto, é necessário ter controle de acesso sobre quem pode criar recursos, grupos e ACLs. Se a identificação for nula, use a identificação do chamador. Depois que o bootstrap for concluído, as seguintes entidades serão criadas:
|
NewGroupManager(identidade *x509. Certificado, stub shim.ChaincodeStubInterface) (*GroupManager, erro) |
Obtenha o gerenciador de grupo usado para todas as operações relacionadas ao grupo. Identidade: a identidade padrão para a operação relacionada. Se for nulo, use a identidade do chamador. |
NewACLManager(identidade *x509. Certificado, stub shim.ChaincodeStubInterface) (*ACLManager, erro) |
Obtenha o gerenciador de ACL usado para todas as operações relacionadas à ACL. Identidade: a identidade padrão para a operação relacionada. Se for nulo, use a identidade do chamador. |
NewResourceManager(identidade *x509. Certificado, stub shim.ChaincodeStubInterface) (*ResourceManager, erro) |
Obtenha o gerenciador de recursos usado para todas as operações relacionadas ao recurso. Identidade: a identidade padrão para a operação relacionada. Se for nulo, use a identidade do chamador. |
Funções da Lista de Controle de Acesso (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
}
- Acessos: A string de Acessos é uma lista de nomes de acesso arbitrário separados por vírgulas e totalmente até o aplicativo, exceto por quatro: CREATE, READ, UPDATE e DELETE. Esses valores de acesso são usados para manter o controle de acesso refinado. Os aplicativos podem usar suas próprias strings de acesso, como
"register"
,"invoke"
ou"query"
, ou até mesmo coisas como acesso a nomes de campo, como"owner"
,"quantity"
etc. - Permitido: Permitido determina se as identidades que correspondem a um padrão têm acesso permitido (verdadeiro) ou acesso proibido (falso). Você pode ter uma lista de controle de acesso que indica que Bob tem acesso a "
CREATE
", e outra que indica que o grupo Oracle (do qual Bob é membro) é proibido de"CREATE"
. Se Bob tem ou não acesso depende da ordem das listas de controle de acesso associadas à entidade em questão. - BindACLs: O parâmetro BindACLs formará a lista de controle de acesso inicial.
Funções ACL:
Função | Descrição |
---|---|
Create(acl ACL, identidade *x509. Certificate (erro) |
Cria um novo ACL. A ACL nomeada duplicada não é permitida. Para criar uma nova ACL, a identidade precisa ter acesso CREATE ao recurso de bootstrap chamado ". ACLs". Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
Get(aclName string, identidade *x509. (ACL, erro) |
Obtenha uma ACL nomeada. A identidade deve ter acesso READ à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
Delete(aclName string, identidade *x509. Certificate (erro) |
Exclua uma ACL especificada. A identidade deve ter acesso DELETE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
Update(acl ACL, identidade *x509. Certificate (erro) |
Atualize uma ACL. A identidade deve ter acesso UPDATE ao recurso nomeado, e a ACL nomeada deve existir. Se a identidade for nula, a identidade padrão especificada em NewACLManager() será usada. |
AddPattern(string aclName, string de padrão, identidade *x509. Certificate (erro) |
Adiciona um novo padrão de identidade à ACL nomeada. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
RemovePattern(aclName string, string de padrão, identidade *X509Certificate) (erro) |
Remove o padrão de identidade da ACL. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
AddAccess(string aclname, string de acesso, identidade *X509Certificate) (erro) |
Adiciona um novo acesso à ACL nomeada. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
RemoveAccess(aclName string, string de acesso, identidade *X509Certificate) (erro) |
Remove o acesso da ACL. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
UpdateDescription(string aclName, string newDescription, identidade *X509Certificate) (erro) |
Atualize a descrição. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
AddBeforeACL(string aclName, string beforeName, string newBindACL, identidade *X509Certificate) (erro) |
Adiciona uma ACL de bind antes da ACL nomeada existente. Se a ACL nomeada estiver vazia ou não for encontrada, a ACL será adicionada ao início da lista de ACL de bind. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
AddAfterACL(string aclName, string afterName, string newBindACL, identidade *X509Certificate) (erro) |
Adiciona uma ACL de bind após a ACL nomeada existente. Se a ACL nomeada estiver vazia ou não for encontrada, a ACL será adicionada ao final da lista de ACLs de bind. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
RemoveBindACL(string aclName, string removeName, identidade *X509Certificate) (erro) |
Remove a ACL removeName da lista de ACL de bind. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
GetAll(identidade *x509. Certificado ([]ACL, erro) |
Obtenha todas as ACLs. A identidade deve ter acesso READ à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
Funções do 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.
}
Definição de funções GroupManager
:
Função | Descrição |
---|---|
Create(group Group, identity *x509. Certificate (erro) |
Criar um novo grupo. A identidade deve ter acesso CREATE ao grupo de bootstrap ". Grupo". Se a identidade for nula, a identidade padrão especificada em NewGroupManager() será usada. |
Get(groupName string, identidade *x509. (Grupo, erro) |
Obter um grupo especificado. A identidade deve ter acesso READ a este grupo. Se a identidade for nula, a identidade padrão especificada em NewGroupManager() será usada. |
Delete(groupName string, identidade *x509. Certificate (erro) |
Exclua um grupo especificado. A identidade deve ter acesso DELETE a este grupo. Se a identidade for nula, a identidade padrão especificada em NewGroupManager () será usada. |
AddMembers(string groupName, membro []string, identidade *x509. Certificate (erro) |
Adicione um ou mais membros ao grupo. A identidade deve ter acesso UPDATE a este grupo. Se a identidade for nula, a identidade padrão especificada em NewGroupManager () será usada. |
RemoveMembers(string groupName, membro []string, identidade *x509. Certificate (erro) |
Remova um ou mais membros de um grupo. A identidade deve ter acesso UPDATE a este grupo. Se a identidade for nula, a identidade padrão especificada em NewGroupManager () será usada. |
UpdateDescription(string groupName, string newDes, identidade *x509. Certificate (erro) |
Atualize a descrição. A identidade deve ter acesso UPDATE a este grupo. Se a identidade for nula, a identidade padrão especificada em NewGroupManager () será usada. |
AddBeforeACL(string groupName, string beforeName, string aclName, identidade *x509. Certificate (erro) |
Adiciona uma ACL de bind ao grupo antes da ACL nomeada existente. Se a ACL nomeada estiver vazia ou não for encontrada, a ACL será adicionada ao início da lista de ACL de bind para o recurso. A identidade deve ter acesso UPDATE ao grupo nomeado. Se a identidade for nula, a identidade padrão especificada em NewGroupManager () será usada. |
AddAfterACL(string groupName, string afterName, string aclName, identidade *x509. Certificate (erro) |
Adiciona uma ACL de bind ao grupo após a ACL nomeada existente. Se a ACL nomeada estiver vazia ou não for encontrada, a ACL será adicionada ao final da lista de ACL de bind para o grupo. A identidade deve ter acesso UPDATE ao grupo nomeado. Se a identidade for nula, a identidade padrão especificada em NewGroupManager () será usada. |
RemoveBindACL(string groupName, string aclName, identidade *x509. Certificate (erro) |
Remove a ACL nomeada da lista de ACLs de bind do grupo nomeado. A identidade deve ter acesso UPDATE ao grupo nomeado. Se a identidade for nula, a identidade padrão especificada em NewGroupManager () será usada. |
GetAll(identidade *x509. Certificado) ([] Grupo, erro) |
Obter todos os grupos. A identidade deve ter acesso READ a esses grupos. Se a identidade for nula, a identidade padrão especificada em NewGroupManager () será usada. |
Funções de Recursos
Resource
:type Resource struct {
Name string
Description string
BindACLs []string // The name list of ACL, controls who can access this resource
}
Funções de Recursos:
Fuga | Descrição |
---|---|
Create(resource Resource, identity *x509. Certificate (erro) |
Criar um novo recurso. Não são permitidos recursos nomeados duplicados. A identidade precisa ter acesso CREATE ao recurso bootstrap chamado ". Recursos" Se a identidade for nula, a identidade padrão especificada em NewResourceManager() será usada. |
Get(resName string, identidade *x509. (Recurso, erro) |
Obter um recurso especificado. A identidade deve ter acesso READ ao recurso. Se a identidade for nula, a identidade padrão especificada em NewResourceManager() será usada. |
Delete(resName string, identidade *x509. Certificate (erro) |
Exclua um recurso nomeado. A identidade deve ter acesso DELETE ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada em NewResourceManager() será usada. |
UpdateDescription(string resourceName, string newDes, identidade *x509. Certificate (erro) |
Atualize a descrição. A identidade deve ter acesso UPDATE a este recurso. Se a identidade for nula, a identidade padrão especificada em NewResourceManager() será usada. |
AddBeforeACL(string resourceName, string beforeName, string aclName, identidade *x509. Certificate (erro) |
Adiciona uma ACL de bind ao recurso antes da ACL nomeada existente. Se a ACL nomeada estiver vazia ou não for encontrada, a ACL será adicionada ao início da lista de ACL de bind para o recurso. A identidade deve ter acesso UPDATE ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada em NewResourceManager() será usada. |
AddAfterACL(string resourceName, string afterName, string aclName, identidade *x509. Certificate (erro) |
Adiciona uma ACL de bind ao recurso após a ACL nomeada existente. Se a ACL nomeada estiver vazia ou não for encontrada, a ACL será adicionada ao final da lista de ACL de bind para o recurso. A identidade deve ter acesso UPDATE ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada em NewResourceManager() será usada. |
RemoveBindACL(string resourceName, string aclName, identidade *x509. Certificate (erro) |
Remove a ACL nomeada da lista de ACLs de bind do recurso nomeado. A identidade deve ter acesso UPDATE ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada em NewResourceManager() será usada. |
CheckAccess(string resName, string de acesso, identidade *x509. Certificado (bool, erro) |
Verifique se o usuário atual tem o acesso especificado ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada em NewResourceManager() será usada. |
GetAll(identidade *x509. Certificado ([]Recurso, erro) |
Obtenha todos os recursos. A identidade deve ter acesso READ a esses recursos. Se a identidade for nula, a identidade padrão especificada em NewResourceManager() será usada. |