Funções da Biblioteca de Controle de Acesso Refinadas
O pacote de biblioteca oferece as seguintes funções para Recursos, Grupos e ACLs, bem 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 do mundo com algumas listas de controle de acesso incorporadas. Essas listas incorporadas são usadas para inicializar o ambiente. Portanto, é necessário haver 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 é feito, as seguintes entidades são criadas:
|
NewGroupManager(identidade *x509. Certificado, stub shim.ChaincodeStubInterface) (*GroupManager, erro) |
Obtenha o gerente de grupo que é usado para todas as operações relacionadas ao grupo. Identidade: a identidade padrão da 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 que é usado para todas as operações relacionadas à ACL. Identidade: a identidade padrão da 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 que é usado para todas as operações relacionadas ao recurso. Identidade: a identidade padrão da operação relacionada. Se for nulo, use 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ários separados por vírgulas e completamente 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 mesmo coisas como acesso a nomes de campo, como"owner"
,"quantity"
etc. - Permitido: Permitido determina se as identidades que correspondem a um padrão são de 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 acesso ou não 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. Certificado) (erro) |
Cria um novo ACL. ACL nomeada duplicada não é permitida. Para criar uma nova ACL, a identidade precisa ter acesso CREATE ao recurso de bootstrap com o nome ". ACLs". Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
String Get(aclName, identidade *x509. Certificado) (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. Certificado) (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. Certificado) (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(aclName string, string de padrão, identidade *x509. Certificado) (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(string aclName, 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(aclName string, 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(aclName string, 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 ACLs de conexão. A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada. |
AddAfterACL(aclName string, 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(aclName string, string removeName, identidade *X509Certificate) (erro) |
Remove a ACL removeName da lista de ACL de conexão. 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. Certificado) (erro) |
Criar um novo grupo. A identidade deve ter acesso CREATE ao grupo bootstrap ". Grupo". Se a identidade for nula, a identidade padrão especificada em NewGroupManager() será usada. |
String Get(groupName, identidade *x509. Certificado) (Grupo, erro) |
Obtenha 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. Certificado) (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(groupName string, membro []string, identidade *x509. Certificado) (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(groupName string, membro []string, identidade *x509. Certificado) (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. Certificado) (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. Certificado) (erro) |
Adiciona uma ACL de conexão 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 do 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. Certificado) (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 do 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. Certificado) (erro) |
Remove a ACL nomeada da lista de ACLs de conexão 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:
Fusão | Descrição |
---|---|
Create(resource Resource, identity *x509). Certificado) (erro) |
Criar um novo recurso. Não são permitidos recursos nomeados duplicados. A identidade precisa ter acesso CREATE ao recurso de bootstrap nomeado ". Recursos" Se a identidade for nula, a identidade padrão especificada em NewResourceManager() será usada. |
String Get(resName, identidade *x509. Certificado) (Recurso, erro) |
Obtenha 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. Certificado) (erro) |
Excluir 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. Certificado) (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. Certificado) (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 do 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. Certificado) (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 do 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. Certificado) (erro) |
Remove a ACL nomeada da lista de ACLs de ligação 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. |