Funções da Biblioteca de Controle de Acesso Refinadas
O pacote de bibliotecas fornece as seguintes funções para recursos, grupos e ACLs, bem como funções globais.
Funções Globais
Função | Descrição |
---|---|
Initialization(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (error) (error) |
Quando o chaincode é implantado, a função Depois que o processo de bootstrap é concluído, as seguintes entidades são criadas:
|
NewGroupManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*GroupManager, error) |
Obtém o gerente do grupo que é usado para todas as operações relacionadas ao grupo. Identidade: a identidade padrão para a operação relacionada. Se for nulo, então a função usa a identidade do chamador. |
NewACLManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ACLManager, error) |
Obtém o gerenciador de ACL que é usado para todas as operações relacionadas à ACL. Identidade: a identidade padrão para a operação relacionada. Se for nulo, então a função usa a identidade do chamador. |
NewResourceManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ResourceManager, error) |
Obtém o gerenciador de recursos que é usado para todas as operações relacionadas ao recurso. Identidade: a identidade padrão para a operação relacionada. Se for nulo, então a função usa a identidade do chamador. |
Funções da Lista de Controle de Acesso (ACL, Access Control List)
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 Acessos é uma lista de nomes de acesso arbitrário separados por vírgulas e é totalmente compatível com o aplicativo, exceto para quatro: CREATE, READ, UPDATE e DELETE. Esses valores de acesso são usados para manter o controle de acesso detalhado. 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"
e assim por diante. - 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 indique que Bob tem acesso a "
CREATE
" e outra que indique que o grupo Oracle (do qual Bob é membro) está 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 forma a lista de controle de acesso inicial.
Funções ACL:
Função | Descrição |
---|---|
Create(acl ACL, identity *x509.Certificate) (error) |
Cria uma ACL. Não são permitidas ACLs nomeadas duplicadas. Para criar uma ACL, a identidade deve ter acesso CREATE ao recurso de bootstrap chamado ". ACLs". Se a identidade for nula, a identidade padrão especificada em |
Get(aclName string, identity *x509.Certificate) (ACL, error) |
Obtém uma ACL nomeada. A identidade deve ter acesso READ à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em |
Delete(aclName string, identity *x509.Certificate) (error) |
Exclui uma ACL especificada. A identidade deve ter acesso DELETE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em |
Update(acl ACL, identity *x509.Certificate) (error) |
Atualiza 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 |
AddPattern(aclName string, pattern string, identity *x509.Certificate) (error) |
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 |
RemovePattern(aclName string, pattern string, identity *X509Certificate) (error) |
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 |
AddAccess(aclname string, access string, identity *X509Certificate) (error) |
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 |
RemoveAccess(aclName string, access string, identity *X509Certificate) (error) |
Remove o acesso da ACL. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em |
UpdateDescription(aclName string, newDescription string, identity *X509Certificate) (error) |
Atualiza a descrição. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em |
AddBeforeACL(aclName string, beforeName string, newBindACL string, identity *X509Certificate) (error) |
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 ACLs de conexão. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada no |
AddAfterACL(aclName string, afterName string, newBindACL string, identity *X509Certificate) (error) |
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 no |
RemoveBindACL(aclName string, removeName string, identity *X509Certificate) (error) |
Remove a ACL A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada no |
GetAll(identity *x509.Certificate) ([]ACL, error) |
Obtenha todas as ACLs. A identidade deve ter acesso READ à ACL nomeada. Se a identidade for nula, a identidade padrão especificada no |
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) (error) |
Cria um grupo. A identidade deve ter acesso CREATE ao grupo de bootstrap |
Get(groupName string, identity *x509.Certificate) (Group, error) |
Obtém um grupo especificado. A identidade deve ter acesso READ a este grupo. Se a identidade for nula, a identidade padrão especificada em |
Delete(groupName string, identity *x509.Certificate) (error) |
Exclui um grupo especificado. A identidade deve ter acesso DELETE a este grupo. Se a identidade for nula, a identidade padrão especificada em |
AddMembers(groupName string, member []string, identity *x509.Certificate) (error) |
Adiciona um ou mais membros ao grupo. A identidade deve ter acesso de ATUALIZAÇÃO a este grupo. Se a identidade for nula, a identidade padrão especificada em |
RemoveMembers(groupName string, member []string, identity *x509.Certificate) (error) |
Remove um ou mais membros de um grupo. A identidade deve ter acesso de ATUALIZAÇÃO a este grupo. Se a identidade for nula, a identidade padrão especificada em |
UpdateDescription(groupName string, newDes string, identity *x509.Certificate) (error) |
Atualiza a descrição. A identidade deve ter acesso de ATUALIZAÇÃO a este grupo. Se a identidade for nula, a identidade padrão especificada em |
AddBeforeACL(groupName string, beforeName string, aclName string, identity *x509.Certificate) (error) |
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 de ATUALIZAÇÃO ao grupo nomeado. Se a identidade for nula, a identidade padrão especificada em |
AddAfterACL(groupName string, afterName string, aclName string, identity *x509.Certificate) (error) |
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 ACLs de bind para o grupo. A identidade deve ter acesso de ATUALIZAÇÃO ao grupo nomeado. Se a identidade for nula, a identidade padrão especificada no |
RemoveBindACL(groupName string, aclName string, identity *x509.Certificate) (error) |
Remove a ACL nomeada da lista de ACLs de conexão do grupo nomeado. A identidade deve ter acesso de ATUALIZAÇÃO ao grupo nomeado. Se a identidade for nula, a identidade padrão especificada no |
GetAll(identity *x509.Certificate) ([]Group, error) |
Obtém todos os grupos. A identidade deve ter acesso READ a esses grupos. Se a identidade for nula, a identidade padrão especificada em |
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:
Fusão | Descrição |
---|---|
Create(resource Resource, identity *x509.Certificate) (error) |
Cria um recurso. Recursos nomeados duplicados não são permitidos. A identidade deve ter acesso CREATE ao recurso de bootstrap |
Get(resName string, identity *x509.Certificate) (Resource, error) |
Obtém um recurso especificado. A identidade deve ter acesso READ ao recurso. Se a identidade for nula, a identidade padrão especificada no |
Delete(resName string, identity *x509.Certificate) (error) |
Exclui um recurso nomeado. A identidade deve ter acesso DELETE ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada no |
UpdateDescription(resourceName string, newDes string, identity *x509.Certificate) (error) |
Atualiza a descrição. A identidade deve ter acesso de ATUALIZAÇÃO a este recurso. Se a identidade for nula, a identidade padrão especificada em |
AddBeforeACL(resourceName string, beforeName string, aclName string, identity *x509.Certificate) (error) |
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 do recurso. A identidade deve ter acesso de ATUALIZAÇÃO ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada em |
AddAfterACL(resourceName string, afterName string, aclName string, identity *x509.Certificate) (error) |
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 do recurso. A identidade deve ter acesso de ATUALIZAÇÃO ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada no |
RemoveBindACL(resourceName string, aclName string, identity *x509.Certificate) (error) |
Remove a ACL nomeada da lista de ACLs de ligação do recurso nomeado. A identidade deve ter acesso de ATUALIZAÇÃO ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada no |
CheckAccess(resName string, access string, identity *x509.Certificate) (bool, error) |
Verifica se o usuário atual tem o acesso especificado ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada no |
GetAll(identity *x509.Certificate) ([]Resource, error) |
Obtém todos os recursos. A identidade deve ter acesso de LEITURA a esses recursos. Se a identidade for nula, a identidade padrão especificada em |