You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Session Token v2 solves the delegation, power of attorney, and chain-of-trust
problems. It enables:
- Account-based authority (direct or NNS-based indirect)
- Multi-account subjects (multiple entities can use same token)
- Multi-verb operations (GET, PUT, DELETE in single token)
- Delegation chains (verifiable like X.509 certificates)
- Indirect accounts (NeoFS Name Service resolution)
Refs #241.
Signed-off-by: Andrey Butusov <andrey@nspcc.io>
| expiration |[uint64](#uint64)|| Session expiration epoch, the last epoch when session is valid. |
96
120
97
121
122
+
<aname="neo.fs.v2.session.CreateRequestV2"></a>
123
+
124
+
### Message CreateRequestV2
125
+
CreateRequestV2 is information necessary for creating a session token v2.
126
+
127
+
128
+
| Field | Type | Label | Description |
129
+
| ----- | ---- | ----- | ----------- |
130
+
| body |[CreateRequestV2.Body](#neo.fs.v2.session.CreateRequestV2.Body)|| Body of create session token v2 request message |
131
+
| meta_header |[RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader)|| Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
132
+
| verify_header |[RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader)|| Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
@@ -119,6 +172,30 @@ Session creation response body
119
172
| id |[bytes](#bytes)|| Identifier of a newly created session |
120
173
| session_key |[bytes](#bytes)|| Public key used for session |
121
174
175
+
176
+
<aname="neo.fs.v2.session.CreateResponseV2"></a>
177
+
178
+
### Message CreateResponseV2
179
+
CreateResponseV2 is information about a newly created session token v2.
180
+
181
+
182
+
| Field | Type | Label | Description |
183
+
| ----- | ---- | ----- | ----------- |
184
+
| body |[CreateResponseV2.Body](#neo.fs.v2.session.CreateResponseV2.Body)|| Body of create session token v2 response message |
185
+
| meta_header |[ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader)|| Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
186
+
| verify_header |[ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader)|| Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
@@ -147,6 +237,35 @@ Context information for Session Tokens related to ContainerService requests.
147
237
| container_id |[neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID)|| Particular container to which the action applies. Ignored if wildcard flag is set. |
| wildcard |[bool](#bool)|| If true, applies to all containers owned by the subject |
251
+
| container_id |[neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID)|| Particular container to which the action applies Ignored if wildcard is true |
252
+
253
+
254
+
<aname="neo.fs.v2.session.DelegationInfo"></a>
255
+
256
+
### Message DelegationInfo
257
+
DelegationInfo represents a single delegation in a chain of trust.
258
+
259
+
260
+
| Field | Type | Label | Description |
261
+
| ----- | ---- | ----- | ----------- |
262
+
| issuer |[Account](#neo.fs.v2.session.Account)|| Account that performed this delegation |
263
+
| subject |[Account](#neo.fs.v2.session.Account)|| Account that received the delegation |
264
+
| timestamp |[int64](#int64)|| Unix timestamp when this delegation was created |
265
+
| verbs |[string](#string)| repeated | List of verbs authorized by this delegation |
266
+
| signature |[neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature)|| Signature of the issuer confirming this delegation record. The signature is created over the deterministic serialization of this DelegationInfo message excluding this field. |
@@ -171,6 +290,31 @@ Carries objects involved in the object session.
171
290
| objects |[neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID)| repeated | Indicates which objects the session is spread to. Objects are expected to be stored in the NeoFS container referenced by `container` field. Each element MUST have correct format. |
| container |[neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID)|| Container where operation is allowed |
315
+
| objects |[neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID)| repeated | Specific objects where operation is allowed Empty list means all objects in the container |
316
+
317
+
174
318
<aname="neo.fs.v2.session.RequestMetaHeader"></a>
175
319
176
320
### Message RequestMetaHeader
@@ -256,15 +400,45 @@ Session Token body
256
400
| ----- | ---- | ----- | ----------- |
257
401
| id |[bytes](#bytes)|| Token identifier is a valid UUIDv4 in binary form |
258
402
| owner_id |[neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID)|| Identifier of the session initiator |
259
-
| lifetime |[SessionToken.Body.TokenLifetime](#neo.fs.v2.session.SessionToken.Body.TokenLifetime)|| Lifetime of the session |
403
+
| lifetime |[TokenLifetime](#neo.fs.v2.session.TokenLifetime)|| Lifetime of the session |
260
404
| session_key |[bytes](#bytes)|| Public key used in session |
0 commit comments