詳細なアクセス制御のライブラリ関数
ライブラリ・パッケージは、リソース、グループ、ACLおよびグローバル関数用に次の関数を提供します。
グローバル関数
関数 | 説明 |
---|---|
Initialization(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (error) (error) |
チェーンコードがデプロイされると、 ブートストラップ・プロセスが完了すると、次のエンティティが作成されます:
|
NewGroupManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*GroupManager, error) |
グループ関連のすべての操作に使用するグループ・マネージャを取得。 ID: 関連する操作のデフォルトID。nilの場合、関数は呼出し元のIDを使用します。 |
NewACLManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ACLManager, error) |
ACL関連のすべての操作に使用するACLマネージャを取得します。 ID: 関連する操作のデフォルトID。nilの場合、関数は呼出し元のIDを使用します。 |
NewResourceManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ResourceManager, error) |
リソース関連のすべての操作に使用するリソース・マネージャを返します。 ID: 関連する操作のデフォルトID。nilの場合、関数は呼出し元のIDを使用します。 |
アクセス制御リスト(ACL)の関数
ACL
構造の定義:type ACL struct {
Name string
Description string
Accesses []string // CREATE, READ, UPDATE, and DELETE, or whatever the end-user defined
Patterns []string // identities
Allowed bool // true means allows access.
BindACLs []string // The list of ACL , control who can call the APIs of this struct
}
- Accesses: Accesses文字列は、任意のアクセス名をカンマで区切ったリストで、CREATE、READ、UPDATE、DELETEの4つを除いて、すべてアプリケーションに依存します。これらのアクセス値は、ファイングレイン・アクセス・コントロールの保守に使用されます。アプリケーションには、
register
、invoke
、query
などの独自のアクセス文字列を使用することも、owner
、quantity
などのフィールド名をアクセス権として使用することも可能です。 - Allowed: Allowedは、パターンに一致するIDにアクセスを許可する(true)か禁止する(false)かを決定します。Bobが"
CREATE
"へのアクセス権を持っていることを示すアクセス制御リストと、(Bobがメンバーである)グループOracleを示す別のアクセス制御リストは、"CREATE"
から禁止されています。Bobにアクセス権があるか否かは、該当するエンティティに関連付けられたアクセス制御リストの順序によって異なります。 - BindACLs: BindACLsパラメータは、初期アクセス制御リストを形成します。
ACL関数:
関数 | 説明 |
---|---|
Create(acl ACL, identity *x509.Certificate) (error) |
ACLを作成します。名前付きACLの重複は許可されません。 ACLを作成するには、アイデンティティに"という名前のブートストラップ・リソースに対するCREATEアクセス権が必要です。ACLs」。IDがnilの場合は、 |
Get(aclName string, identity *x509.Certificate) (ACL, error) |
指定されたACLを取得します。 IDには、指定されたACLに対するREADアクセス権が必要です。IDがnilの場合は、 |
Delete(aclName string, identity *x509.Certificate) (error) |
指定したACLを削除します。 IDには、指定されたACLに対するDELETEアクセス権が必要です。IDがnilの場合は、 |
Update(acl ACL, identity *x509.Certificate) (error) |
ACLを更新します。 IDには、指定されたリソースに対するUPDATEアクセス権が必要で、指定されたACLが存在する必要があります。IDがnilの場合は、 |
AddPattern(aclName string, pattern string, identity *x509.Certificate) (error) |
指定されたACLに新しいIDパターンを追加します。IDには、指定されたACLに対するUPDATEアクセス権が必要です。 IDがnilの場合は、 |
RemovePattern(aclName string, pattern string, identity *X509Certificate) (error) |
ACLからIDパターンを削除します。IDには、指定されたACLに対するUPDATEアクセス権が必要です。 IDがnilの場合は、 |
AddAccess(aclname string, access string, identity *X509Certificate) (error) |
指定されたACLに新しいアクセス権を追加します。IDには、指定されたACLに対するUPDATEアクセス権が必要です。 IDがnilの場合は、 |
RemoveAccess(aclName string, access string, identity *X509Certificate) (error) |
ACLからアクセス権を削除します。IDには、指定されたACLに対するUPDATEアクセス権が必要です。 IDがnilの場合は、 |
UpdateDescription(aclName string, newDescription string, identity *X509Certificate) (error) |
説明を更新します。 IDには、指定されたACLに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
AddBeforeACL(aclName string, beforeName string, newBindACL string, identity *X509Certificate) (error) |
指定された既存のACLの前に、バインドACLを追加します。指定されたACLが空であるか見つからない場合、ACLはバインドACLリストの先頭に追加されます。 IDには、指定されたACLに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
AddAfterACL(aclName string, afterName string, newBindACL string, identity *X509Certificate) (error) |
指定された既存のACLの後ろに、バインドACLを追加します。指定されたACLが空であるか見つからない場合、ACLはバインドACLリストの最後に追加されます。 IDには、指定されたACLに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
RemoveBindACL(aclName string, removeName string, identity *X509Certificate) (error) |
IDには、指定されたACLに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
GetAll(identity *x509.Certificate) ([]ACL, error) |
すべてのACLを取得します。 IDには、指定されたACLに対するREADアクセス権が必要です。IDがnilの場合は、 |
グループの機能
グループ
構造の定義:type Group struct {
Name string
Description string
Members []string // identity patterns, except GRP.
BindACLs []string // The list of ACLs, controls who can access this group.
}
GroupManager
関数の定義:
関数 | 説明 |
---|---|
Create(group Group, identity *x509.Certificate) (error) |
グループを作成します。 IDには、ブートストラップ・グループ |
Get(groupName string, identity *x509.Certificate) (Group, error) |
指定されたグループを取得します。 IDには、このグループに対するREADアクセス権が必要です。IDがnilの場合は、 |
Delete(groupName string, identity *x509.Certificate) (error) |
指定されたグループを削除します。 IDには、このグループに対するDELETEアクセス権が必要です。IDがnilの場合は、 |
AddMembers(groupName string, member []string, identity *x509.Certificate) (error) |
1つ以上のメンバーをグループに追加します。 IDには、このグループに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
RemoveMembers(groupName string, member []string, identity *x509.Certificate) (error) |
1つ以上のメンバーをグループから削除します。 IDには、このグループに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
UpdateDescription(groupName string, newDes string, identity *x509.Certificate) (error) |
説明を更新します。 IDには、このグループに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
AddBeforeACL(groupName string, beforeName string, aclName string, identity *x509.Certificate) (error) |
グループへのバインドACLの追加(場所は、指定された既存のACLの前です)。指定されたACLが空であるか見つからない場合、ACLは、そのリソースのバインドACLリストの先頭に追加されます。 IDには、指定されたグループに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
AddAfterACL(groupName string, afterName string, aclName string, identity *x509.Certificate) (error) |
グループにバインドACLを追加します(場所は、指定された既存のACLの後ろです)。指定されたACLが空であるか見つからない場合、ACLは、そのグループのバインドACLリストの最後に追加されます IDには、指定されたグループに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
RemoveBindACL(groupName string, aclName string, identity *x509.Certificate) (error) |
指定されたグループのバインドACLリストから、指定のACLを削除します。 IDには、指定されたグループに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
GetAll(identity *x509.Certificate) ([]Group, error) |
すべてのグループを取得します。 IDには、これらのグループに対するREADアクセス権が必要です。IDがnilの場合は、 |
リソース関数
リソース
構造の定義:type Resource struct {
Name string
Description string
BindACLs []string // The name list of ACL, controls who can access this resource
}
リソース関数:
関数 | 説明 |
---|---|
Create(resource Resource, identity *x509.Certificate) (error) |
リソースを作成します。リソースの名前を重複させることはできません。 アイデンティティには、 |
Get(resName string, identity *x509.Certificate) (Resource, error) |
指定されたリソースを取得します。 IDには、そのリソースに対するREADアクセス権が必要です。IDがnullの場合は、 |
Delete(resName string, identity *x509.Certificate) (error) |
名前付きリソースを削除します。 IDには、指定されたリソースに対するDELETEアクセス権が必要です。IDがnullの場合は、 |
UpdateDescription(resourceName string, newDes string, identity *x509.Certificate) (error) |
説明を更新します。 IDには、このリソースに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
AddBeforeACL(resourceName string, beforeName string, aclName string, identity *x509.Certificate) (error) |
リソースにバインドACLを追加します(場所は、指定された既存のACLの前です)。指定されたACLが空であるか見つからない場合、ACLは、そのリソースのバインドACLリストの先頭に追加されます。 IDには、指定されたリソースに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
AddAfterACL(resourceName string, afterName string, aclName string, identity *x509.Certificate) (error) |
リソースにバインドACLを追加します(場所は、指定された既存のACLの後ろです)。指定されたACLが空であるか見つからない場合、ACLは、そのリソースのバインドACLリストの最後に追加されます。 IDには、指定されたリソースに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
RemoveBindACL(resourceName string, aclName string, identity *x509.Certificate) (error) |
指定されたリソースのバインドACLリストから、指定のACLを削除します。 IDには、指定されたリソースに対するUPDATEアクセス権が必要です。IDがnilの場合は、 |
CheckAccess(resName string, access string, identity *x509.Certificate) (bool, error) |
現在のユーザーに、指定されたリソースへの指定のアクセス権があるかどうかをチェックします。 IDがnilの場合は、 |
GetAll(identity *x509.Certificate) ([]Resource, error) |
すべてのリソースを取得します。 IDには、これらのリソースに対するREADアクセス権が必要です。IDがnilの場合は、 |