Hyperledger Fabric Разница между привилегиями пользователя - PullRequest
0 голосов
/ 02 декабря 2018

Если у меня 1 организация orgA, и в этой организации у меня 2 пользователя: user1 и user2, также есть 1 пир в orgA, давайте назовем его peer0.

Теперь представьте, сертификат user1 находится в orgA's msp/admincerts forlder, что делает user1 admin для orgA.С другой стороны, скажем, сертификат user2's находится в папке peer0's msp/admincerts, что делает user2 admin для peer0.

Мой вопрос заключается в том, какова разница в привилегиях между user1и user2, я имею в виду то, что может user1, а что user2 не может и наоборот?

Также я использую fabic ca и node sdk для взаимодействия с сетью.В моем примере, когда я регистрирую пользователя начальной загрузки фабрики ca (admin / adminpw) из nod sdk, а затем создаю запрос на создание канала, это работает, но затем, когда я делаю запрос на присоединение к каналу, это не удается (потому что у этого пользователя нет привилегий).Когда я попытался понять, почему это произошло, я обнаружил, что, если я делаю запрос на присоединение от пользователя, сертификат которого не находится в папке msp / admincerts, этот тип пользователя не имеет разрешения на подключение к каналу.Таким образом, единственный способ - скопировать сертификат зарегистрированного администратора в папку peer0 msp / admincerts, тогда я думаю, что он будет работать, но это единственный способ заставить его работать, или есть какой-либо другой способ избежать копирования / вставки и в негоиз SDK, или создать новую транзакцию обновления конфигурации?

Также я не могу понять, что делает этот пользователь способен создавать канал?какие разрешения имеет загрузочный пользователь с fabric ca?

1 Ответ

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

Это очень поздний ответ, но надеюсь, что кто-то может найти это полезным.Роли пользователей и разрешения не связаны напрямую, это делается с помощью политик, установленных в configtx.yaml.

. Политики определяются для каждого Org и Orderer, помечая каждого члена и администратора определеннымнабор подгрупп политики, например Readers или Writers или Admins. Это политики низового уровня, используемые для создания политик ImplicitMeta, например, для запросов и записи chiancode.

Например, org определяет политику как

# Policies defines the set of policies at this level of the config tree
        # For organization policies, their canonical path is usually
        #   /Channel/<Application|Orderer>/<OrgName>/<PolicyName>
        Policies: &org1Policies
            Readers:
                Type: Signature
                Rule: "OR('org1.example.com.member')"
                # If your MSP is configured with the new NodeOUs, you might
                # want to use a more specific rule like the following:
                # Rule: "OR('org1MSP.admin', 'org1MSP.peer')"
            Writers:
                Type: Signature
                Rule: "OR('org1.example.com.member')"
                # If your MSP is configured with the new NodeOUs, you might
                # want to use a more specific rule like the following:
                # Rule: "OR('org1MSP.admin', 'org1MSP.client'')"
            Admins:
                Type: Signature
                Rule: "OR('org1.example.com.admin')

Политики для консорциума определяются следующим образом:

Policies:
        Readers:
            Type: ImplicitMeta
            Rule: "ANY Readers"
        Writers:
            Type: ImplicitMeta
            Rule: "ANY Writers"
        Admins:
            Type: ImplicitMeta
            Rule: "MAJORITY Admins"

Это относится к политикам org и orderer, определенным ранее.

Теперь в системном коде цепи могут быть политики, такие как:

Application: &ApplicationDefaults
    ACLs: &ACLsDefault
        #This section provides defaults for policies for various resources
        #in the system.
    #---Query System Chaincode (qscc) function to policy mapping for access control---#

        #ACL policy for qscc's "GetChainInfo" function
        qscc/GetChainInfo: /Channel/Application/Readers

        #ACL policy for qscc's "GetBlockByNumber" function
        qscc/GetBlockByNumber: /Channel/Application/Readers

Здесь ссылки на политики указывают на политики консорциума.

Пожалуйста, прочитайте документы для более подробного руководства по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...