@@ -117,15 +117,8 @@ and a file:
117
117
CA's certificate
118
118
3. (optional) a folder ``intermediatecerts `` to include PEM files each
119
119
corresponding to an intermediate CA's certificate
120
- 4. (optional) a file ``config.yaml `` to include information on the
121
- considered OUs; the latter are defined as pairs of
122
- ``<Certificate, OrganizationalUnitIdentifier> `` entries of a yaml array
123
- called ``OrganizationalUnitIdentifiers ``, where ``Certificate `` represents
124
- the relative path to the certificate of the certificate authority (root or
125
- intermediate) that should be considered for certifying members of this
126
- organizational unit (e.g. ./cacerts/cacert.pem), and
127
- ``OrganizationalUnitIdentifier `` represents the actual string as
128
- expected to appear in X.509 certificate OU-field (e.g. "COP")
120
+ 4. (optional) a file ``config.yaml `` to configure the supported Organizational Units
121
+ and identity classifications (see respective sections below).
129
122
5. (optional) a folder ``crls `` to include the considered CRLs
130
123
6. a folder ``keystore `` to include a PEM file with the node's signing key;
131
124
we emphasise that currently RSA keys are not supported
@@ -154,6 +147,67 @@ the peer or orderer process is restarted. In subsequent releases we aim to
154
147
offer online/dynamic reconfiguration (i.e. without requiring to stop the node
155
148
by using a node managed system chaincode).
156
149
150
+ Organizational Units
151
+ --------------------
152
+
153
+ In order to configure the list of Organizational Units that valid members of this MSP should
154
+ include in their X.509 certificate, the ``config.yaml `` file
155
+ needs to specify the organizational unit identifiers. Here is an example:
156
+
157
+ ::
158
+
159
+ OrganizationalUnitIdentifiers:
160
+ - Certificate: "cacerts/cacert1.pem"
161
+ OrganizationalUnitIdentifier: "commercial"
162
+ - Certificate: "cacerts/cacert2.pem"
163
+ OrganizationalUnitIdentifier: "administrators"
164
+
165
+ The above example declares two organizational unit identifiers: **commercial ** and **administrators **.
166
+ An MSP identity is valid if it carries at least one of these organizational unit identifiers.
167
+ The ``Certificate `` field refers to the CA or intermediate CA certificate path
168
+ under which identities, having that specific OU, should be validated.
169
+ The path is relative to the MSP root folder and cannot be empty.
170
+
171
+ Identity Classification
172
+ -----------------------
173
+
174
+ The default MSP implementation allows to further classify identities into clients and peers, based on the OUs
175
+ of their x509 certificates.
176
+ An identity should be classified as a **client ** if it submits transactions, queries peers, etc.
177
+ An identity should be classified as a **peer ** if it endorses or commits transactions.
178
+ In order to define clients and peers of a given MSP, the ``config.yaml `` file
179
+ needs to be set appropriately. Here is an example:
180
+
181
+ ::
182
+
183
+ NodeOUs:
184
+ Enable: true
185
+ ClientOUIdentifier:
186
+ Certificate: "cacerts/cacert.pem"
187
+ OrganizationalUnitIdentifier: "client"
188
+ PeerOUIdentifier:
189
+ Certificate: "cacerts/cacert.pem"
190
+ OrganizationalUnitIdentifier: "peer"
191
+
192
+ As shown above, the ``NodeOUs.Enable `` is set to ``true ``, this enables the identify classification.
193
+ Then, client (peer) identifiers are defined by setting the following properties
194
+ for the ``NodeOUs.ClientOUIdentifier `` (``NodeOUs.PeerOUIdentifier ``) key:
195
+ a. ``OrganizationalUnitIdentifier ``: Set this to the value that matches the OU that
196
+ the x509 certificate of a client (peer) should contain.
197
+ b. ``Certificate ``: Set this to the CA or intermediate CA under which client (peer) identities
198
+ should be validated. The field is relative to the MSP root folder. It can be empty, meaning
199
+ that the identity's x509 certificate can be validated under any CA defined in the MSP configuration.
200
+
201
+ When the classification is enabled, MSP administrators need
202
+ to be clients of that MSP, meaning that their x509 certificates need to carry
203
+ the OU that identifies the clients.
204
+ Notice also that, an identity can be either a client or a peer.
205
+ The two classifications are mutually exclusive. If an identity is neither a client nor a peer,
206
+ the validation will fail.
207
+
208
+ Finally, notice that for upgraded environments the 1.1 channel capability
209
+ needs to be enabled before identify classification can be used.
210
+
157
211
Channel MSP setup
158
212
-----------------
159
213
0 commit comments