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
<td>Alice's finds an [=Application=] called Projectron that she'd like
15
+
to use to manage her Projects and Tasks.</td>
16
+
</tr>
17
+
<tr>
18
+
<td><b>2</b></td>
19
+
<td>Alice provides her [=WebID=] to Projectron</td>
20
+
</tr>
21
+
<tr>
22
+
<td><b>3</b></td>
23
+
<td>Projectron dereferences her [=WebID=] and retrieves her IdP and [=Authorization Agent=] from her [=Identity Profile Document=]</td>
24
+
</tr>
25
+
<tr>
26
+
<td><b>4</b></td>
27
+
<td>Projectron [[#agent-registration-discovery|asks]] Alice's [=Authorization Agent=] if Alice already has an [=Application Registration=] for Projectron</td>
28
+
</tr>
29
+
<tr>
30
+
<td><b>5</b></td>
31
+
<td>Projectron receives a <code>401 Not Authorized</code> because Alice / Projectron needs to authenticate first</td>
32
+
</tr>
33
+
<tr>
34
+
<td><b>6</b></td>
35
+
<td>Projectron initiates a [[SOLID-OIDC]] flow with Alice's Identity Provider and receives a DPOP-bound Access Token and Proof</td>
36
+
</tr>
37
+
<tr>
38
+
<td><b>7</b></td>
39
+
<td>Now authenticated, Projectron [[#agent-registration-discovery|asks]] Alice's [=Authorization Agent=] again for a Projectron [=Application Registration=]</td>
40
+
</tr>
41
+
<tr>
42
+
<td><b>8</b></td>
43
+
<td>Alice's [=Authorization Agent=] checks the [=Agent Registry=] in Alice's Pod for a Projectron [=Application Registration=]</td>
44
+
</tr>
45
+
<tr>
46
+
<td><b>9</b></td>
47
+
<td>No [=Application Registration=] for Projectron is found.
48
+
Projectron now knows that Alice hasn't given it permission to access her data, so it must ask.</td>
49
+
</tr>
50
+
<tr>
51
+
<td><b>10</b></td>
52
+
<td>Projectron redirects Alice to her [=Authorization Agent=], supplying its [=identity=] for context</td>
53
+
</tr>
54
+
<tr>
55
+
<td><b>11</b></td>
56
+
<td>Alice's [=Authorization Agent=] dereferences the supplied Projectron [=identity=], retrieving Projection's
57
+
[=Application=] profile graph and corresponding [=Access Need Groups=] from the [=Identity Profile Document=],
58
+
as well as <code>hasAuthorizationCallbackEndpoint</code></td>
59
+
</tr>
60
+
<tr>
61
+
<td><b>12</b></td>
62
+
<td>Alice's [=Authorization Agent=] presents the [=Access Need Groups=] from Projectron's [=Application=]
63
+
profile graph, so that Alice understands what kind of data is being requested, and why.</td>
64
+
</tr>
65
+
<tr>
66
+
<td><b>13</b></td>
67
+
<td>Alice's chooses the [[#access-scopes|scope of access]] that Projectron will receive to the data it has
68
+
asked for access to via the presented [=Access Needs=].</td>
69
+
</tr>
70
+
<tr>
71
+
<td><b>14-16</b></td>
72
+
<td>Alice's [=Authorization Agent=] records her decision as an [=Access Authorization=] in Alice's
73
+
[=Authorization Registry=]. An [=Application Registration=] is created for Projectron in
74
+
Alice's [=Agent Registry=]. An [=Access Grant=] and corresponding [=Data Grants=] are generated
75
+
from the [=Access Authorization=] and stored in the Projectron [=Application Registration=].
76
+
</tr>
77
+
<tr>
78
+
<td><b>17</b></td>
79
+
<td>Alice's [=Authorization Agent=] redirects her back to Projectron now that the appropriate access has been granted</td>
80
+
</tr>
81
+
<tr>
82
+
<td><b>18</b></td>
83
+
<td>Projectron [[#agent-registration-discovery|asks]] Alice's [=Authorization Agent=] again for a Projectron [=Application Registration=]</td>
84
+
</tr>
85
+
<tr>
86
+
<td><b>19</b></td>
87
+
<td>Alice's [=Authorization Agent=] finds the newly created Projectron [=Application Registration=] in the [=Agent Registry=] in Alice's Pod</td>
88
+
</tr>
89
+
<tr>
90
+
<td><b>20</b></td>
91
+
<td>Alice's [=Authorization Agent=][[#agent-registration-discovery|provides]] the URI of the [=Application Registration=] to Projectron</td>
92
+
</tr>
93
+
<tr>
94
+
<td><b>21</b></td>
95
+
<td>Projectron learns what access it received through the [=Access Grant=] in Alice's Projectron [=Application Registration=]</td>
96
+
</tr>
97
+
<tr>
98
+
<td><b>22</b></td>
99
+
<td>Projectron may now function as intended, within the scope of authorization it was given by Alice.</td>
@@ -64,114 +64,6 @@ Slight variations concerning where [=Access Needs=] are sourced from, and
64
64
how notification of access is provided, are the only differences from
65
65
one flow to another.
66
66
67
-
<figure>
68
-
<table class="data tree" align="left">
69
-
<col>
70
-
<col>
71
-
<thead>
72
-
<tr>
73
-
<th>Step</th>
74
-
<th>Description</th>
75
-
</tr>
76
-
</thead>
77
-
<tbody>
78
-
<tr>
79
-
<td><b>1</b></td>
80
-
<td>Alice's finds an [=Application=] called Projectron that she'd like
81
-
to use to manage her Projects and Tasks.</td>
82
-
</tr>
83
-
<tr>
84
-
<td><b>2</b></td>
85
-
<td>Alice provides her [=WebID=] to Projectron</td>
86
-
</tr>
87
-
<tr>
88
-
<td><b>3</b></td>
89
-
<td>Projectron dereferences her [=WebID=] and retrieves her IdP and [=Authorization Agent=] from her [=Identity Profile Document=]</td>
90
-
</tr>
91
-
<tr>
92
-
<td><b>4</b></td>
93
-
<td>Projectron [[#agent-registration-discovery|asks]] Alice's [=Authorization Agent=] if Alice already has an [=Application Registration=] for Projectron</td>
94
-
</tr>
95
-
<tr>
96
-
<td><b>5</b></td>
97
-
<td>Projectron receives a `401 Not Authorized`, because Alice / Projectron needs to authenticate first</td>
98
-
</tr>
99
-
<tr>
100
-
<td><b>6</b></td>
101
-
<td>Projectron initiates a [[SOLID-OIDC]] flow with Alice's Identity Provider and receives a DPOP-bound Access Token and Proof</td>
102
-
</tr>
103
-
<tr>
104
-
<td><b>7</b></td>
105
-
<td>Now authenticated, Projectron [[#agent-registration-discovery|asks]] Alice's [=Authorization Agent=] again for a Projectron [=Application Registration=]</td>
106
-
</tr>
107
-
<tr>
108
-
<td><b>8</b></td>
109
-
<td>Alice's [=Authorization Agent=] checks the [=Agent Registry=] in Alice's Pod for a Projectron [=Application Registration=]</td>
110
-
</tr>
111
-
<tr>
112
-
<td><b>9</b></td>
113
-
<td>No [=Application Registration=] for Projectron is found.
114
-
Projectron now knows that Alice hasn't given it permission to access her data, so it must ask.</td>
115
-
</tr>
116
-
<tr>
117
-
<td><b>10</b></td>
118
-
<td>Projectron redirects Alice to her [=Authorization Agent=], supplying its [=identity=] for context</td>
119
-
</tr>
120
-
<tr>
121
-
<td><b>11</b></td>
122
-
<td>Alice's [=Authorization Agent=] dereferences the supplied Projectron [=identity=], retrieving Projection's
123
-
[=Application=] profile graph and corresponding [=Access Need Groups=] from the [=Identity Profile Document=],
124
-
as well as <code>redirect_uri</code></td>
125
-
</tr>
126
-
<tr>
127
-
<td><b>12</b></td>
128
-
<td>Alice's [=Authorization Agent=] presents the [=Access Need Groups=] from Projectron's [=Application=]
129
-
profile graph, so that Alice understands what kind of data is being requested, and why.</td>
130
-
</tr>
131
-
<tr>
132
-
<td><b>13</b></td>
133
-
<td>Alice's chooses the [[#access-scopes|scope of access]] that Projectron will receive to the data it has
134
-
asked for access to via the presented [=Access Needs=].</td>
135
-
</tr>
136
-
<tr>
137
-
<td><b>14-16</b></td>
138
-
<td>Alice's [=Authorization Agent=] records her decision as an [=Access Authorization=] in Alice's
139
-
[=Authorization Registry=]. An [=Application Registration=] is created for Projectron in
140
-
Alice's [=Agent Registry=]. An [=Access Grant=] and corresponding [=Data Grants=] are generated
141
-
from the [=Access Authorization=] and stored in the Projectron [=Application Registration=].
142
-
</tr>
143
-
<tr>
144
-
<td><b>17</b></td>
145
-
<td>Alice's [=Authorization Agent=] redirects her back to Projectron now that the appropriate access has been granted</td>
146
-
</tr>
147
-
<tr>
148
-
<td><b>18</b></td>
149
-
<td>Projectron [[#agent-registration-discovery|asks]] Alice's [=Authorization Agent=] again for a Projectron [=Application Registration=]</td>
150
-
</tr>
151
-
<tr>
152
-
<td><b>19</b></td>
153
-
<td>Alice's [=Authorization Agent=] finds the newly created Projectron [=Application Registration=] in the [=Agent Registry=] in Alice's Pod</td>
154
-
</tr>
155
-
<tr>
156
-
<td><b>20</b></td>
157
-
<td>Alice's [=Authorization Agent=][[#agent-registration-discovery|provides]] the URI of the [=Application Registration=] to Projectron</td>
158
-
</tr>
159
-
<tr>
160
-
<td><b>21</b></td>
161
-
<td>Projectron learns what access it received through the [=Access Grant=] in Alice's Projectron [=Application Registration=]</td>
162
-
</tr>
163
-
<tr>
164
-
<td><b>22</b></td>
165
-
<td>Projectron may now function as intended, within the scope of authorization it was given by Alice.</td>
0 commit comments