From 94bd1dfe288dcecb64b283d7ca27cb45986fa33d Mon Sep 17 00:00:00 2001 From: Denis Kirillov Date: Fri, 15 Mar 2024 10:50:30 +0300 Subject: [PATCH] [#334] Add auth doc Signed-off-by: Denis Kirillov --- docs/authentication.md | 313 +++++++++ .../authentication/accessbox-object.puml | 44 ++ .../authentication/accessbox-object.svg | 60 ++ .../authentication/accessbox-search.puml | 29 + .../authentication/accessbox-search.svg | 39 ++ .../authentication/auth-header-signing.png | Bin 0 -> 136397 bytes docs/images/authentication/auth-overview.puml | 25 + docs/images/authentication/auth-overview.svg | 611 ++++++++++++++++++ docs/images/authentication/auth-sequence.puml | 60 ++ docs/images/authentication/auth-sequence.svg | 70 ++ docs/images/authentication/aws-signing.png | Bin 0 -> 35391 bytes 11 files changed, 1251 insertions(+) create mode 100644 docs/authentication.md create mode 100644 docs/images/authentication/accessbox-object.puml create mode 100644 docs/images/authentication/accessbox-object.svg create mode 100644 docs/images/authentication/accessbox-search.puml create mode 100644 docs/images/authentication/accessbox-search.svg create mode 100644 docs/images/authentication/auth-header-signing.png create mode 100644 docs/images/authentication/auth-overview.puml create mode 100644 docs/images/authentication/auth-overview.svg create mode 100644 docs/images/authentication/auth-sequence.puml create mode 100644 docs/images/authentication/auth-sequence.svg create mode 100644 docs/images/authentication/aws-signing.png diff --git a/docs/authentication.md b/docs/authentication.md new file mode 100644 index 00000000..dfe859f6 --- /dev/null +++ b/docs/authentication.md @@ -0,0 +1,313 @@ +# Authentication and authorization scheme + +This document describes s3-gw authentication and authorization mechanism. + +## General overview + +Basic provisions: + +* A request to s3-gw can be signed or not (request that isn't signed we will cal anonymous or just anon) +* To manage resources (buckets/objects) using s3-gw you must have appropriate access rights + +Each request must be authenticated (at least as anonymous) and authorized. The following scheme shows components that +are involved to this +process. + + + Auth general overview + + +There are several participants of this process: + +1. User that make a request +2. S3-GW that accepts a request +3. FrostFS Storage that stores AccessObjects (objects are needed for authentication) +4. Blockchain smart contracts (`frostfsid`, `policy`) that stores user info and access rules. + +## Data auth process + +Let's look at the process in more detail: + + + Auth sequence diagram + + +* First of all, someone make a request. If request is signed we will check its signature (`Authentication`) after that + we will check access rights using policies (`Auhorization`). For anonymous requests only authorization be performed. + +* **Authentication steps**: + * Each signed request is provided with `AccessKeyId` and signature. So if request is signed we must check its + signature. To do this we must know the `AccessKeyId`/`SecretAccessKey` pair (How the signature is calculated + using this pair see [signing](#aws-signing). Client and server (s3-gw) use the same credentials and algorithm to + compute signature). The `AccessKeyId` is a public part of credentials, and it's passed to gate in request. The + private part of credentials is `SecretAccessKey` and it's encrypted and stored in [AccessBox](#accessbox). So on + this step we must find appropriate `AccessBox` in FrostFS storage node (How to find appropriate `AccessBox` + knowing `AccessKeyId` see [search algorithm](#search-algorithm)). On this stage we can get `AccessDenied` from + FrostFS storage node if the s3-gw doesn't have permission to read this `AccessBox` object. + + * After successful retrieving object we must extract `SecretAccessKey` from it. Since it's encrypted the s3-gw must + decrypt (see [encryption](#encryption)) this object using own private key and `SeedKey` from `AccessBox` + (see [AccessBox inner structure](#accessbox)). After s3-gw have got the `AccessKeyId`/`SecretAccessKey` pair it + [calculate signature](#aws-signing) and compare got signature with provided withing request. If signature doesn't + match the `AccessDenied` is returned. + + * `AccessBox` also contains `OwnerID` that is related to `AccessKeyId` that was provided. So we have to check if + such `OwnerID` exists in `frsotfsid` contract (that stores all registered valid users). If user doesn't exist in + contract the `AccessDenied` is returned. + +* **Authorization steps**: + * To know if user has access right to do what he wants to do we must find appropriate access policies. Such policies + are stored in `policy` contract and locally (can be manged using [control api](#control-auth-process)). So we need + to get policies from contract and [check them](#policies) along with local to decide if user has access right. If + he doesn't have such right the `AccessDenied` is returned. + +* After successful authentication and authorization the request will be processed by s3-gw business logic and finally be + propagated to FrostFS storage node which also performs some auth checks and can return `AccessDenied`. If this happens + s3-gw also returns `AccessDenied` as response. + +### AWS Signing + +Every interaction with FrostFS S3 gateway is either authenticated or anonymous. This section explains request +authentication with the AWS Signature Version 4 algorithm. More info in AWS documentation: + +* [Authenticating Requests (AWS Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) +* [Signing AWS API requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) + +#### Authentication Methods + +You can express authentication information by using one of the following methods: + +* **HTTP Authorization header** - Using the HTTP Authorization header is the most common method of authenticating an + FrostFS S3 request. All the FrostFS S3 REST operations (except for browser-based uploads using POST requests) require + this header. For more information about the Authorization header value, and how to calculate signature and related + options, + see [Authenticating Requests: Using the Authorization Header (AWS Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html). +* **Query string parameters** - You can use a query string to express a request entirely in a URL. In this case, you use + query parameters to provide request information, including the authentication information. Because the request + signature is part of the URL, this type of URL is often referred to as a presigned URL. You can use presigned URLs to + embed clickable links, which can be valid for up to seven days, in HTML. For more information, + see [Authenticating Requests: Using Query Parameters (AWS Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html). + +FrostFS S3 also supports browser-based uploads that use HTTP POST requests. With an HTTP POST request, you can upload +content to FrostFS S3 directly from the browser. For information about authenticating POST requests, +see [Browser-Based Uploads Using POST (AWS Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-UsingHTTPPOST.html). + +#### Introduction to Signing Requests + +Authentication information that you send in a request must include a signature. To calculate a signature, you first +concatenate select request elements to form a string, referred to as the string to sign. You then use a signing key to +calculate the hash-based message authentication code (HMAC) of the string to sign. + +In AWS Signature Version 4, you don't use your secret access key to sign the request. Instead, you first use your secret +access key to derive a signing key. The derived signing key is specific to the date, service, and Region. For more +information about how to derive a signing key in different programming languages, see Examples of how to derive a +signing key for Signature Version 4. + +The following diagram illustrates the general process of computing a signature. + + + AWS Signing + + +The string to sign depends on the request type. For example, when you use the HTTP Authorization header or the query +parameters for authentication, you use a varying combination of request elements to create the string to sign. For an +HTTP POST request, the POST policy in the request is the string you sign. For more information about computing string to +sign, follow links provided at the end of this section. + +For signing key, the diagram shows series of calculations, where result of each step you feed into the next step. The +final step is the signing key. + +Upon receiving an authenticated request, FrostFS S3 servers re-create the signature by using the authentication +information that is contained in the request. If the signatures match, FrostFS S3 processes your request; otherwise, the +request is rejected. + +##### Signature Calculations for the Authorization Header + +To calculate a signature, you first need a string to sign. You then calculate a HMAC-SHA256 hash of the string to sign +by using a signing key. The following diagram illustrates the process, including the various components of the string +that you create for signing. + +When FrostFS S3 receives an authenticated request, it computes the signature and then compares it with the signature +that you provided in the request. For that reason, you must compute the signature by using the same method that is used +by FrostFS S3. The process of putting a request in an agreed-upon form for signing is called canonicalization. + + + Signature Calculations for the Authorization Header + + +See detains in [AWS documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html). + +#### s3-gw + +s3-gw support the following ways to provide the singed request: + +* [HTTP Authorization header](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html) +* [Query string parameters](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html) +* [Browser-Based Uploads Using POST](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-UsingHTTPPOST.html) + +All these methods provide `AccessKeyId` and signature. Using `AccessKeyId` s3-gw can get `SecretAccessKey` +(see [data auth](#data-auth-process)) to compute signature using exactly the same mechanics +as [client does](#introduction-to-signing-requests). After signature calculation the s3-gw just compares signatures and +if they don't match the access denied is returned. + +### AccessBox + +`AccessBox` is an ordinary object in FrostFS storage. It contains all information that can be used by s3-gw to +successfully authenticate request. Also, it contains data that is required to successful authentication in FrostFS +storage node. + +Based on this object s3 credentials are formed: + +* `AccessKeyId` - is concatenated container id and object id (`0`) of `AccessBox` ( + e.g. `2XGRML5EW3LMHdf64W2DkBy1Nkuu4y4wGhUj44QjbXBi05ZNvs8WVwy1XTmSEkcVkydPKzCgtmR7U3zyLYTj3Snxf`) +* `SecretAccessKey` - hex-encoded random generated 32 bytes (that is encrypted and stored in object payload) + +> **Note**: sensitive info in `AccessBox` is [encrypted](#encryption), so only someone who posses specific private key +> can decrypt such info. + +`AccessBox` has the following structure: + + + AccessBox object structure + + +**Headers:** + +`AccessBox` object has the following attributes (at least them, it also can contain custom one): + +* `Timestamp` - unix timestamp when object was created +* `__SYSTEM__EXPIRATION_EPOCH` - epoch after which the object isn't available anymore +* `S3-CRDT-Versions-Add` - comma separated list of previous versions of `AccessBox` ( + see [AccessBox versions](#accessbox-versions)) +* `S3-Access-Box-CRDT-Name` - `AccessKeyId` of credentials to which current `AccessBox` is related ( + see [AccessBox versions](#accessbox-versions)) +* `FilePath` - just object name + +**Payload:** + +The `AccessBox` payload is an encoded [AccessBox protobuf type](../creds/accessbox/accessbox.proto) . +It contains: + +* Seed key - hex-encoded public seed key to compute shared secret using ECDH (see [encryption](#encryption)) +* List of gate data: + * Gate public key (so that gate (when it will decrypt data later) know which one item from list it should process) + * Encrypted tokens: + * `SecretAccessKey` - hex-encoded random generated 32 bytes + * Marshaled bearer token - more detail + in [spec](https://git.frostfs.info/TrueCloudLab/frostfs-api/src/commit/4c68d92468503b10282c8a92af83a56f170c8a3a/acl/types.proto#L189) + * Marshaled session token - more detail + in [spec](https://git.frostfs.info/TrueCloudLab/frostfs-api/src/commit/4c68d92468503b10282c8a92af83a56f170c8a3a/session/types.proto#L89) +* Container placement policies: + * `LocationsConstraint` - name of location constraint that can be used to create bucket/container using s3 + credentials related to this `AccessBox` + * Marshaled placement policy - more detail + in [spec](https://git.frostfs.info/TrueCloudLab/frostfs-api/src/commit/4c68d92468503b10282c8a92af83a56f170c8a3a/netmap/types.proto#L111) + +#### AccessBox versions + +Imagine the following scenario: + +* There is a system where only one s3-gw exist +* There is a `AccessBox` that can be used by this s3-gw +* User has s3 credentials (`AccessKeyId`/`SecretAccessKey`) related to corresponded `AccessBox` and can successfully + make request to s3-gw +* The system is expanded and new one s3-gw is added +* User must be able to use the credentials (that he has already had) to make request to new one s3-gw + +Since `AccessBox` object is immutable and `SecretAccessKey` is encrypted only for restricted list of keys (can be used +(decrypted) only by limited number of s3-gw) we have to create new `AccessBox` that has encrypted secrets for new list +of s3-gw and be related to initial s3 credentials (`AccessKeyId`/`SecretAccessKey`). Such relationship is done +by `S3-Access-Box-CRDT-Name`. + +##### Search algorithm + +To support scenario from previous section and find appropriate version of `AccessBox` (that contains more recent and +relevant data) the following sequence is used: + + + AccessBox search process + + +* Search all object whose attribute `S3-Access-Box-CRDT-Name` is equal to `AccessKeyId` (extract container id + from `AccessKeyId` that has format: `0`). +* Get metadata for these object using `HEAD` requests (not `Get` to reduce network traffic) +* Sort all these objects by creation epoch and object id +* Pick last object id (If no object is found then extract object id from `AccessKeyId` that has format: `0`. + We need to do this because versions of `AccessBox` can miss the `S3-Access-Box-CRDT-Name` attribute.) +* Get appropriate object from FrostFS storage +* Decrypt `AccessBox` (see [encryption](#encryption)) + +#### Encryption + +Each `AccessBox` contains sensitive information (`AccessSecretKey`, bearer/session tokens etc.) that must be protected +and available only to trusted parties (in our case it's a s3-gw). + +To encrypt/decrypt data the authenticated encryption with associated +data ([AEAD](https://en.wikipedia.org/wiki/Authenticated_encryption)) is used. The encryption algorithm +is [ChaCha20-Poly1305](https://en.wikipedia.org/wiki/ChaCha20-Poly1305) ([RFC](https://datatracker.ietf.org/doc/html/rfc7905)). + +Is the following algorithm the ECDSA keys (with curve implements NIST P-256 (FIPS 186-3, section D.2.3) also known as +secp256r1 or prime256v1) is used (unless otherwise stated). + +**Encryption:** + +* Create ephemeral key (`SeedKey`), it's need to generate shared secret +* Generate random 32-byte (that after hex-encoded be `SecretAccessKey`) or use existing secret access key + (if `AccessBox` is being updated rather than creating brand new) +* Generate shared secret as [ECDH](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman) +* Derive 32-byte key using shared secret from previous step with key derivation function based on + HMAC with SHA256 [HKDF](https://en.wikipedia.org/wiki/HKDF) +* Encrypt marshaled [Tokens](../creds/accessbox) using derived key + with [ChaCha20-Poly1305](https://en.wikipedia.org/wiki/ChaCha20-Poly1305) algorithm without additional data. + +**Decryption:** + +* Get public part of `SeedKey` from `AccessBox` +* Generate shared secret as follows: + * Make scalar curve multiplication of public part of `SeedKey` and private part of s3-gw key + * Use `X` part of multiplication (with zero padding at the beginning to fit 32-byte) +* Derive 32-byte key using shared secret from previous step with key derivation function based on + HMAC with SHA256 [HKDF](https://en.wikipedia.org/wiki/HKDF) +* Decrypt encrypted marshaled [Tokens](../creds/accessbox) using derived key + with [ChaCha20-Poly1305](https://en.wikipedia.org/wiki/ChaCha20-Poly1305) algorithm without additional data. + +### Policies + +The main repository that contains policy implementation is https://git.frostfs.info/TrueCloudLab/policy-engine. + +Policies can be stored locally (using [control api](#control-auth-process)) or in `policy` contract. When policies check +is performed the following algorithm is applied: + +* Check local policies: + * If any rule was matched return checking result. +* Check contract policies: + * If any rule was matched return checking result. + * If no rules were matched return `deny` status. + +To local and contract policies `deny first` scheme is applied. This means that if several rules were matched for +reqeust (with both statuses `allow` and `deny`) the resulting status be `deny`. + +Policy rules validate if specified request can be performed on the specific resource. Request and resource can contain +some properties and rules can contain conditions on some such properties. + +In s3-gw resource is `/bucket/object`, `/bucket` or just `/` (if request is trying to list buckets). +Currently, request that is checked contains the following properties (so policy rule can contain conditions on them): + +* `Owner` - address of owner that is performing request (this is taken from bearer token from `AccessBox`) +* `frostfsid:groupID` - groups to which the owner belongs (this is taken from `frostfsid` contract) + +## Control auth process + +There are control path [grpc api](../pkg/service/control/service.proto) in s3-gw that also has their own authentication +and authorization process. + +But this process is quite straight forward: + +* Get grpc request +* Check if signing key belongs to [allowed key list](configuration.md#control-section) (that is located in config file) +* Validate signature + +For signing process the asymmetric encryption based on elliptic curves (`ECDSA_SHA512`) is used. +For more details see the appropriate code +in [frostfs-api](https://git.frostfs.info/TrueCloudLab/frostfs-api/src/commit/4c68d92468503b10282c8a92af83a56f170c8a3a/refs/types.proto#L94) +and [frostfs-api-go](https://git.frostfs.info/TrueCloudLab/frostfs-api-go/src/commit/a85146250b312fcdd6da9a71285527fed544234f/refs/types.go#L38). diff --git a/docs/images/authentication/accessbox-object.puml b/docs/images/authentication/accessbox-object.puml new file mode 100644 index 00000000..d4bdb5da --- /dev/null +++ b/docs/images/authentication/accessbox-object.puml @@ -0,0 +1,44 @@ +@startuml + +package AccessBox { + map Tokens { + SecretKey => Private key + BearerToken => Encoded bearer token + SessionTokens => List of encoded session tokens + } + + map Gate { + GateKey => Encoded public gate key + Encrypted tokens *--> Tokens + } + + map ContainerPolicy { + LocationConstraint => Policy name + PlacementPolicy => Encoded placement policy + } + + map Box { + SeedKey => Encoded public seed key + List of Gates *--> Gate + List of container policies *--> ContainerPolicy + } + + + map ObjectAttributes { + Timestamp => 1710418478 + _~_SYSTEM_~_EXPIRATION_EPOCH => 10801 + S3-CRDT-Versions-Add => 5ZNvs8WVwy1XTmSEkcVkydPKzCgtmR7U3zyLYTj3Snxf,9bLtL1EsUpuSiqmHnqFf6RuT6x5QMLMNBqx7vCcCcNhy + S3-Access-Box-CRDT-Name => 2XGRML5EW3LMHdf64W2DkBy1Nkuu4y4wGhUj44QjbXBi05ZNvs8WVwy1XTmSEkcVkydPKzCgtmR7U3zyLYTj3Snxf + FilePath => 1710418478_access.box + } + + map FrostFSObject { + Header *-> ObjectAttributes + Payload *--> Box + } + + +} + + +@enduml \ No newline at end of file diff --git a/docs/images/authentication/accessbox-object.svg b/docs/images/authentication/accessbox-object.svg new file mode 100644 index 00000000..fe2f2efb --- /dev/null +++ b/docs/images/authentication/accessbox-object.svg @@ -0,0 +1,60 @@ +AccessBoxTokensSecretKeyPrivate keyBearerTokenEncoded bearer tokenSessionTokensList of encoded session tokensGateGateKeyEncoded public gate keyEncrypted tokensContainerPolicyLocationConstraintPolicy namePlacementPolicyEncoded placement policyBoxSeedKeyEncoded public seed keyList of GatesList of container policiesObjectAttributesTimestamp1710418478__SYSTEM__EXPIRATION_EPOCH10801S3-CRDT-Versions-Add5ZNvs8WVwy1XTmSEkcVkydPKzCgtmR7U3zyLYTj3Snxf,9bLtL1EsUpuSiqmHnqFf6RuT6x5QMLMNBqx7vCcCcNhyS3-Access-Box-CRDT-Name2XGRML5EW3LMHdf64W2DkBy1Nkuu4y4wGhUj44QjbXBi05ZNvs8WVwy1XTmSEkcVkydPKzCgtmR7U3zyLYTj3SnxfFilePath1710418478_access.boxFrostFSObjectHeaderPayload \ No newline at end of file diff --git a/docs/images/authentication/accessbox-search.puml b/docs/images/authentication/accessbox-search.puml new file mode 100644 index 00000000..44c7cc70 --- /dev/null +++ b/docs/images/authentication/accessbox-search.puml @@ -0,0 +1,29 @@ +@startuml + +User -> "S3-GW": AccessKey +"S3-GW" -> "FrostFS Node": Search objects + +note right +Search by exact attribute matching: +**S3-Access-Box-CRDT-Name:** //AccessKey// +end note + +"FrostFS Node" --> "S3-GW": AccessBox objects ids + +"S3-GW" -> "FrostFS Node" : Head AccessBox objects +"FrostFS Node" --> "S3-GW": AccessBox object headers + +"S3-GW" -> "S3-GW": Choose latest AccessBox + +note left +Sort AccessBox headers by creation epoch +and then by ObjectID +Pick last +end note + +"S3-GW" -> "FrostFS Node" : Get AccessBox object +"FrostFS Node" --> "S3-GW": AccessBox object + +"S3-GW" -> "S3-GW": Decrypt and validate AccessBox + +@enduml \ No newline at end of file diff --git a/docs/images/authentication/accessbox-search.svg b/docs/images/authentication/accessbox-search.svg new file mode 100644 index 00000000..2152435a --- /dev/null +++ b/docs/images/authentication/accessbox-search.svg @@ -0,0 +1,39 @@ +UserUserS3-GWS3-GWFrostFS NodeFrostFS NodeAccessKeySearch objectsSearch by exact attribute matching:S3-Access-Box-CRDT-Name: AccessKeyAccessBox objects idsHead AccessBox objectsAccessBox object headersChoose latest AccessBoxSort AccessBox headers by creation epochand then by ObjectIDPick lastGet AccessBox objectAccessBox objectDecrypt and validate AccessBox \ No newline at end of file diff --git a/docs/images/authentication/auth-header-signing.png b/docs/images/authentication/auth-header-signing.png new file mode 100644 index 0000000000000000000000000000000000000000..1a6e59f3ad101fedb62d923beef146718f0ec8bd GIT binary patch literal 136397 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 E12$ANcK`qY literal 0 HcmV?d00001 diff --git a/docs/images/authentication/auth-overview.puml b/docs/images/authentication/auth-overview.puml new file mode 100644 index 00000000..41e58985 --- /dev/null +++ b/docs/images/authentication/auth-overview.puml @@ -0,0 +1,25 @@ +@startuml +!include +AddElementTag("smart-contract", $bgColor=#0abab5) + +Person(user, "User", "User with or without credentials") + +System_Boundary(c1, "FrostFS") { + Container(s3, "S3 Gateway", $descr="AWS S3 compatible gate") + Container(stor, "FrostFS Storage", $descr="Storage service") +} + +System_Boundary(c3, "Blockchain") { + Interface "NeoGo" + Container(ffsid, "FrostFS ID", $tags="smart-contract", $descr="Stores namespaces and users") + Container(policy, "Policy", $tags="smart-contract", $descr="Stores APE rules") +} + +Rel_R(user, s3, "Requests", "HTTP") +Rel_R(s3, stor, "Get data to validate request, store objects") +Rel_D(s3, NeoGo, "Get data to validate request") +Rel("NeoGo", ffsid, "Fetch users") +Rel("NeoGo", policy, "Fetch policies") + +SHOW_LEGEND(true) +@enduml \ No newline at end of file diff --git a/docs/images/authentication/auth-overview.svg b/docs/images/authentication/auth-overview.svg new file mode 100644 index 00000000..6a429f78 --- /dev/null +++ b/docs/images/authentication/auth-overview.svg @@ -0,0 +1,611 @@ +FrostFS[System]Blockchain[System]S3 Gateway[] AWS S3 compatible gateFrostFS Storage[] Storage serviceNeoGoFrostFS ID[] Stores namespaces andusersPolicy[] Stores APE rulesUser User with or withoutcredentialsRequests[HTTP]Get data to validaterequest, store objectsGet data to validaterequestFetch usersFetch policiesLegend  person  container  smart-contract (no text color)  \ No newline at end of file diff --git a/docs/images/authentication/auth-sequence.puml b/docs/images/authentication/auth-sequence.puml new file mode 100644 index 00000000..e0414745 --- /dev/null +++ b/docs/images/authentication/auth-sequence.puml @@ -0,0 +1,60 @@ +@startuml + +participant User +participant "S3-GW" +collections "FrostFS Storage" + +User -> "S3-GW": Request + +group signed request + + "S3-GW" -> "FrostFS Storage": Find Access Box + "FrostFS Storage" -> "FrostFS Storage": Check request + + alt #pink Check failure + "FrostFS Storage" -->> "S3-GW": Access Denied + "S3-GW" -->> User: Access Denied + end + + "FrostFS Storage" -->> "S3-GW": Access Box + "S3-GW" -> "S3-GW": Check sign + + alt #pink Check failure + "S3-GW" -->> User: Access Denied + end + + "S3-GW" -> "frostfsid contract": Find user + "frostfsid contract" -->> "S3-GW": User info + "S3-GW" -> "S3-GW": Check user info + + alt #pink Check failure + "S3-GW" -->> User: Access Denied + end + +end + +"S3-GW" -> "policy contract": Get policies +"policy contract" -->> "S3-GW": Policies +"S3-GW" -> "S3-GW": Check policy + +alt #pink Check failure + "S3-GW" -->> User: Access Denied +end + +"S3-GW" -> "FrostFS Storage": User Request +"FrostFS Storage" -> "FrostFS Storage": Check request + +alt #pink Check failure + "FrostFS Storage" -->> "S3-GW": Access Denied + "S3-GW" -->> User: Access Denied +end + +"FrostFS Storage" -->> "S3-GW": Response +"S3-GW" -->> User: Response + +box "Neo Go" + participant "frostfsid contract" + participant "policy contract" +end box + +@enduml \ No newline at end of file diff --git a/docs/images/authentication/auth-sequence.svg b/docs/images/authentication/auth-sequence.svg new file mode 100644 index 00000000..10c2f15a --- /dev/null +++ b/docs/images/authentication/auth-sequence.svg @@ -0,0 +1,70 @@ +Neo GoUserUserS3-GWS3-GWFrostFS StorageFrostFS Storagefrostfsid contractfrostfsid contractpolicy contractpolicy contractRequestsigned requestFind Access BoxCheck requestalt[Check failure]Access DeniedAccess DeniedAccess BoxCheck signalt[Check failure]Access DeniedFind userUser infoCheck user infoalt[Check failure]Access DeniedGet policiesPoliciesCheck policyalt[Check failure]Access DeniedUser RequestCheck requestalt[Check failure]Access DeniedAccess DeniedResponseResponse \ No newline at end of file diff --git a/docs/images/authentication/aws-signing.png b/docs/images/authentication/aws-signing.png new file mode 100644 index 0000000000000000000000000000000000000000..d7caa7f75fea266be62af28bf14fcfaa1616ab6a GIT binary patch literal 35391 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 literal 0 HcmV?d00001