미세 조정된 액세스 제어 라이브러리 함수
라이브러리 패키지는 전역 함수뿐만 아니라 리소스, 그룹 및 ACL에 대해 다음 함수를 제공합니다.
전역 함수
함수 | 설명 |
---|---|
Initialization(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (error) (error) |
체인코드가 배포되면 부트스트랩 프로세스가 완료되면 다음 엔티티가 생성됩니다.
|
NewGroupManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*GroupManager, error) |
모든 그룹 관련 작업에 사용되는 그룹 관리자를 가져옵니다. ID: 관련 작업의 기본 ID입니다. nil인 경우 함수는 호출자의 ID를 사용합니다. |
NewACLManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ACLManager, error) |
모든 ACL 관련 작업에 사용되는 ACL 관리자를 가져옵니다. ID: 관련 작업의 기본 ID입니다. nil인 경우 함수는 호출자의 ID를 사용합니다. |
NewResourceManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ResourceManager, error) |
모든 자원 관련 공정에 사용되는 자원 관리자를 가져옵니다. ID: 관련 작업의 기본 ID입니다. nil인 경우 함수는 호출자의 ID를 사용합니다. |
액세스 제어 목록(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
}
- 액세스: 액세스 문자열은 쉼표로 구분된 임의 액세스 이름의 목록이며 CREATE, READ, UPDATE 및 DELETE를 제외한 응용 프로그램에 적용됩니다. 이러한 액세스 값은 Fine-Grained Access Control을 유지 관리하는 데 사용됩니다. 응용 프로그램은
"register"
,"invoke"
또는"query"
와 같은 고유한 액세스 문자열이나"owner"
,"quantity"
등과 같은 필드 이름에 대한 액세스 등도 사용할 수 있습니다. - 허용됨: 허용됨은 패턴과 일치하는 ID가 허용되는 액세스(true) 또는 금지된 액세스(false)인지 결정합니다. Bob이 "
CREATE
"에 액세스할 수 있음을 나타내는 액세스 제어 목록을 가질 수 있으며, Oracle 그룹(Bob이 구성원임)이"CREATE"
에서 금지되었음을 나타내는 다른 액세스 제어 목록을 가질 수 있습니다. Bob에게 액세스 권한이 있는지 여부는 해당 엔티티와 연관된 액세스 제어 목록의 순서에 따라 달라집니다. - BindACLs: BindACLs 매개변수는 초기 액세스 제어 목록을 구성합니다.
ACL 함수:
함수 | 설명 |
---|---|
Create(acl ACL, identity *x509.Certificate) (error) |
ACL을 만듭니다. 이름이 지정된 중복 ACL은 허용되지 않습니다. ACL을 만들려면 ID에 "라는 부트스트랩 리소스에 대한 CREATE 액세스 권한이 있어야 합니다. ACL입니다." ID가 nil인 경우 |
Get(aclName string, identity *x509.Certificate) (ACL, error) |
이름이 지정된 ACL을 가져옵니다. ID에는 이름이 지정된 ACL에 대한 READ 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
Delete(aclName string, identity *x509.Certificate) (error) |
지정된 ACL을 삭제합니다. ID는 이름이 지정된 ACL에 대한 DELETE 액세스 권한을 가져야 합니다. ID가 nil인 경우 |
Update(acl ACL, identity *x509.Certificate) (error) |
ACL을 업데이트합니다. ID에는 명명된 리소스에 대한 UPDATE 액세스 권한이 있어야 하며, 명명된 ACL이 있어야 합니다. ID가 nil인 경우 |
AddPattern(aclName string, pattern string, identity *x509.Certificate) (error) |
이름이 지정된 ACL에 새 ID 패턴을 추가합니다. ID에는 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
RemovePattern(aclName string, pattern string, identity *X509Certificate) (error) |
ACL에서 ID 패턴을 제거합니다. ID에는 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
AddAccess(aclname string, access string, identity *X509Certificate) (error) |
이름이 지정된 ACL에 새 액세스를 추가합니다. ID에는 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
RemoveAccess(aclName string, access string, identity *X509Certificate) (error) |
ACL에서 액세스를 제거합니다. ID에는 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
UpdateDescription(aclName string, newDescription string, identity *X509Certificate) (error) |
설명을 업데이트합니다. ID에 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
AddBeforeACL(aclName string, beforeName string, newBindACL string, identity *X509Certificate) (error) |
기존의 명명된 ACL 앞에 바인드 ACL을 추가합니다. 이름이 지정된 ACL이 비어 있거나 없는 경우 ACL이 바인드 ACL 목록의 시작 부분에 추가됩니다. ID에 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil이면 |
AddAfterACL(aclName string, afterName string, newBindACL string, identity *X509Certificate) (error) |
이름이 지정된 기존 ACL 뒤에 바인드 ACL을 추가합니다. 이름이 지정된 ACL이 비어 있거나 없는 경우 바인드 ACL 목록의 끝에 ACL이 추가됩니다. ID에 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil이면 |
RemoveBindACL(aclName string, removeName string, identity *X509Certificate) (error) |
바인드 ACL 목록에서 ID에 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil이면 |
GetAll(identity *x509.Certificate) ([]ACL, error) |
모든 ACL을 가져옵니다. ID에는 이름이 지정된 ACL에 대한 READ 액세스 권한이 있어야 합니다. ID가 nil이면 |
그룹 기능
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.
}
GroupManager
함수의 정의:
함수 | 설명 |
---|---|
Create(group Group, identity *x509.Certificate) (error) |
그룹을 생성합니다. ID에 부트스트랩 그룹 |
Get(groupName string, identity *x509.Certificate) (Group, error) |
지정된 그룹을 가져옵니다. ID에 이 그룹에 대한 READ 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
Delete(groupName string, identity *x509.Certificate) (error) |
지정된 그룹을 삭제합니다. ID에 이 그룹에 대한 DELETE 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
AddMembers(groupName string, member []string, identity *x509.Certificate) (error) |
그룹에 멤버를 하나 이상 추가합니다. ID에 이 그룹에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
RemoveMembers(groupName string, member []string, identity *x509.Certificate) (error) |
그룹에서 하나 이상의 멤버를 제거합니다. ID에 이 그룹에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
UpdateDescription(groupName string, newDes string, identity *x509.Certificate) (error) |
설명을 업데이트합니다. ID에 이 그룹에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
AddBeforeACL(groupName string, beforeName string, aclName string, identity *x509.Certificate) (error) |
기존의 이름이 지정된 ACL 앞에 바인드 ACL을 그룹에 추가합니다. 명명된 ACL이 비어 있거나 없는 경우 리소스에 대한 바인드 ACL 목록의 시작 부분에 ACL이 추가됩니다. ID에 이름이 지정된 그룹에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
AddAfterACL(groupName string, afterName string, aclName string, identity *x509.Certificate) (error) |
기존의 이름이 지정된 ACL 뒤에 바인드 ACL을 그룹에 추가합니다. 명명된 ACL이 비어 있거나 없는 경우 그룹에 대한 바인드 ACL 목록의 끝에 ACL이 추가됩니다. ID에 이름이 지정된 그룹에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil이면 |
RemoveBindACL(groupName string, aclName string, identity *x509.Certificate) (error) |
명명된 그룹의 바인드 ACL 목록에서 명명된 ACL을 제거합니다. ID에 이름이 지정된 그룹에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil이면 |
GetAll(identity *x509.Certificate) ([]Group, error) |
모든 그룹을 가져옵니다. ID에는 이러한 그룹에 대한 READ 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
자원 기능
Resource
구조의 정의:type Resource struct {
Name string
Description string
BindACLs []string // The name list of ACL, controls who can access this resource
}
리소스 함수:
경매 | 설명 |
---|---|
Create(resource Resource, identity *x509.Certificate) (error) |
리소스를 생성합니다. 중복된 이름이 지정된 리소스는 허용되지 않습니다. ID에 |
Get(resName string, identity *x509.Certificate) (Resource, error) |
지정된 리소스를 가져옵니다. ID에 리소스에 대한 READ 액세스 권한이 있어야 합니다. ID가 널인 경우 |
Delete(resName string, identity *x509.Certificate) (error) |
명명된 리소스를 삭제합니다. ID에 이름이 지정된 리소스에 대한 DELETE 액세스 권한이 있어야 합니다. ID가 널인 경우 |
UpdateDescription(resourceName string, newDes string, identity *x509.Certificate) (error) |
설명을 업데이트합니다. ID에 이 리소스에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
AddBeforeACL(resourceName string, beforeName string, aclName string, identity *x509.Certificate) (error) |
기존의 이름이 지정된 ACL 앞에 리소스에 바인드 ACL을 추가합니다. 이름이 지정된 ACL이 비어 있거나 없는 경우 리소스에 대한 바인드 ACL 목록의 시작 부분에 ACL이 추가됩니다. ID에 이름이 지정된 리소스에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 |
AddAfterACL(resourceName string, afterName string, aclName string, identity *x509.Certificate) (error) |
기존의 이름이 지정된 ACL 뒤에 리소스에 바인드 ACL을 추가합니다. 이름이 지정된 ACL이 비어 있거나 없는 경우 리소스에 대한 바인드 ACL 목록의 끝에 ACL이 추가됩니다. ID에 이름이 지정된 리소스에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil이면 |
RemoveBindACL(resourceName string, aclName string, identity *x509.Certificate) (error) |
명명된 리소스의 바인드 ACL 목록에서 명명된 ACL을 제거합니다. ID에 이름이 지정된 리소스에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil이면 |
CheckAccess(resName string, access string, identity *x509.Certificate) (bool, error) |
현재 사용자에게 지정된 이름이 지정된 리소스에 대한 액세스 권한이 있는지 여부를 확인합니다. ID가 nil이면 |
GetAll(identity *x509.Certificate) ([]Resource, error) |
모든 리소스를 가져옵니다. ID에는 이러한 리소스에 대한 READ 액세스 권한이 있어야 합니다. ID가 nil인 경우 |