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
Copy file name to clipboardExpand all lines: input/pagecontent/technical-user-authentication.md
+24-9Lines changed: 24 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,23 @@
1
1
The OIDC/SOLID-OIDC specification defines how owners of the pods need to authenticate towards an IDP and how resource servers can verify the identity of pod owners based on that authentication.
2
2
The SOLID-OIDC flow is described in detail [here](https://solidproject.org/TR/oidc-primer#solid-oidc-flow)
3
3
4
-
For the Welldata implementation we filled in the correct endpoints for our ACC environment.
4
+
All applications who are registered in the We Are IDP, can make use of the HTI token flow. The flow is show below:
All applications are first directed to the We Are login flow. There the user needs to choose a valid IDP. For now supported are ACM/IDM and NUTS via Microsoft Authenticator.
9
+
When selecting an IDP the user is directed to either the NUTS OIDC flow or ACM/IDM Solid OIDC flow. Upon authentication a token will be generated and provided to the We Are Platform.
10
+
There the token will be unpacked and the webId will be extracted and a new token is created: the HTI-token. This token contains the webId in the sub, which is the necessary information that the application (Welldata/Zipster/Selfcare/GG) needs to start the Access Request flow to acces the pod of the user.
11
+
12
+
We describe the complete flow with as example the Welldata application:
5
13
6
14
{::nomarkdown}
7
15
{% include solid-oidc.svg %}
8
16
{:/}
9
17
10
18
### User initiates login
11
19
12
-
The Solid OIDC flow is initiated by the user, triggering a login action on the Welldata Frontend application
20
+
The We Are login flow is initiated by the user, triggering a login action on the Welldata Frontend application
13
21
14
22
### Calling backend
15
23
@@ -19,15 +27,19 @@ In the call from the frontend to the backend the redirect url should be passed t
19
27
https://<backend>/login?redirectUrl=<front end redirecturl>
20
28
```
21
29
22
-
### Redirect to IDP
30
+
### Redirect to We Are
23
31
24
-
The backend initiates a redirect of the user to the IDP which can authenticate the user:
32
+
The backend initiates a redirect of the user to We Are and We Are will then redirect the user to the IDP which can authenticate the user:
25
33
26
34
```
35
+
redirect GET https://we-are-acc.vito.be/nl/hti/launch?client_id=&redirect_uri=
The parameters for the HTI flow passed to We Are are:
39
+
- client_id: Identifies the client application that wants to start the We Are login flow. This client needs to be registered in the We Are IDP.
40
+
- redirect_uri: the redirect URI to which the users needs to be redirected back upon completion of authentication.
29
41
30
-
The folowing parameters are passed in the call
42
+
Next We Are will forward the user to the authentication endpoint of the IDP passing the following parameters:
31
43
32
44
- client_id: Identifies the client application that is making the request. This is assigned by the identity provider (in this case, authenticatie-ti.vlaanderen.be).
33
45
- scope: Specifies the access rights the application is requesting. In this case:
@@ -50,7 +62,7 @@ In the next 2 steps the user is prompted to authenticate himself using credentia
50
62
51
63
### Authorization code is exchanged with the backend
52
64
53
-
After authentication the user is redirected with a call to the Welldata backend.
65
+
After authentication the user is redirected with a call to the We Are backend.
54
66
```
55
67
https://<backend>/oidc-redirect?code=<>&state=<>
56
68
```
@@ -79,16 +91,19 @@ The following parameters in the body are required for this call:
79
91
80
92
The IDP broker will now return the access token and id token of the user and the user is logged in.
81
93
94
+
### We Are creates the HTI token and passes it to the Welldata application
95
+
96
+
Next step the HTI token is created with the corresponding webId in the sub of the HTI token. The token is then passed via a post to the Welldata application and directs the user back to the redirect URL of Welldata.
82
97
83
98
### Example implementation in We Are Demo Application
84
99
85
-
The We Are consortium developed a demo application showcasing all the different steps necessary to read, write and share resources in a pod.
100
+
The We Are consortium developed a demo application showcasing all the different steps necessary to read, write and share resources in a pod.
86
101
87
-
Starting an authentication flow from the frontend application is explained in the Authentication part of the front end demo application, which can be found [here](https://github.com/VITObelgium/We-Are-Demo-Front-End).
102
+
Starting an authentication flow from the frontend application is explained in the Authentication part of the front end demo application, which can be found [here](https://github.com/VITObelgium/We-Are-Demo-Front-End).
88
103
89
104
This angular front end app will then redirect the user to `login`endpoint of the [We Are Backend application](https://github.com/VITObelgium/We-Are-Demo-Back-End). In order to successfully start the login flow, the right environment variables need to be set on the backend application:
0 commit comments