diff --git a/draft-ietf-oauth-resource-indicators.xml b/draft-ietf-oauth-resource-indicators.xml index 38e01b3..9968fa3 100644 --- a/draft-ietf-oauth-resource-indicators.xml +++ b/draft-ietf-oauth-resource-indicators.xml @@ -45,7 +45,7 @@ An extension to the OAuth 2.0 Authorization Framework defining request parameters that enable a client - to explicitly signal to an authorization server about the location of the protected + to explicitly signal to an authorization server about the identity of the protected resource(s) to which it is requesting access. @@ -87,7 +87,7 @@ typically about what access is being requested rather than where that access will be redeemed (e.g. email, admin:org, user_photos, channels:read, and channels:write are a small sample of scope - values in use in the wild that convey only the type of access and not the location). + values in use in the wild that convey only the type of access and not the location or identity). In some circumstances and for some deployments, a means for the client to signal to the authorization server where it @@ -137,11 +137,13 @@ - Indicates the location of the target service or + Indicates the target service or resource where access is being requested. Its value MUST be an absolute URI, as specified by Section 4.3 of , which MAY include a query component but MUST NOT include a fragment component. + The URI MAY correspond to a network addressable location where the target resource is hosted or + it MAY be an abstract identifier representing the identity of the resource. Multiple resource parameters MAY be used to indicate @@ -149,8 +151,9 @@ - The parameter value indicates the location of a protected resource, typically as an https URL, - where the client is requesting access. This enables the authorization server to apply policy as appropriate + The parameter value identifies a resource to which the client is requesting access. + The parameter can carry the location of a protected resource, typically as an https URL, or an abstract identifier. + This enables the authorization server to apply policy as appropriate for the resource, such as determining the type and content of tokens to be issued, if and how tokens are encrypted, and applying appropriate audience restrictions. @@ -194,7 +197,7 @@
- When the resource parameter is used in an authorization request to the authorization endpoint, it indicates the location of + When the resource parameter is used in an authorization request to the authorization endpoint, it indicates the identity of the protected resource(s) to which access is being requested. When an access token will be returned directly from the authorization endpoint via the implicit flow (Section 4.2 of OAuth 2.0), the requested resource is applicable to that access token. In the code flow (Section 4.1 of OAuth 2.0) where an @@ -268,7 +271,7 @@ When the resource parameter is used on an access token request made to the token endpoint, - for all grant types, it indicates the location of the target service or protected resource where the client intends to use + for all grant types, it indicates the target service or protected resource where the client intends to use the requested access token. @@ -408,6 +411,14 @@ is needed when using access tokens with multiple audiences. Furthermore an authorization server may be unwilling or unable to fulfill a token request with multiple resources. + + Whenever feasible, the resource parameter + should correspond to the network addressable location of the protected resource. + This makes it possible for the client to validate that the resource being requested controls the corresponding + network location, reducing the risk of malicious endpoints obtaining tokens meant for other resources. + If the resource parameter contains an abstract identifier, it is the client's + responsibility to validate out of band that any network endpoint to which tokens are sent are the intended audience for that identifier. +
@@ -493,6 +504,7 @@ individuals contributed ideas, feedback, and wording that helped shape this specification: + Vittorio Bertocci, Sergey Beryozkin, William Denniss, Vladimir Dzhuvinov, @@ -518,7 +530,7 @@ draft-ietf-oauth-resource-indicators-02 - + Clarify that the value of the "resource" parameter can be an abstract identifier for the resource as well as network addressable location.