2. Resource Parameter
2. Resource Parameter
Dans les requêtes vers le serveur d'autorisation, un client PEUT indiquer la ressource protégée (également appelée serveur de ressources, application, API, etc.) à laquelle il demande l'accès en incluant le paramètre suivant dans la requête.
resource
: Indique le service ou la ressource cible pour lesquels l'accès est demandé. Sa valeur DOIT être un URI absolu, tel que spécifié par la section 4.3 de [RFC3986]. L'URI NE DOIT PAS inclure de composant fragment. Il NE DEVRAIT PAS inclure de composant de requête, mais il est reconnu que des cas rendent un composant de requête utile et nécessaire pour le paramètre resource, par exemple lorsqu'un ou plusieurs paramètres de requête servent à limiter les requêtes à une application. La valeur URI du paramètre resource est un identifiant représentant l'identité de la ressource ; il PEUT s'agir d'un localisateur correspondant à un emplacement adressable sur le réseau où la ressource cible est hébergée. Plusieurs paramètres resource PEUVENT être utilisés pour indiquer que le jeton demandé est destiné à être utilisé sur plusieurs ressources.
La valeur du paramètre identifie une ressource à laquelle le client demande l'accès. Le paramètre peut porter l'emplacement d'une ressource protégée, en général une URL https ou un identifiant plus abstrait. Cela permet au serveur d'autorisation d'appliquer une politique adaptée à la ressource, par exemple déterminer le type et le contenu des jetons à émettre, si et comment les jetons sont chiffrés, et appliquer des restrictions d'audience appropriées.
Le client DEVRAIT fournir l'URI le plus spécifique possible pour l'API complète ou l'ensemble de ressources qu'il entend utiliser. En pratique, un client connaît une URI de base pour l'application ou la ressource avec laquelle il interagit, ce qui convient comme valeur du paramètre resource. Le client DEVRAIT utiliser l'URI de base de l'API comme valeur du paramètre resource sauf si une connaissance spécifique de la ressource impose le contraire. Par exemple, la valeur https://api.example.com/ serait utilisée pour une ressource qui est l'application exclusive sur cet hôte ; toutefois, si la ressource est l'une de plusieurs applications sur cet hôte, une valeur plus spécifique comme https://api.example.com/app/ serait utilisée. Un autre exemple est une API avec plusieurs points de terminaison, par exemple lorsque le System for Cross-domain Identity Management (SCIM) [RFC7644] expose des points de terminaison tels que https://apps.example.com/scim/Users, https://apps.example.com/scim/Groups et https://apps.example.com/scim/Schemas. Le client utiliserait https://apps.example.com/scim/ comme ressource afin que le jeton d'accès émis soit valide pour tous les points de terminaison de l'API SCIM.
Le code d'erreur suivant est fourni pour qu'un serveur d'autorisation signale des problèmes avec la ou les ressources demandées en réponse à une requête d'autorisation ou une requête de jeton d'accès. Il peut aussi informer le client qu'il a demandé une combinaison invalide de ressource et de portée.
invalid_target
: La ressource demandée est invalide, absente, inconnue ou mal formée.
Le serveur d'autorisation DEVRAIT restreindre l'audience des jetons d'accès émis aux ressources indiquées par le paramètre resource. Les restrictions d'audience peuvent être communiquées dans les JSON Web Tokens [RFC7519] avec la revendication aud, et le membre de niveau supérieur du même nom fournit les informations de restriction d'audience dans une réponse Token Introspection [RFC7662]. Le serveur d'autorisation peut utiliser la valeur exacte de resource comme audience ou la mapper vers un URI plus général ou un identifiant abstrait pour la ressource donnée.