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:
|
| 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)
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
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
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. |