Replies: 6 comments 2 replies
-
|
Having a scope like this would allow clients to reduce the length of the the OIDC request: Nevertheless, operators must have the logic to support that an app allowed to request the global api scope may also request only certain granular scopes |
Beta Was this translation helpful? Give feedback.
-
|
Hello, Thanks |
Beta Was this translation helpful? Give feedback.
-
|
@GianlucaSS77 The common rule is currently defined within section 6.6.2 of the API Design Guide:
This possibility was introduced in context of the first Identity and Consent Management guideline iteration which has enabled only one scope per authorization request. As this restriction no longer exists, there is also no general need for a coarse-grained "wildcard" scope anymore. And in particular not as a "wildcard" all endpoints of an API with the api-name as scope name as originally proposed and currently defined in sim-swap and device-swap. Especially for these APIs I personally don't like the coarse-grained scopes, as already the existing endpoints have different functionalities and an API consumer should only request an access token for the needed functionality (principle of least privilege). Extensibility: API wide "wildcard" scopes will hinder the extension of APIs which additional endpoints which represent higher privileges and shouldn't be accessible with the existing scope(s). Use in production: Wildcard permissions may be acceptable in isolated development environments where they enable rapid prototyping. However, these should never be promoted to production environments without proper refinement. Interoperability: Some API providers have already indicated that they won't support wildcard scopes and grant access tokens for them. Therefore it is for interoperability reasons better not to define them in the first place. |
Beta Was this translation helpful? Give feedback.
-
|
I think you are mixing the roles of "API consumer" and "end user" for CAMARA APIs. If a scope request involves a "purpose", then consent from the end user to process their personal data usually must be obtained (i.e. if opt-in consent is required). That consent must be "freely given, specific, informed, and unambiguous". Whether that consent is for a set of individual scopes or a single "super" scope makes absolutely no difference to that process. The language used by the API provider to obtain that consent is up to them, but I doubt they will even mention the scope names in the text of consent request. In a production environment, the API consumer is a bit of software written by an application developer, who must understand which scopes are required for each API endpoint they want to call. If only a single scope is defined per endpoint, the OAS syntax makes it really easy to determine which scope is required. The software itself does not care if the "scope" parameter is a single "super" scope, or a list of the individual scopes required for the access token. Only in a non-production "sandbox" (as is usually made available by API providers in their developer portals) is the "API consumer" a real person, and the "end user" not a real person. In such an environment, I can see that wildcard scopes make it easier to try out such sandbox environments. There is nothing to stop the API providers defining wildcard scopes for a non-production environment as a courtesy to application developers trying out the APIs. But for a production environment, wild card scopes make no sense at all. |
Beta Was this translation helpful? Give feedback.
-
|
@GianlucaSS77 While not being a privacy legal expert nor an UX expert, but from an end user perspective I agree here as well with @eric-murray: If you translate the two options
into a text for end user they both end up in something like "xxx requests the permission to create, read, delete and update QoS sessions for your mobile connection to improve your service experience" (1). Something like "xxx requests permission for QoS sessions to improve your service experience" does not make sense, as it leaves out the "operation required over the data set" as you rightfully listed above. If the AP consumer does not request "update" the sentence will be easier, but the wildcard would still include this operation and you need to present it to allow the end user an "informed decision" if I'm not mistaken. In short: the two options to express the "wildcard" scope are technically absolutely identical, as the wildcard scope would include all the operations. If you are allowed to present the wildcard scope in a certain form to the end user you should be allowed to present the set of all scopes in the same form to inform the user about the data set and requested (not necessarily: required) operations. Regarding your other arguments:
That you have to ask in the API repositories who have introduces wildcard scopes, my opinion is that this has legacy reasons, see my comment above. In case of SimSwap it makes IMHO a difference if the requested scope is
I don't agree that the action is different in this example, both are "read" operations, in line with the guidelines regarding "Scope Naming" in combination with guideline to use POST instead of GET to be able to transport the query parameters within the request body (c.f. "POST or GET for Transferring Sensitive or Complex Data"). One final comment: for improvements of the overall CAMARA Guidelines you can open a discussion or issue within Commonalities or for the topic at hand better in Identify & Consent Management. (1) as said, I'm neither a legal privacy expert nor an UX expert, so bear with me if this is to technically and can be presented more user friendly but still legally ok. Would be interested how you would present an API wildcard scope vs the same set of detailed scopes to an user differently. |
Beta Was this translation helpful? Give feedback.
-
|
Closing the discussion as there were no further comments or questions. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Pushing this question on behalf of my colleague @GianlucaSS77
For Quality on Demand API, no scope at api level has been included in the swagger, section security; it appears just one specific for each endpoint. The API should be used under a unique scope too, as we think that all the endpoints can be used under the same legal basis. Having this "wildcard" scope is defined in our API design guideline here.
What about include this scope “quality-on-demand” for each endpoint & of course maintaining those defined at endpoint level?
Thanks
Beta Was this translation helpful? Give feedback.
All reactions