-
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
Security Schemes and Scopes for Device Identifier API #30
Comments
Hi @eric-murray , I believe , two scopes provides clear separation between access to personal and non-personal data and also aligned with privacy principles by limiting access to personal data only when necessary. |
Hi @eric-murray , I think it should be wise to split these 2 up as much as possible, since the use cases are quite different. I was even asking myself whether it would not be better to split it even up further, and have 2 separate API's defined, because one will have to communicate what an API can be used for, and then these can be positioned more clearly. If we keep it as one API, I would propose to go for the 2 separate endpoints, but I would suggest the naming of the endpoints a bit more descriptive by what you would do with it : Two separate endpoints: /get-device-identifier, which returns imeisv and imei; and and each endpoint would have a separate scope as you propose: device-identifier:get-device-imei:read for get-device-identifier; and |
I believe , by utilizing different scopes, we can seamlessly accommodate new attribute combinations (imeisv and tac) without creating additional endpoints for keeping any future requirement in mind. This approach will also minimize code duplication on the backend, particularly when the backend network element is same for all. It may also contribute to a reduction in resource overhead compared to having distinct endpoints for each attribute combination. |
Having discussed this internally, Vodafone's position is to separate the two endpoints for the following reasons:
So proposal is to have two separate endpoints as follows:
|
Problem description
Commonalities will shortly adopt modified CAMARA API security guidelines (see Commonalities PR #57. The proposed changes are:
openIdConnect
For this sub-project, available scopes for the
/get-device-identifier
endpoint need to be agreed.Possible evolution
The response to a
/get-device-identifier
request can be up to 5 fields:imeisv
imei
tac
model
manufacturer
However, these fields are not independent - the lower fields can generally be determined knowing a higher field. For example,
tac
can be derived fromimei
, andmanufacturer
can be derived fromtac
. Hence a scope allowing theimeisv
to be provide also implicitly allows all fields to be provided.It is proposed to define only two scopes for this endpoint - one allowing "device specific" parameters to be returned (i.e.
imeisv
andimei
) and another allowing only "device model" parameters to be returned (i.e.tac
,model
andmanufacturer
). Generally,imei
andimeisv
are considered to be personal data, whereas the other parameters are not.The proposed scopes are thus:
device-identifier:get-device-identifier:read:imei
device-identifier:get-device-identifier:read:tac
where
device-identifier:get-device-identifier:read:imei
returns all parameters anddevice-identifier:get-device-identifier:read:tac
only returnstac
,model
andmanufacturer
.Alternative solution 1
Alternative scope definitions can be considered, e.g.:
device-identifier:get-device-identifier:read
, which returns all parametersAlternative solution 2
The current
/get-device-identifier
endpoint can be split into two separate endpoints:/get-device-imei
, which returnsimei
andimeisv
(and possibly alsotac
,model
andmanufacturer
); and/get-device-tac
, which returns onlytac
,model
andmanufacturer
Each endpoint would have a separate scope:
device-identifier:get-device-imei:read
forget-device-imei
; anddevice-identifier:get-device-tac:read
forget-device-tac
Additional context
None
The text was updated successfully, but these errors were encountered: