B 마블 샘플에 포함된 FGAC 라이브러리 사용

v1.2부터 Hyperledger Fabric은 많은 관리 기능에 대한 세분화된 액세스 제어를 제공했습니다. Oracle Blockchain Platform은 콘솔의 개발자 도구 탭에 대리석 샘플 패키지를 제공하여 체인코드 개발자가 체인코드 함수에 대한 액세스 제어 목록을 생성하는 데 사용할 수 있는 함수 라이브러리를 구현합니다. 현재 Go 언어만 지원합니다.

배경

이 샘플 액세스 제어 라이브러리의 목표는 다음을 제공하는 것입니다.

  • 특정 체인 코드 기능에 액세스할 수 있는 사용자를 제어할 수 있는 방식을 제공합니다.
  • 사용자 및 해당 자격 목록은 동적으로 체인 코드 간에 공유되어야 합니다.
  • 체인코드가 액세스 제어 목록을 쉽게 확인할 수 있도록 액세스 제어 검사를 제공합니다.
  • 체인코드 배포 시 리소스 및 액세스 제어 목록 목록을 초기 멤버로 채울 수 있습니다.
  • 액세스 제어 목록 작업을 수행하도록 사용자에게 권한을 부여하려면 액세스 제어 목록을 제공해야 합니다.

샘플 다운로드

개발자 도구 탭에서 샘플 창을 엽니다. Marbles with Fine-Grained ACLs에서 다운로드 링크를 누릅니다. 이 패키지는 다음 세 개의 하위 패키지를 포함합니다.
  • Fine-GrainedAccessControlLibrary.zip:

    미세 조정된 액세스 제어 라이브러리입니다. 체인코드 개발자가 체인코드 함수에 대한 액세스 제어 목록을 생성하는 데 사용할 수 있는 Go의 함수를 포함합니다.

  • fgACL_MarbleSampleCC.zip:

    액세스 제어 목록이 구현된 대리석 샘플입니다. 여기에는 세분화된 액세스 제어 목록, 그룹 및 리소스로 함수를 특정 사용자/ID로 제한하는 방법을 검사할 수 있는 다양한 기능이 포함됩니다.

  • fgACL-NodeJSCode.zip:

    Node.js SDK를 사용하여 샘플을 실행하는 Node.js 스크립트입니다. registerEnrollUser.js를 사용하여 Blockchain Platform에 새 사용자를 등록할 수 있습니다. invokeQueryCC.js를 사용하여 Blockchain Platform 인스턴스에 대해 트랜잭션을 실행할 수 있습니다.

용어 및 약어

용어 설명
ID 호출자 또는 체인 코드가 확인하려는 특정 ID의 ID를 나타내는 X509 인증서입니다.
ID 패턴

하나 이상의 ID와 일치하는 패턴입니다. 권장되는 패턴은 다음과 같습니다.

  • X.509 주체 공통 이름 - CN
  • X.509 주체 조직 단위 - OU
  • X.509 주체 조직 - O
  • 이 라이브러리에 정의된 그룹 - GRP
  • 속성 - ATTR

패턴의 형식은 기본적으로 접두어가 있는 문자열일 뿐입니다. 예를 들어 "example.com" 조직의 ID와 일치하는 패턴을 정의하려면 패턴은 "%O%example.com"이 됩니다.

리소스 체인코드가 액세스를 제어하려는 모든 항목의 이름입니다. 이 라이브러리에는 플랫 네임스페이스에 포함된 임의의 명명된 문자열만 포함됩니다. 이름의 의미는 체인 코드에 완전히 달려 있습니다.
그룹화 ID 패턴 그룹입니다.
ACL 액세스 제어 목록: ID 패턴 목록, 액세스 유형 목록(예: "READ", "CREATE", "INVOKE", "FORWARD" 또는 체인코드가 사용하려는 모든 항목)이 있는 명명된 엔티티입니다. 이 라이브러리는 CREATE, READ, UPDATE 및 DELETE(표준 CRUD 작업)의 액세스 유형을 사용하여 해당 정보를 유지 관리합니다. 이 라이브러리의 항목과 관련된 네 개를 제외하고는 암시적 의미가 없는 문자열일 뿐입니다. 응용 프로그램은 "A", "B" 및 "CUSTOM"의 액세스를 사용하도록 결정할 수 있습니다.