ACL: Как интерпретируется правило `ImplicitMeta`? - PullRequest
0 голосов
/ 04 февраля 2019

В официальной документации контроля доступа в Hyperledger Fabric: https://hyperledger -fabric.readthedocs.io / en / latest / access_control.html

Политики ImplicitMeta агрегируютрезультат политик

Как именно правило ImplicitMeta интерпретируется `set-теоретически ', когда в сочетании с другими правилами?

Пример:

Policies:
  AndPolicy:
    Type:Signature
    Rule: "AND('Org1.Peer','Org2.Peer','Org3.Peer')"
  OrPolicy:
    Type:Signature
    Rule: "OR('Org1.Peer','Org2.Peer','Org3.Peer')"
  MetaPolicy:
    Type:ImplicitMeta
    Rule: "ALL OrPolicy" 

Если мы установим правило для MetaPolicy как «ЛЮБОЕ AndPolicy», будет ли оно эквивалентно OrPolicy?

Если мы установим «ALL OrPolicy», это будет эквивалентно AndPolicy?

Синтаксис ImplicitMeta rule <ALL|ANY|MAJORITY> <sub_policy> предполагает, что sub_policy представляет собой набор элементов, в то время как синтаксис правила Signature, такой как A and B and C, может выражать условное выражение , а не набор.Таким образом, точное значение сочетания этих двух правил мне кажется неясным.

1 Ответ

0 голосов
/ 05 февраля 2019

Я чувствую, что нашел ответ, хотя и неполный.Любые исправления, дополнения приветствуются.

Если мы установим правило для MetaPolicy как «ANY AndPolicy», будет ли оно эквивалентно OrPolicy?Если мы установим «ВСЕ OrPolicy», это будет эквивалентно AndPolicy?

Короткий ответ - Нет.

Политики в Hyperledger Fabric page, которая не являетсясвязан из любого места по неизвестной причине, дает нам некоторое предложение.

Более длинное объяснение:

# The lines below are just based on my conceptual understanding, 
# therefore they may have errors in details.
Channel:
  Groups:
    Application:
      Policies:
        M:             #-----------(1)
          Type: ImplicitMeta
          Rule: "ALL P"
      Groups:
        GroupA:
          Policies:
            P:         #-----------(2)              
              Type: Signature
              Rule: "OR('SampleOrg.admin')"
        GroupB:
          Policies:
            P:         #-----------(3)
              Type: Signature
              Rule: "AND('SampleOrg.member')"

В конфигурации выше,

  • (1) можетможет быть выражено как /Channel/Application/M.
  • (2) может быть выражено как /Channel/Application/GroupA/P.
  • (3) может быть выражено как /Channel/Application/GroupB/P.
  • Давайте посмотрим, что(1) означает.
    • Его правило определено как ALL P, что следует интерпретировать как ВСЕ субполитики M должны быть удовлетворены. .
    • Но что такое субполитики?Это ключ этого ответа: согласно policies.html, политика ImplicitMeta неявно выбирает подгруппы группы, в которой она находится .В этом случае M находится в /Channel/Application, таким образом, оба (2) и (3), которые находятся под этим путем, являются субполитиками.
    • Правило ImplicitMeta указывает, что все / любые / большинство правил должны быть выполнены.В случае выше, M будет удовлетворено, только если хотя бы один администратор и все участники подписаны.
...