Funções de Biblioteca de Controle de Acesso Detalhado

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
Inicialização(identidade *x509. Certificado, canhoto 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 é feito, as seguintes entidades são criadas:

  • Um recurso chamado ". Recursos". Uma ACL correspondente chamada ". 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 chamado ". Grupos". Uma ACL correspondente chamada ". 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 de ACL correspondente chamada ". 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, esboço shim.ChaincodeStubInterface) (*GroupManager, erro)

Obtenha o gerente de grupo que é 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, esboço shim.ChaincodeStubInterface) (*ACLManager, erro)

Obtenha 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, use a identidade do chamador.

NewResourceManager(identidade *x509. Certificado, esboço shim.ChaincodeStubInterface) (*ResourceManager, erro)

Obtenha 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, 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 Acessos é uma lista de nomes de acesso arbitrário separados por vírgulas e completamente até o aplicativo, exceto para 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" 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 formará a lista de controle de acesso inicial.

Funções ACL:

Função Descrição
Criar(ACL ACL, identidade *x509. Certificado) (erro)

Cria uma nova ACL. Não são permitidas ACLs nomeadas duplicadas.

Para criar uma nova ACL, a identidade precisa ter acesso CREATE ao recurso bootstrap chamado ". ACLs". Se identity for nil, 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 identity for nil, a identidade padrão especificada em newACLManager() será usada.

Delete(string aclName, identidade *x509. Certificado) (erro)

Exclua uma ACL especificada.

A identidade deve ter acesso DELETE à ACL nomeada. Se identity for nil, a identidade padrão especificada em newACLManager() será usada.

Atualizar(ACL ACL, identidade *x509. Certificado) (erro)

Atualizar uma ACL.

A identidade deve ter acesso UPDATE ao recurso nomeado, e a ACL nomeada deve existir. Se identity for nil, a identidade padrão especificada em NewACLManager() será usada.

AddPattern(stringaclName, 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 identity for nil, a identidade padrão especificada em newACLManager() será usada.

RemovePattern(stringaclName, string de padrão, identidade *X509Certificate) (erro)

Remove o padrão de identidade da ACL. A identidade deve ter acesso UPDATE à ACL nomeada.

Se identity for nil, a identidade padrão especificada em newACLManager() será usada.

AddAccess(string nomeacl, string de acesso, identidade *X509Certificate) (erro)

Adiciona um novo acesso à ACL nomeada. A identidade deve ter acesso UPDATE à ACL nomeada.

Se identity for nil, a identidade padrão especificada em newACLManager() será usada.

RemoveAccess(stringaclName, string de acesso, identidade *X509Certificate) (erro)

Remove o acesso da ACL. A identidade deve ter acesso UPDATE à ACL nomeada.

Se identity for nil, a identidade padrão especificada em newACLManager() será usada.

UpdateDescription(stringaclName, string newDescription, identidade *X509Certificate) (erro)

Atualize a descrição.

A identidade deve ter acesso UPDATE à ACL nomeada. Se identity for nil, a identidade padrão especificada em newACLManager() será usada.

AddBeforeACL(stringaclName, 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 ACL de vinculação.

A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada.

AddAfterACL(stringaclName, 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 fim da lista ACL de vinculação.

A identidade deve ter acesso UPDATE à ACL nomeada. Se a identidade for nula, a identidade padrão especificada em newACLManager() será usada.

RemoveBindACL(stringaclName, string removeName, identidade *X509Certificate) (erro)

Remove a ACL removeName da lista 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)

Obter 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 das funções GroupManager:

Função Descrição
Criar(grupo, identidade *x509. Certificado) (erro)

Criar um novo grupo.

A identidade deve ter acesso CREATE ao grupo de bootstrap ". Grupo". Se identity for nil, a identidade padrão especificada em NewGroupManager() será usada.

String get(groupName, identidade *x509. Certificado) (Grupo, erro)

Obter um grupo especificado.

A identidade deve ter acesso READ a este grupo. Se identity for nil, a identidade padrão especificada em NewGroupManager() será usada.

Delete(string groupName, 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 no NewGroupManager () será usada.

AddMembers(stringgroupName, string de membro []string, identidade *x509. Certificado) (erro)

Adicione 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 no NewGroupManager () será usada.

RemoveMembers(stringgroupName, string de membro []string, identidade *x509. Certificado) (erro)

Remover 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 no NewGroupManager () será usada.

UpdateDescription(stringgroupName, string newDes, identidade *x509. Certificado) (erro)

Atualize a descrição.

A identidade deve ter acesso de ATUALIZAÇÃO a este grupo. Se a identidade for nula, a identidade padrão especificada no NewGroupManager () será usada.

AddBeforeACL(stringgroupName, string beforeName, string aclName, identidade *x509. Certificado) (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 de ATUALIZAÇÃO ao grupo nomeado. Se a identidade for nula, a identidade padrão especificada no NewGroupManager () será usada.

AddAfterACL(stringgroupName, 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 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 NewGroupManager () será usada.

RemoveBindACL(stringgroupName, string aclName, identidade *x509. Certificado) (erro)

Remove a ACL nomeada da lista ACL de bind 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 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 no NewGroupManager () será usada.

Funções de Recurso

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 Recurso:

Fuction Descrição
Criar(recurso do recurso, identidade *x509. Certificado) (erro)

Criar um novo recurso. Recursos nomeados duplicados não são permitidos.

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.

String get(resName, identidade *x509. Certificado) (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(string resName, identidade *x509. Certificado) (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(stringresourceName, string newDes, identidade *x509. Certificado) (erro)

Atualize a descrição.

A identidade deve ter acesso de ATUALIZAÇÃO a este recurso. Se identity for nil, a identidade padrão especificada em NewResourceManager() será usada.

AddBeforeACL(stringresourceName, 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 para o recurso.

A identidade deve ter acesso de ATUALIZAÇÃO ao recurso nomeado. Se identity for nil, a identidade padrão especificada em NewResourceManager() será usada.

AddAfterACL(stringresourceName, 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 para o recurso.

A identidade deve ter acesso de ATUALIZAÇÃO ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada em NewResourceManager() será usada.

RemoveBindACL(stringresourceName, string aclName, identidade *x509. Certificado) (erro)

Remove a ACL nomeada da lista ACL de bind do recurso nomeado.

A identidade deve ter acesso de ATUALIZAÇÃO ao recurso nomeado. Se a identidade for nula, a identidade padrão especificada em NewResourceManager() será usada.

CheckAccess(stringresName, 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)

Obter todos os recursos.

A identidade deve ter acesso de LEITURA a esses recursos. Se identity for nil, a identidade padrão especificada em NewResourceManager() será usada.