Skip to content

Commit 8737032

Browse files
committed
Adds fleshed out wording and context to descriptions
1 parent 00ca980 commit 8737032

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,11 @@ The OP's OpenID Connect Metadata Document [@!OpenID.Discovery] SHOULD include:
109109

110110
This spec works by adding parameters and headers to the Authentication Request and Token Request and then validating these fields such that the ID Token returned in the Token Response contains a `cnf` claim for a public key.
111111

112-
For the Authorization Code Flow the following changes are made
112+
This specification extends the OpenID Connect Authentication Request addition of the parameter `dpop_jkt` to the Authentication Request, and a `DPoP` header to the Token Request and Refresh Request.
113+
The RP signals to the OP it is requesting a key bound ID Token by including the scope `bound_key` in the Authentication Request. If the OP chooses to key bound ID Token it validates the `dpop_jkt` parameter and `DPoP` and returns an ID Token in the Token Response that includes a `cnf` claim for the bound public key.
114+
This specification does not add new messages, requests or responses, preserving the current OpenID Connect flows and interactions.
115+
116+
For the Authorization Code Flow the following changes are made:
113117

114118
1. adding the `bound_key` scope and `dpop_jkt` parameter to the OpenID Connect Authentication Request
115119
2. receiving the authorization `code` as usual in the Authentication Response
@@ -133,7 +137,7 @@ For the Authorization Code Flow the following changes are made
133137
+------+ +------+
134138
```
135139

136-
The Device Authorization Flow follows the pattern of the Authorization Code Flow but sets `c_s256` to SHA-256 of the `device_code` in place of the authorization `code`.
140+
The Device Authorization Flow follows the pattern of the Authorization Code Flow but sets `c_s256` to SHA-256 of the `device_code` in place of the authorization `code`, making the following changes:
137141

138142
1. adding the `bound_key` scope and `dpop_jkt` parameter to the OpenID Connect Authentication Request
139143
2. receiving the `device_code` as usual in the Device Authentication Response
@@ -351,7 +355,7 @@ Non-normative example of the ID Token payload:
351355
The OP MAY return a Refresh Token.
352356
If a Refresh Token is returned, it MUST be bound to the public key of the DPoP proof used in the Token Request i.e. the same public key bound to the ID Token.
353357

354-
## Refresh Request
358+
# Refresh Request
355359

356360
If a Refresh Token was returned in the Token Response, the RP may use the Refresh Token to make Refresh Requests to the OP's Token Endpoint and receive a refreshed ID Token ([@!OpenID.Core] 12).
357361
This Refresh Token MUST be bound to the same public key as the ID Token and the OP MUST validate a DPoP proof ([@!RFC9449] 5) for this public key on each refresh request.
@@ -380,6 +384,7 @@ grant_type=refresh_token&refresh_token=8xLOxBtZp8
380384

381385
The OP MUST validate the Refresh Token and MUST validate the `DPoP` header presented.
382386
The OP MUST reject the `DPoP` header if it is not signed with the public key that was bound to the presented Refresh Token in the initial Token Request.
387+
Unlike the Token Request, no `c_s256` claim is required in the the `DPoP`header for the Refresh Request.
383388

384389
If an ID Token is returned as a result of a Refresh Request, an additional requirement applies:
385390

0 commit comments

Comments
 (0)