미세 조정된 액세스 제어 라이브러리 함수

라이브러리 패키지는 전역 함수뿐만 아니라 리소스, 그룹 및 ACL에 대해 다음 기능을 제공합니다.

전역 함수

함수 설명
초기화(ID *x509). 인증서, 스텁 shim.ChaincodeStubInterface)(오류)(오류)

체인코드가 인스턴스화되면 초기화 함수가 호출됩니다. 이 함수는 일부 내장된 액세스 제어 목록으로 표준 상태를 초기화합니다. 이러한 기본 제공 목록은 환경을 부트스트랩하는 데 사용됩니다. 따라서 리소스, 그룹 및 ACL을 만들 수 있는 사용자에 대한 액세스 제어가 있어야 합니다. 식별이 nil이면 호출자의 식별을 사용합니다.

부트스트랩이 완료되면 다음 엔티티가 생성됩니다.

  • 이름이 "인 리소스입니다. 리소스". "라는 이름의 해당 ACL Resources.ACL"은(는) 실제 공통 이름을 사용하여 "%CN%bob.smith@oracle.com" 형식의 단일 ID 패턴으로 생성되며 액세스는 CREATE, READ, UPDATE 및 DELETE 액세스입니다.
  • 이름이 "인 그룹입니다. 그룹". "라는 이름의 해당 ACL Groups.ACL"은(는) 실제 공통 이름을 사용하여 "%CN%bob.smith@oracle.com" 형식의 단일 ID 패턴으로 생성되며 액세스는 CREATE, READ, UPDATE 및 DELETE 액세스입니다.
  • 이름이 "인 ACL입니다. ACL" "라는 해당 ACL 제어 목록입니다. ACLs.ACL"은(는) 실제 공통 이름을 사용하여 "%CN%bob.smith@oracle.com" 형식의 단일 ID 패턴으로 생성되며 액세스는 CREATE, READ, UPDATE 및 DELETE 액세스입니다.
NewGroupManager(ID *x509) 인증서, 스텁 shim.ChaincodeStubInterface) (*GroupManager, 오류)

모든 그룹 관련 작업에 사용되는 그룹 관리자를 가져옵니다.

ID: 관련 작업의 기본 ID입니다. nil인 경우 호출자의 ID를 사용합니다.

NewACLManager(ID *x509) 인증서, 스텁 shim.ChaincodeStubInterface) (*ACLManager, 오류)

모든 ACL 관련 작업에 사용되는 ACL 관리자를 가져옵니다.

ID: 관련 작업의 기본 ID입니다. nil인 경우 호출자의 ID를 사용합니다.

NewResourceManager(ID *x509) 인증서, 스텁 shim.ChaincodeStubInterface) (*ResourceManager, 오류)

모든 자원 관련 작업에 사용되는 자원 관리자를 가져옵니다.

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를 제외한 모든 응용 프로그램까지 나열됩니다. 이러한 액세스 값은 미세 조정된 액세스 제어를 유지 관리하는 데 사용됩니다. 응용 프로그램은 "register", "invoke", "query" 등의 고유 액세스 문자열이나 "owner", "quantity" 등의 필드 이름에 대한 액세스와 같은 액세스 문자열을 사용할 수 있습니다.
  • 허용됨: 허용됨은 패턴과 일치하는 ID가 허용되는 액세스(true)인지 아니면 금지된 액세스(false)인지를 결정합니다. Bob이 "CREATE"에 액세스할 수 있음을 나타내는 액세스 제어 목록과 Oracle 그룹(Bob이 멤버임)을 나타내는 다른 목록이 "CREATE"에서 금지될 수 있습니다. Bob에게 액세스 권한이 있는지 여부는 해당 엔티티와 연관된 액세스 제어 목록의 순서에 따라 달라집니다.
  • BindACLs: BindACLs 매개변수는 초기 액세스 제어 목록을 구성합니다.

ACL 함수:

함수 설명
생성(ACL ACL, ID *x509) 인증서(오류)

새 ACL을 생성합니다. 중복된 이름이 지정된 ACL은 허용되지 않습니다.

새 ACL을 생성하려면 ID에 이름이 "인 부트스트랩 리소스에 대한 CREATE 액세스 권한이 있어야 합니다. ACL" ID가 nil인 경우 newACLManager()에 지정된 기본 ID가 사용됩니다.

Get(aclName 문자열, ID *x509)입니다. 인증서)(ACL, 오류

명명된 ACL을 가져옵니다.

ID에는 이름이 지정된 ACL에 대한 READ 액세스 권한이 있어야 합니다. ID가 nil인 경우 newACLManager()에 지정된 기본 ID가 사용됩니다.

Delete(aclName 문자열, ID *x509). 인증서(오류)

지정된 ACL을 삭제합니다.

ID에는 이름이 지정된 ACL에 대한 DELETE 액세스 권한이 있어야 합니다. ID가 nil인 경우 newACLManager()에 지정된 기본 ID가 사용됩니다.

업데이트(ACL ACL, ID *x509) 인증서(오류)

ACL을 업데이트합니다.

ID에는 이름이 지정된 리소스에 대한 UPDATE 액세스 권한이 있어야 하며 이름이 지정된 ACL이 존재해야 합니다. ID가 nil인 경우 NewACLManager()에 지정된 기본 ID가 사용됩니다.

AddPattern(aclName 문자열, 패턴 문자열, ID *x509) 인증서(오류)

이름이 지정된 ACL에 새 ID 패턴을 추가합니다. ID에는 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다.

ID가 nil인 경우 newACLManager()에 지정된 기본 ID가 사용됩니다.

RemovePattern(aclName 문자열, 패턴 문자열, ID *X509Certificate)(오류)

ACL에서 ID 패턴을 제거합니다. ID에는 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다.

ID가 nil인 경우 newACLManager()에 지정된 기본 ID가 사용됩니다.

AddAccess(aclname string, access string, identity *X509Certificate)(오류)

명명된 ACL에 새 액세스를 추가합니다. ID에는 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다.

ID가 nil인 경우 newACLManager()에 지정된 기본 ID가 사용됩니다.

RemoveAccess(aclName string, access string, identity *X509Certificate)(오류)

ACL에서 액세스를 제거합니다. ID에는 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다.

ID가 nil인 경우 newACLManager()에 지정된 기본 ID가 사용됩니다.

UpdateDescription(aclName 문자열, newDescription 문자열, ID *X509Certificate)(오류)

설명을 업데이트합니다.

ID에는 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 newACLManager()에 지정된 기본 ID가 사용됩니다.

AddBeforeACL(aclName 문자열, beforeName 문자열, newBindACL 문자열, ID *X509Certificate)(오류)

기존의 명명된 ACL 앞에 바인드 ACL을 추가합니다. 명명된 ACL이 비어 있거나 없는 경우 바인드 ACL 목록의 시작 부분에 ACL이 추가됩니다.

ID에는 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 newACLManager()에 지정된 기본 ID가 사용됩니다.

AddAfterACL(aclName 문자열, afterName 문자열, newBindACL 문자열, ID *X509Certificate)(오류)

기존의 명명된 ACL 뒤에 바인드 ACL을 추가합니다. 이름이 지정된 ACL이 비어 있거나 없는 경우 바인드 ACL 목록의 끝에 ACL이 추가됩니다.

ID에는 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 newACLManager()에 지정된 기본 ID가 사용됩니다.

RemoveBindACL(aclName 문자열, removeName 문자열, ID *X509Certificate)(오류)

바인드 ACL 목록에서 removeName ACL을 제거합니다.

ID에는 이름이 지정된 ACL에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 newACLManager()에 지정된 기본 ID가 사용됩니다.

GetAll(ID *x509) 인증서)([]ACL, 오류

모든 ACL을 가져옵니다.

ID에는 이름이 지정된 ACL에 대한 READ 액세스 권한이 있어야 합니다. ID가 nil인 경우 newACLManager()에 지정된 기본 ID가 사용됩니다.

그룹 기능

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(그룹 그룹, ID *x509) 인증서(오류)

새 그룹을 생성합니다.

ID에는 부트스트랩 그룹 "에 대한 CREATE 액세스 권한이 있어야 합니다. 그룹". ID가 nil인 경우 NewGroupManager()에 지정된 기본 ID가 사용됩니다.

Get(groupName 문자열, ID *x509)입니다. 인증서)(그룹, 오류

지정된 그룹을 가져옵니다.

ID에는 이 그룹에 대한 읽기 권한이 있어야 합니다. ID가 nil인 경우 NewGroupManager()에 지정된 기본 ID가 사용됩니다.

Delete(groupName 문자열, ID *x509). 인증서(오류)

지정된 그룹을 삭제합니다.

ID에는 이 그룹에 대한 DELETE 액세스 권한이 있어야 합니다. ID가 nil인 경우 NewGroupManager()에 지정된 기본 ID가 사용됩니다.

AddMembers(groupName 문자열, 멤버 []문자열, ID *x509). 인증서(오류)

그룹에 멤버를 하나 이상 추가합니다.

ID는 이 그룹에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 NewGroupManager()에 지정된 기본 ID가 사용됩니다.

RemoveMembers(groupName 문자열, 멤버 []문자열, ID *x509). 인증서(오류)

그룹에서 하나 이상의 멤버를 제거합니다.

ID는 이 그룹에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 NewGroupManager()에 지정된 기본 ID가 사용됩니다.

UpdateDescription(groupName 문자열, newDes 문자열, ID *x509) 인증서(오류)

설명을 업데이트합니다.

ID는 이 그룹에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 NewGroupManager()에 지정된 기본 ID가 사용됩니다.

AddBeforeACL(groupName 문자열, beforeName 문자열, aclName 문자열, ID *x509) 인증서(오류)

기존의 명명된 ACL 앞에 바인드 ACL을 그룹에 추가합니다. 명명된 ACL이 비어 있거나 없는 경우 리소스에 대한 바인드 ACL 목록의 시작 부분에 ACL이 추가됩니다.

ID에는 이름이 지정된 그룹에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 NewGroupManager()에 지정된 기본 ID가 사용됩니다.

AddAfterACL(groupName 문자열, afterName 문자열, aclName 문자열, ID *x509) 인증서(오류)

기존의 명명된 ACL 뒤에 바인드 ACL을 그룹에 추가합니다. 명명된 ACL이 비어 있거나 없는 경우 그룹에 대한 바인드 ACL 목록의 끝에 ACL이 추가됩니다.

ID에는 이름이 지정된 그룹에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 NewGroupManager()에 지정된 기본 ID가 사용됩니다.

RemoveBindACL(groupName 문자열, aclName 문자열, ID *x509) 인증서(오류)

명명된 그룹의 바인드 ACL 목록에서 명명된 ACL을 제거합니다.

ID에는 이름이 지정된 그룹에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 NewGroupManager()에 지정된 기본 ID가 사용됩니다.

GetAll(ID *x509) 인증서)([]그룹, 오류

모든 그룹 가져오기.

ID에는 이러한 그룹에 대한 READ 액세스 권한이 있어야 합니다. ID가 nil인 경우 NewGroupManager()에 지정된 기본 ID가 사용됩니다.

자원 기능

Resource 구조의 정의:
type Resource struct {
     Name string
     Description string
     BindACLs []string      // The name list of ACL, controls who can access this resource
}

리소스 기능:

Fuction 설명
생성(리소스 리소스, ID *x509) 인증서(오류)

새 리소스 생성. 중복된 이름이 지정된 리소스는 허용되지 않습니다.

ID에는 "이라는 부트스트랩 리소스에 대한 CREATE 액세스 권한이 있어야 합니다. Resources" ID가 null인 경우 NewResourceManager()에 지정된 기본 ID가 사용됩니다.

Get(resName 문자열, ID *x509)입니다. 인증서(리소스, 오류)

지정된 리소스를 가져옵니다.

ID에 리소스에 대한 READ 액세스 권한이 있어야 합니다. ID가 널인 경우 NewResourceManager()에 지정된 기본 ID가 사용됩니다.

Delete(resName 문자열, ID *x509). 인증서(오류)

이름이 지정된 리소스를 삭제합니다.

ID에는 이름이 지정된 리소스에 대한 DELETE 액세스 권한이 있어야 합니다. ID가 널인 경우 NewResourceManager()에 지정된 기본 ID가 사용됩니다.

UpdateDescription(resourceName 문자열, newDes 문자열, ID *x509) 인증서(오류)

설명을 업데이트합니다.

ID에 이 리소스에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 NewResourceManager()에 지정된 기본 ID가 사용됩니다.

AddBeforeACL(resourceName 문자열, beforeName 문자열, aclName 문자열, ID *x509) 인증서(오류)

기존의 명명된 ACL 앞에 바인드 ACL을 리소스에 추가합니다. 명명된 ACL이 비어 있거나 없는 경우 리소스에 대한 바인드 ACL 목록의 시작 부분에 ACL이 추가됩니다.

ID에는 이름이 지정된 리소스에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 NewResourceManager()에 지정된 기본 ID가 사용됩니다.

AddAfterACL(resourceName 문자열, afterName 문자열, aclName 문자열, ID *x509) 인증서(오류)

기존의 명명된 ACL 뒤에 바인드 ACL을 리소스에 추가합니다. 이름이 지정된 ACL이 비어 있거나 없는 경우 리소스에 대한 바인드 ACL 목록의 끝에 ACL이 추가됩니다.

ID에는 이름이 지정된 리소스에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 NewResourceManager()에 지정된 기본 ID가 사용됩니다.

RemoveBindACL(resourceName 문자열, aclName 문자열, ID *x509) 인증서(오류)

명명된 리소스의 바인드 ACL 목록에서 명명된 ACL을 제거합니다.

ID에는 이름이 지정된 리소스에 대한 UPDATE 액세스 권한이 있어야 합니다. ID가 nil인 경우 NewResourceManager()에 지정된 기본 ID가 사용됩니다.

CheckAccess(resName 문자열, 액세스 문자열, ID *x509) 인증서(불, 오류)

현재 사용자가 명명된 리소스에 대해 지정된 액세스 권한을 가지고 있는지 확인합니다.

ID가 nil인 경우 NewResourceManager()에 지정된 기본 ID가 사용됩니다.

GetAll(ID *x509) 인증서([]리소스, 오류)

모든 리소스를 가져옵니다.

ID에는 이러한 리소스에 대한 READ 액세스 권한이 있어야 합니다. ID가 nil인 경우 NewResourceManager()에 지정된 기본 ID가 사용됩니다.