Skip to content

Commit 477a6fd

Browse files
committed
Token refresh, minor fixes
1 parent 168d930 commit 477a6fd

File tree

1 file changed

+23
-13
lines changed

1 file changed

+23
-13
lines changed

openid-connect-key-binding-1_0.md

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ Following is a non-normative example of an authentication request using the auth
147147
```text
148148
GET /authorize?
149149
response_type=code
150-
&dpop_jkt=1f2e6338febe335e2cbaa7c7154c3cbdcfd8650f95c5fe7206bb6360e37f4b5a
150+
&dpop_jkt=dnfb1T9jil_gOhti60baHs_WD_a4D8JN9VDJXbmBmGw
151151
&scope=openid%20profile%20email%20bound_key
152152
&client_id=s6BhdRkqt3
153153
&state=af0ifjsldkj
@@ -202,12 +202,15 @@ POST /token HTTP/1.1
202202
Host: server.example.com
203203
Content-Type: application/x-www-form-urlencoded
204204
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
205-
DPoP: eyJhbGciOiJFUzI1NiJ9.eyJ0eXAiOiJkcG9wK2p3dCIsImFsZyI6IkV\
206-
TMjU2IiwiandrIjp7ImNydiI6IlAtMjU2Iiwia3R5IjoiRUMiLCJ4IjoibWptR\
207-
m1MZm9wVmkwZXRfYTZmZFhUTnJqYVUwR1dlZFN0Y3NfRzU4OEkyMCIsInkiOiJ\
208-
sMFZwRXlSYzdTdUpfdHFhd2NaQ2VLLXVUOEVPVnF4N3NqTHJGeUJTUllZIn0sI\
209-
m5vbmNlIjoiU3BseGxPQmVaUVFZYllTNld4U2JJQSJ9.cp8uN3kHAMS9fhGH7T\
210-
vTSKwH5oNJzAeMhIrgD_HQHGhgt_N1xQHdHiMkn7AMj3UDkwoNOW4Qqak
205+
DPoP: eyJhbGciOiJFUzI1NiIsImp3ayI6eyJjcnYiOiJQLTI1NiIsImt0eSI6\
206+
IkVDIiwieCI6InVrcHYzZlU2dHFRS2FVd2NkQkFRb0szSUh2SklXX185eU5kMW\
207+
9SN3F2WmMiLCJ5IjoibkJCeFhyeDBOeml3Z19ldmZVTVVVZ25HS0tVZjJBVHBX\
208+
RzlFb2puVW9VNCJ9LCJ0eXAiOiJkcG9wK2p3dCJ9.eyJjX2hhc2giOiJvMXVCc\
209+
DllU2UzRHNtU2NOMGpZcmlGZ0tLRmRLLUJMeXdDOVdScFY1R0c4IiwiaHRtIjo\
210+
iUE9TVCIsImh0dSI6Imh0dHBzOi8vb3AuZXhhbXBsZS5jb20vdG9rZW4iLCJpY\
211+
XQiOjE3NjE5Mzc0NDksImp0aSI6IklRUzV0WVAtYnBCUHRKc29yVDR6N2cifQ.\
212+
DTmxAVAFbq5r7cRAyZ_2bXMoVR5pzGdlTA8Gh12_5dDMnzXxnw-3nVbm4UYZzR\
213+
kdMdW6U2P_OM_VIZD8vhrMcA
211214
grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA
212215
&redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
213216
```
@@ -217,6 +220,7 @@ If a DPoP header is included in the token request to the OP, and the `dpop_jkt`
217220
> This prevents an existing deployment using DPoP for access token from having them included in ID Tokens accidentally.
218221
219222
The OP MUST:
223+
220224
- perform all verification steps as described in [@!RFC9449] section 5.
221225
- calculate the `c_hash` from the authorization `code` just as the RP component did.
222226
- confirm the `c_hash` in the DPoP JWT matches its calculated `c_hash`
@@ -241,37 +245,43 @@ Non-normative example of the ID Token payload:
241245
"alg":"ES256",
242246
"crv": "P-256",
243247
"kty": "EC",
244-
"x": "mjmFmLfopVi0et_a6fdXTNrjaU0GWedStcs_G588I20",
245-
"y": "l0VpEyRc7SuJ_tqawcZCeK-uT8EOVqx7sjLrFyBSRYY"
248+
"x": "ukpv3fU6tqQKaUwcdBAQoK3IHvJIW__9yNd1oR7qvZc",
249+
"y": "nBBxXrx0Nziwg_evfUMUUgnGKKUf2ATpWG9EojnUoU4"
246250
}
247251
}
248252
}
249253
```
250254

255+
## Refresh Request
256+
257+
If a Refresh Token was returned in the Token Response, the RP may make Refresh Requests to the OP as defined in [@!OpenID.Core] 12.
258+
If an ID Token is returned as a result of a token refresh request, an additional requirement applies:
259+
260+
- its `cnf` claim MUST be the same as in the ID Token issued when the original authentication occurred.
261+
251262
## ID Token Proof of Possession
252263

253264
The mechanism for how an RP authenticating component proves to an RP consuming component that it possesses the private keys associated with the `cnf` claim in the ID Token is out of scope of this document.
254265

255-
> If the WG wants to, we can also profile how to use KB to bind a proof of possession to an ID Token for presentation when a proof of possesion is not present.
266+
> If the WG wants to, we can also profile how to use KB to bind a proof of possession to an ID Token for presentation when a proof of possession is not present.
256267
257268
# Privacy Considerations
258269

259270
An RP authenticating component SHOULD only share an ID Token with a consuming component when such sharing is consistent with the original purpose for which the PII was collected and the scope of consent obtained from the user.
260271

261272
# Security Considerations
262273

263-
## Require Proof of Possesion
274+
## Require Proof of Possession
264275

265276
An RP consuming component MUST NOT trust an ID Token with a `cnf` claim without a corresponding proof of possession from the RP authenticating component.
266277

267278
## ID Token Reverification
268279

269280
In addition to verifying the signature created by the RP authenticating component to prove possession of the private key associated with the `cnf` claim in the ID Token, an RP consuming component MUST independently verify the signature and validity of the ID Token and that the `aud` claim in the payload is the correct value, and that the `typ` claim in the protected header is `id_token+cnf`.
270281

271-
272282
## Use as Access Token
273283

274-
The ID Token MUST NOT be used as an access token to access resources. The RP MAY exchange the ID Token with a proof of possesion for an access token that can then be used to access resources.
284+
The ID Token MUST NOT be used as an access token to access resources. The RP MAY exchange the ID Token with a proof of possession for an access token that can then be used to access resources.
275285

276286
## Unique Key Pair
277287

0 commit comments

Comments
 (0)