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
PKCE, in accordance with OAuth and OIDC best practices. It is also assumed that there are no
122
118
preexisting trust relationships with the OP. This means that client registration, whether dynamic,
123
119
or static, is entirely optional.
124
120
@@ -296,9 +292,9 @@ Solid-OIDC defines the following `scope` value for use with claim requests:
296
292
297
293
# Issuer Validation after receiving the Authorization Code # {#iss-check}
298
294
299
-
In accordance with Best Current Practice [[RFC9700]],
300
-
defense against [Mix-Up Attacks](https://www.rfc-editor.org/rfc/rfc9700.html#section-4.4)
301
-
is required in Solid-OIDC as clients are expected to interact with more than one OP.
295
+
In accordance with Best Current Practice [[RFC9700]],
296
+
defense against [Mix-Up Attacks](https://www.rfc-editor.org/rfc/rfc9700.html#section-4.4)
297
+
is required in Solid-OIDC as clients are expected to interact with more than one OP.
302
298
To this end, this specification adopts the mechanism defined in [[!RFC9207]].
303
299
304
300
The OP MUST include the `iss` query parameter alongside the authorization code when redirecting the user agent back to the Client's redirect_uri.
@@ -321,31 +317,13 @@ Upon receiving the authorization response, the Client MUST validate the `iss` pa
321
317
If the `iss` parameter is missing or does not match the expected value, the Client MUST reject the response, MUST NOT exchange the authorization code for tokens, and SHOULD signal an error to the user.
322
318
323
319
324
-
# Client Credentials Grant # {#client-credentials}
325
-
326
-
Authorization Servers MUST support the OAuth 2.0 Client Credentials Grant [[!RFC6749]] (Section 4.4)
327
-
to enable non-interactive authentication for scripts, automated agents, and server-to-server
328
-
communication.
329
-
330
-
When using the Client Credentials Grant, the Client authenticates with the OP using a
331
-
`client_id` and `client_secret` pair previously obtained through client registration
332
-
(either static or dynamic). The Client sends a token request to the OP's token endpoint
333
-
with `grant_type=client_credentials` and the `webid` scope.
334
-
335
-
The OP MUST validate the `client_id` and `client_secret`, and if valid, MUST return
336
-
a DPoP-bound OIDC ID Token. The Client MUST include a valid DPoP proof [[!DPOP]]
337
-
with the token request.
338
-
339
-
The OP MUST advertise `client_credentials` in its `grant_types_supported`
340
-
metadata property in its OpenID Connect Discovery 1.0 [[!OIDC-DISCOVERY]] document.
341
-
342
320
# Token Instantiation # {#tokens}
343
321
344
322
Assuming one of the following options
345
-
- Client ID and Secret, and valid DPoP Proof, using either the Authorization Code Grant or the Client Credentials Grant
323
+
- Client ID and Secret, and valid DPoP Proof (for dynamic and static registration)
346
324
- Dereferencable Client Identifier with a proper Client ID Document and valid DPoP Proof (for a Solid client identifier)
347
325
348
-
the OP MUST return a DPoP-bound OIDC ID Token.
326
+
the OP MUST return A DPoP-bound OIDC ID Token.
349
327
350
328
## DPoP-bound OIDC ID Token ## {#tokens-id}
351
329
@@ -452,14 +430,45 @@ requested resource.
452
430
An OpenID Provider that conforms to the Solid-OIDC specification MUST advertise it in the OpenID Connect
453
431
Discovery 1.0 [[!OIDC-DISCOVERY]] resource by including `webid` in its `scopes_supported` metadata property.
454
432
455
-
Additionally, the OP MUST include `client_credentials` in its `grant_types_supported`
456
-
metadata property to indicate support for non-interactive authentication
457
-
via the Client Credentials Grant (see [[#client-credentials]]).
0 commit comments