Hyperledger Composer v0.19 Сокрытие историка в ACL - PullRequest
0 голосов
/ 01 мая 2018

Я хотел бы спросить, как скрыть Historian // Журнал транзакций в v0.19?

Я попробовал это на примере ->

    rule hideHistorianAccess{
    description: "Deny access to Historian"
    participant: "org.blockknowhow.com.Users"
    operation: READ
    resource: "org.hyperledger.composer.system.HistorianRecord"
    action: DENY
    }

    rule historianAccess{
    description: "Only allow members to read historian records referencing transactions they submitted."
    participant(p): "org.blockknowhow.com.Users"
    operation: READ
    resource(r): "org.hyperledger.composer.system.HistorianRecord"
    condition: (r.participantInvoking.getIdentifier() == p.getIdentifier())
    action: ALLOW
    }

Но, похоже, ничего из этого не работает, я хотел бы скрыть добавление новых участников в основном, но если это невозможно, я бы хотел скрыть полный журнал транзакций. У меня есть личные данные в полях участников, которые я не хотел бы делать общедоступными.

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Как упомянуто david_k - контекст ваших правил (выше) относительно ВСЕХ правил в permissions.acl был бы необходим, чтобы понять, почему вы видели, что вы сделали.

Из разговора в Rocketchat следует, что проблема была связана с ЗАКАЗОМ правил в наборе правил, то есть более «общее» правило оценивается перед «конкретным» правилом в оценке лексических правил и находит совпадение (поэтому последующее «конкретное» правило не оценивалось, поэтому изначально вы видели эти результаты).

Пример этого показан ниже:

'ПРАВИЛЬНЫЙ ЗАКАЗ'

// specifically allow users to see historian records they invoked
rule historianAccess{
  description: "Only allow members to read historian records referencing transactions they submitted."
  participant(p): "org.blockknowhow.com.Users"
  operation: READ
  resource(r): "org.hyperledger.composer.system.HistorianRecord"
  condition: (r.participantInvoking.getIdentifier() == p.getIdentifier())
  action: ALLOW
}

// prevent users from seeing historian records
rule hidehistorianAccess{
  description: "Deny access to Historian"
  participant: "org.blockknowhow.com.Users"
  operation: READ
  resource: "org.hyperledger.composer.system.HistorianRecord"
  action: DENY
}

против 'НЕПРАВИЛЬНЫЙ ЗАКАЗ' :

rule hidehistorianAccess{
  description: "Deny access to Historian"
  participant: "org.blockknowhow.com.Users"
  operation: READ
  resource: "org.hyperledger.composer.system.HistorianRecord"
  action: DENY
}

rule historianAccess{
  description: "Only allow members to read historian records referencing transactions they submitted."
  participant(p): "org.blockknowhow.com.Users"
  operation: READ
  resource(r): "org.hyperledger.composer.system.HistorianRecord"
  condition: (r.participantInvoking.getIdentifier() == p.getIdentifier())
  action: ALLOW

}
0 голосов
/ 01 мая 2018

Я думаю, что первое правило не нужно. С вашим правилом ALLOW только для определенных участников, выполняющих строгое условие, каждый другой участник, не соответствующий условию, получит свои действия отказано .

Я вижу, что вы нашли ALLOW правило в документах , и это тоже выглядит хорошо, я бы не подошел к нему иначе. Но чтобы запустить его, попробуйте удалить первое правило. Если это не сработает, я бы порекомендовал создать проблему на composer на Github.

...