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:

  • Um recurso denominado ". Recursos". Uma ACL correspondente denominada ". Resources.ACL" será criado com um único padrão de identidade no formato "%CN%bob.smith@oracle.com", usando o nome comum real, e o acesso será CREATE, READ, UPDATE e DELETE.
  • Um grupo denominado ". Grupos". Uma ACL correspondente denominada ". Groups.ACL" será criado com um único padrão de identidade no formato "%CN%bob.smith@oracle.com", usando o nome comum real, e o acesso será CREATE, READ, UPDATE e DELETE.
  • Uma ACL denominada ". ACLs". Uma lista de controle ACL correspondente denominada ". ACLs.ACL" será criado com um único padrão de identidade no formato "%CN%bob.smith@oracle.com", usando o nome comum real, e o acesso será CREATE, READ, UPDATE e DELETE.
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)

Definição da estrutura 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

Definição da estrutura 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

Definição da estrutura 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.