This is not an easy question to answer, as resource servers in OAuth have never 
really had a strong identity (or identifier) within the OAuth ecosystem. The 
Resource Identifiers draft [1] tries to address this somewhat. In practice, 
many resource servers are registered and stored as “clients” at an AS so that 
the AS can re-use authentication code paths and storage systems. I know that in 
several large deployments that I’ve worked on, resources are stored as clients 
with empty “grant_types” and “response_types” arrays, and with a flag set to 
allow them to call the introspection endpoint. Otherwise they are all “client” 
objects and therefore get ‘client_id’ fields assigned to them, which would be 
what the “aud” would be in this case, most likely.

However, unlike clients, resource servers arguably always have at least one URL 
associated with them. The real problem comes from the fact that the “resource” 
isn’t easily defined by a single URL.

— Justin

[1] https://tools.ietf.org/html/draft-ietf-oauth-resource-indicators


On May 7, 2019, at 2:57 AM, Takahiko Kawasaki 
<t...@authlete.com<mailto:t...@authlete.com>> wrote:

Hello,

I have a question regarding "JWT Response for OAuth Token Introspection" 
(draft-02).

https://datatracker.ietf.org/doc/draft-ietf-oauth-jwt-introspection-response/?include_text=1

How to determine the value of "aud" in the response JWT?

The example payload uses "https://protected.example.net/resource"; as the value 
of "aud". The example value implies that it represents the identifier of the 
target resource or the resource server, but how does an authorization server 
implementation know the identifier? I'm sorry if this has already been 
discussed.

To be honest, I fear that some inconsistencies might occur in future by 
treating resource servers as clients. If I had to write the specification, I 
would start from defining "resource server metadata" (e.g. expired draft: 
https://datatracker.ietf.org/doc/draft-jones-oauth-resource-metadata/) and 
devising a way to register resource servers into an authorization server and 
issue resource server credentials (e.g. rs_id and rs_secret, RS JWK Set, etc.) 
in order to treat resource servers and clients as different entities 
explicitly. I hope that discussion for distinguishing "resource server 
authentication" from "client authentication" will be initiated sometime in 
future.

Best Regards,
Takahiko Kawasaki
Authlete, Inc.

_______________________________________________
OAuth mailing list
OAuth@ietf.org<mailto:OAuth@ietf.org>
https://www.ietf.org/mailman/listinfo/oauth

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to