From 0aec4e39a5e87adfbf631dee9780e4d16f14e1dd Mon Sep 17 00:00:00 2001
From: Hugo <hnouts@grandlyon.com>
Date: Wed, 29 Jul 2020 17:33:32 +0200
Subject: [PATCH] update proxy

---
 docs/proxy/description.md         |  41 +++++++++++++++++++-----------
 docs/proxy/enedis-auth-params.png | Bin 0 -> 29465 bytes
 2 files changed, 26 insertions(+), 15 deletions(-)
 create mode 100644 docs/proxy/enedis-auth-params.png

diff --git a/docs/proxy/description.md b/docs/proxy/description.md
index db12c53..7a7caae 100644
--- a/docs/proxy/description.md
+++ b/docs/proxy/description.md
@@ -1,17 +1,17 @@
 !!! warning ""
     :construction: Section under Construction :construction:
 
-This section of documentation refers to the Enedis Oauth protocol working hand in hand with our custom proxy and the cozy-stack.
-To fully understand its whereabouts, you should also look at the [enedis konnector](./konnectors/enedis.md) documentation.
+This section of documentation refers to the Oauth protocols working hand in hand with our custom proxy and the cozy-stack.
+To fully understand its whereabouts, you should also look at the [enedis konnector](../konnectors/enedis.md) and [grdf konnector](../konnectors/grdf.md) documentation.
 
 !!! info "proxy code source"
     Feel free to check the proxy [code](https://forge.grandlyon.com/pocs/cozy/cozy-oauth-proxy) at all time when reading this documentation.
 
 ## Oauth Dance
 
-In order to access customer data from Ecolyo, one must first obtain customer authorization. This authorization is materialized by an access token and it must be obtained by the Authorization API exposed by Enedis.
+In order for Ecolyo to access customer data, one must first obtain customer authorization. This authorization is materialized by an access token and it must be obtained by the APIs exposed by each energy providers.
 
-The API is implemented on Oauth 2.0 protocol, it requires authentication from the customer along with its given consent.
+These APIs implement Oauth 2.0 protocol, it requires authentication from the customer along with its given consent.
 
 ### Enedis Data Connect
 
@@ -30,7 +30,7 @@ Regarding Enedis, two endpoints are exposed:
   </colgroup>
   <thead>
     <tr class="header">
-      <th>Name</th>
+      <th>Paramater</th>
       <th>Description</th>
     </tr>
   </thead>
@@ -66,7 +66,7 @@ Regarding Enedis, two endpoints are exposed:
   </colgroup>
   <thead>
     <tr class="header">
-      <th>Name</th>
+      <th>Paramater</th>
       <th>Description</th>
     </tr>
   </thead>
@@ -106,6 +106,8 @@ On success, response will contain **access_token** or **refresh_token**, **usage
 
 ### Grdf Adict
 
+#### /access_token
+
 ### Cozy Oauth Protocol
 
 !!! info "cozy oauth flow documentation" 
@@ -113,10 +115,10 @@ On success, response will contain **access_token** or **refresh_token**, **usage
 
 #### Couchdb
 
-It is necessary to add in a couchdb database all informations needed for the konnector authentication to work properly.
+The couchdb database must hold all informations needed for the konnector authentication to work properly.
 
 Auth informations are stored in the **secrets/io-cozy-account_types** database.
-You can create manually the document by entering these parameters:
+You can create manually the document by entering these parameters for each konnector:
 
 <table>
   <colgroup>
@@ -186,13 +188,13 @@ Exemple:
 
 #### Result
 
-With that in mind, the proxy is now the one calling the auth and token endpoints. It's also the proxy that is registered as redirect_uri.
+With that in mind, the proxy is now the one calling the auth and token provider endpoints. The instance name will be contained in redirect_uri, the stack will insert this parameters by itself in the /auth call.
 
 3 endpoints are created in the proxy:
 
-- One for the auth (called by the cozy-stack)
-- One for the token (also called by the cozy-stack)
-- One for the redirect_uri (called by the service provider)
+- One for the auth
+- One for the token
+- One for the redirect
 
 #### Proxy flow
 
@@ -210,11 +212,17 @@ It is composed of three endpoints as seen above. The first endpoint to be called
 
 #### auth
 
-Originally called from a cozy-stack trying to setup its konnector. The proxy gets this informations from the query:
+Originally called from a cozy-stack trying to setup its konnector. The proxy gets these informations from the query:
 
-- clientId
+- client_id
+- duration
+- redirect_uri (auto inserted by the cozy-stack, except if you specify **skip_redirect_uri:true** in the couchdb)
+- response_type
 - state (as it was conceived by the cozy-stack)
-- redirect_uri (**will be used later to trace back the stack**)
+
+![auth_params](enedis-auth-params.png)
+
+The state will be merged with the instance name, then decomposed again when reaching /redirect. This way the proxy is able to keep track of the cozy instance originally calling.
 
 With all these informations, the proxy can contact the provider **/auth** endpoint to start the oauth dance.
 
@@ -240,6 +248,9 @@ Split the customed state that was modified in the **/auth** process. From this s
 
 Finally redirect all these parameters in a query to the cozy-stack (the cozy-stack which is still waiting for an answer from its /auth call).
 
+!!! warning "state / instance"
+    The state must be recovered without the instance name, otherwise the cozy-stack won't recognized it and the handshake will fail.
+
 #### token
 
 Gathering from query or parameters all params.
diff --git a/docs/proxy/enedis-auth-params.png b/docs/proxy/enedis-auth-params.png
new file mode 100644
index 0000000000000000000000000000000000000000..829d96e5eb9e0daac815eec8b1d68acb39120c76
GIT binary patch
literal 29465
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

literal 0
HcmV?d00001

-- 
GitLab