B Marbles 샘플에 포함된 Fine-Grained Access Control 라이브러리 사용
v1.2부터 Hyperledger Fabric은 여러 관리 기능에 대한 세분화된 액세스 제어를 제공했습니다. Oracle Blockchain Platform은 체인코드 개발자가 체인코드 기능에 대한 액세스 제어 목록을 생성하는 데 사용할 수 있는 함수 라이브러리를 구현하여 콘솔의 개발자 도구 탭에 대리석 샘플 패키지를 제공합니다. 현재 Go 언어만 지원합니다.
배경
이 샘플 액세스 제어 라이브러리의 목표는 다음을 제공하는 것입니다.
- 특정 체인 코드 함수에 액세스할 수 있는 사용자를 제어할 수 있는 방식을 제공합니다.
- 사용자 및 사용자 자격 목록은 동적이어야 하며 체인코드 간에 공유되어야 합니다.
- 체인 코드가 액세스 제어 목록을 쉽게 확인할 수 있도록 액세스 제어 검사를 제공합니다.
- 체인코드 배포 시 리소스 및 액세스 제어 목록 목록을 초기 멤버로 채울 수 있습니다.
- 사용자에게 액세스 제어 목록 작업을 수행하도록 권한을 부여하려면 액세스 제어 목록을 제공해야 합니다.
샘플 다운로드
Fine-GrainedAccessControlLibrary.zip
:Fine-Grained Access Control 라이브러리입니다. 체인코드 개발자가 체인코드 함수에 대한 액세스 제어 목록을 생성하는 데 사용할 수 있는 Go 함수가 포함되어 있습니다.
fgACL_MarbleSampleCC.zip
:액세스 제어 목록이 구현된 대리석 샘플입니다. 여기에는 FGAC(Fine-Grained Access Control) 목록, 그룹 및 리소스를 사용하여 특정 사용자/ID로 함수를 제한하는 방법을 검사할 수 있는 다양한 함수가 포함되어 있습니다.
fgACL-NodeJSCode.zip
:Node.js SDK를 사용하여 샘플을 실행하는 Node.js 스크립트입니다.
registerEnrollUser.js
를 사용하여 블록체인 플랫폼에 새 사용자를 등록할 수 있습니다.invokeQueryCC.js
를 사용하여 블록체인 플랫폼 인스턴스에 대해 트랜잭션을 실행할 수 있습니다.
용어 및 머리글자어
용어 | 설명 |
---|---|
ID | 체인코드가 확인하려는 호출자 또는 특정 ID의 ID를 나타내는 X509 인증서입니다. |
ID 패턴 |
하나 이상의 ID와 일치하는 패턴입니다. 다음 패턴이 제안됩니다.
패턴의 형식은 기본적으로 접두어가 있는 문자열일 뿐입니다. 예를 들어, "example.com" 조직의 ID와 일치하는 패턴을 정의하려면 패턴이 "%O%example.com"입니다. |
리소스 | 체인코드가 액세스를 제어하려는 모든 항목의 이름입니다. 이 라이브러리에서는 플랫 네임스페이스에 포함된 이름이 지정된 임의 문자열에 불과합니다. 이름의 의미는 체인 코드에 완전히 적용됩니다. |
그룹화 | ID 패턴 그룹입니다. |
ACL | 액세스 제어 목록: ID 패턴 목록, "READ", "CREATE", "INVOKE", "FORWARD"와 같은 액세스 유형 목록 또는 체인 코드가 사용하려는 모든 항목이 있는 이름이 지정된 엔티티입니다. 이 라이브러리는 CREATE, READ, UPDATE 및 DELETE(표준 CRUD 작업)의 액세스 유형을 사용하여 해당 정보를 유지 관리합니다. 이 네 개가 이 라이브러리의 항목과 관련되어 있지 않으면 암시적 의미가 없는 문자열일 뿐입니다. 응용 프로그램은 "A", "B" 및 "CUSTOM"의 액세스를 사용하도록 결정할 수 있습니다. |