Skip to content

Commit bd1a737

Browse files
authored
Merge pull request #785 from DuendeSoftware/wca/733-rfc9701
Update Introspection Endpoint docs with RFC 9701
2 parents e89e6e6 + fb272f1 commit bd1a737

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

src/content/docs/identityserver/reference/endpoints/introspection.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,48 @@ Unknown or expired tokens will be marked as inactive:
6464

6565
An invalid request will return a 400, an unauthorized request 401.
6666

67+
## JWT Response from Introspection Endpoint :badge[v7.3]
68+
69+
IdentityServer supports [RFC 9701](https://www.rfc-editor.org/rfc/rfc9701.html) to return a JWT response from the
70+
introspection endpoint.
71+
72+
To return a JWT response, set the `Accept` header in the HTTP request to `application/token-introspection+jwt`:
73+
74+
```text
75+
POST /connect/introspect
76+
Accept: application/token-introspection+jwt
77+
Authorization: Basic xxxyyy
78+
79+
token=<token>
80+
```
81+
82+
A successful response will return a status code of 200 and has a `Content-Type: application/token-introspection+jwt` header,
83+
indicating that the response body contains a raw JWT instead. The base64 decoded JWT will have a `typ` claim in the header with
84+
the value `token-introspection+jwt`. The token's payload contains a `token_introspection` JSON object similar to the default response type:
85+
86+
```json
87+
{
88+
"alg": "RS256",
89+
"kid": "BE9D78519A8BBCB28A65FADEECF49CBC",
90+
"typ": "token-introspection+jwt"
91+
}.{
92+
"iss": "https://localhost:5001",
93+
"iat": 1729599599,
94+
"aud": "api1",
95+
"token_introspection": {
96+
"iss": "https://localhost:5001",
97+
"nbf": 1729599599,
98+
"iat": 1729599599,
99+
"exp": 1729603199,
100+
"aud": [ "api1" ],
101+
"client_id": "client",
102+
"jti": "44FD2DE9E9F8E9F4DDD141CD7C244BE9",
103+
"active": true,
104+
"scope": "api1"
105+
}
106+
}.[Signature]
107+
```
108+
67109
## .NET Client Library
68110

69111
You can use the [Duende IdentityModel](/identitymodel/index.mdx) client library to programmatically interact with

0 commit comments

Comments
 (0)