2017-05-20 32 views
0

編輯:其餘服務器提供選項「指定如果你想生成的REST API的安全:(Y/N)」,這是爲了執行ACL?爲什麼hyperledger composer acl文件不起作用?

我一直在嘗試使用hyperledger-composer節點js客戶端來設置一個簡單的測試。在我的配置我有以下幾點:

 "connection-info" : { 
"participantId" : "gk1", 
"participantPwd" :"CjysyeLjriRT", 
"businessNetworkIdentifier" : "myBizNetwork", 
"connectionProfile" : "defaultProfile"} 

在我的生意網絡定義,我有以下:

rule Default { 
description: "DENY all participants access to all resources" 
participant: "ANY" 
operation: ALL 
resource: "net.name.myBizNetwork" 
action: DENY } 

當我打電話的節點JS應用程序下面的代碼,我仍然可以看到的資源:

this.bizNetworkConnection.getAssetRegistry('net.name.myBizNetwork.TestAsset'); 
      }).then((registry) => { 
       return registry.find('testAssetId = ' + id); 

顯然我想用訪問控制做更多的場景,但在我的理解這應該工作。

+0

你可以顯示你用來連接網絡的代碼嗎?不,composer-rest-server安全選項專用於REST API的身份驗證,它不會影響業務網絡的ACL。 –

+0

你能否確認下面的計算器條目是否解決了你的問題? https://stackoverflow.com/questions/42894228/composer-network-ping-wont-show-the-participant-after-composer-identity-issu –

回答

1

調用的一個很好的第一點是嘗試你的模型,ACL和腳本文件在這裏在線操場https://composer-playground.mybluemix.net/

注 - 你是默認的管理員,以模擬爲一個參與者,你可以這樣做由:

  1. 點擊「管理」在操場右上方 「+發行新ID」

  2. 提供用戶ID(不管你喜歡)和參與者(將是一個以前創建) 一個第二,然後按「新建」

  3. 選擇選項2:「+添加到我的電子錢包」(這將讓你再使用的身份,你會「是」該參與者

從看你的代碼,你拒絕的資源是「net.name.myBizNetwork」。 按照此處的文檔https://hyperledger.github.io/composer/reference/acl_language.html我認爲要拒絕訪問網絡中的資源,您需要添加一個'*'通配符(請參閱鏈接中的示例部分)。如果這不起作用,它可能與身份有關。

另一個說明,從我的理解,你需要保護API,如果你想使用身份。但是,您還需要爲現有參與者創建/綁定身份,然後使用這些身份「成爲」該參與者。看到這裏的文章https://hyperledger.github.io/composer/managing/identity-issue.html 默認情況下,你是一個空的參與者(你可以通過ping網絡看到你當前的參與者是誰)

相關問題