So, how can the Resource Server call the /introspect endpoint when it doesn’t have the OAuth Client ID and/or secret? This is making me wonder if the /introspect endpoint is meant to be called by the OAuth Client instead, which to me, doesn’t seem as useful.
The resource server can use the /introspect endpoint to check if the token is valid or not. This resource server needs to be a registered client application at Okta. The request parameters - client_id and client_secret of /introspect endpoint refer to this client application that is the resource server.
How can a resource server also be a client application in Okta? Maybe I"m getting terms confused, but I thought an “Okta Application” entity represented/mapped-to an OAuth Client, and an “Okta API” entity represented an OAuth Resource Server and Authorization Server?
As you saw in the documentation, the /introspect endpoint requires client authentication in order to be used to validate a token is still valid. If your resource server is looking to remotely validate access tokens, it will need to include the client credentials for the application that was used to generate the token.
If you are looking to protect a resource server with OAuth tokens, you may prefer using local token validation instead as described in this guide. As it mentions, this can be done faster and without incurring additional network events like you would when using /introspect instead (remote validation).
If your resource server is looking to remotely validate access tokens, it will need to include the client credentials for the application that was used to generate the token.
Thanks for sharing. Are you aware of any Okta documentation suggesting how a Resource Server might obtain the Client credentials? Off the top of my head, I’m thinking the Client could send the credentials as custom headers when making an API call to the Resource Server. But I’m just wondering if Okta has any official stance on this? I can’t find any.
If the resource server wants to use /introspect endpoint for validating the access token, then there needs to be a registered application at okta for the resource server and the client credentials in /introspect refer to this app’s client credentials.
but as the endpt takes client credentials. resource server has to keep the client secret of the client handy to call this /introspect endpt. THis is very inconvenient. The design of it is really not from the perspective of a resource server, which uses this endpoint the most