-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Why "The API can be called by an application server or other 3rd party server" #71
Comments
Once the user stories in #73 are merged, I will update the API description |
Why wait? |
In the statement in question, "can" means "is able to", not "must". So it is undeniably true that an application or other 3rd party server can call the API, and I don't see the need to remove that statement. Rather, if there is a use case where the device itself calls the API, then I'd like to understand how that would work and then extend the text to include that possibility as well. But what authorisation flow would the device use in this case? CIBA is the obvious flow if the device is calling the API unprompted by an external application server, but if the device does not know its own IMEI, it probably does not know its MSISDN either. And it can only know its public IP / port by asking an external server, such as DNS or a 3rd party API. And if the authorisation code flow is to be used, how would the device (or application on the device) trigger this if not sent a redirect to the So it's not clear to me how either 3-legged authorisation flow works for a standalone device without an external server involved. |
I am not saying that there is no server. In the use case I am thinking of the user installs e.g. a API consumer mobile app or the user navigates to the API consumer webpage on their mobile device using some Internet browser. Most if not all mobile apps have backends/servers and webservers are servers by definition. So, there is most likely a server. I would remove that "server"-sentence because that sentences is better suited to be in a use case document, I think. Insurance-Company Mobile App calls DeviceIdentfier API use case:
Note: the consent can be collected at any time in the mobile app, either in a mobile app's first run experience or when the API is used. |
Problem description
https://github.com/camaraproject/DeviceIdentifier/blob/main/code/API_definitions/CAMARA%20Mobile%20Device%20Identifier%20API.yaml#L39
Expected action
All Camara APIs can be called from any device, be it server, smartphone, laptop.
Not sure, why this sentence is here.
If somebody thinks that calling the API from a server is a security "requirement" then this should be documented.
If it is common practice to send the OIDC code or the access token to a server, and then call a Camara API from there, then that adds an additional place where the code or access token can be stolen or leaked. There should be a risk assessment.
For this API I suggest removing that sentence.
Additional context
My recommendation:
Sending the authentication code or access tokens from the OAuth2 client, that requested them, to a different server changes the OAuth2 security considerations.
The text was updated successfully, but these errors were encountered: