You signed in wi
8000
th another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As a person (Charlie) storing personal finance information in y storage, I want to be able to restrict access to this sensitive data to certain trusted clients, So that my sensitive data is n't available by default to any client I log into.
Preconditions:
There must exist a mechanism for clients to be identified
There must exist an access control mechanism to discriminate access to data based on client identity
a. As a corollary, there must exist a mechanism for clients to request access to data they are not trusted for so that the data owner may extend their trust to new clients over time.
Trigger:
There are two main entry points to this use case:
A client issues an authenticated request on behalf of the resource owner to a protected resource. In this use case, my personal finance management app should be allowed to access financial data from my storage, while my note-taking app should not.
A client requests access to some data to the resource owner. In this use case, a new personal finance management app I am starting to use should, by default, not have access to financial data on my storage, and I as the resource owner should be able to grant such access so that the app may perform its function.
Actors:
The resource owner (e.g. Charlie), who decides which clients should be allowed to interact with which data they own. This is orthogonal to permissions granted to agents to interact with the same data.
The client (e.g. my personal finance management app), which is either allowed or not allowed to interact with the data owned by the resource owner logging in to the client.
The storage, where the resource owner's data is stored. Client access restrictions are expressed by the resource owner and enforced by the storage upon client request.
Distinction:
In order to deliver a good user experience, it might be good for the client to be able to distinguish whether access is being restricted because of client access restriction or agent access restrictions. This however may not be possible for security concerns.
Existing client authentication mechanisms, such as Dynamic Client Registration and Static Client Registration, scope the client identity to the OpenID Provider, which may be a restriction in the case of the work of the LWS WG.
There bootstrapping user experience will be important, so that users start with secure defaults and can manage which clients are allowed or revoked over time.
The storage will need some way to verify the client assertions.
Scenario:
Charlie logs in to their personal finance management application, PFM. Charlie's storage is already configured to allow PFM to access finance data.
Charlie is able to use PFM to manage their personal finances, and to generate new finance data with the same access restrictions.
Charlie logs in to a brand new alternative personal finance management application, MyBudget. MyBudget does not have access to Charlie's finance data on their storage.
MyBudget requests access to Charlie to their financial data, and Charlie grants access in a trusted context.
Charlie is now able to use MyBudget to visualize the same data from their storage.
Being more satisfied with MyBudget, Charlie revokes access to their finance data to PFM. Charlie is no longer able to access their data using PFM.
Charlie opens their calendar app to set a reminder for later. This app does not have access to Charlie's finance data on their storage.
Charlie's spouse, Alex, has access to Charlies personal finances on their storage. Alex can access this data using MyBudget, but not using PMF.
Alternative case(s):
An alternative would be to be able to express access restrictions not for individual clients, but for clients having specific characteristics. For instance, Charlie could trust any client being approved by a trusted authority or having a certain certification to handle their personal finances, without explicitly trusting PFM or MyBudget individually. Clients should then be able to discover the expected criteria, and to demonstrate their compliance.
Error scenario:
Because this use case is related to access management, error scenarios are akin to data breaches, that is a client gets access to data it should not have access to. The system should handle this in the way it is expected to handle any other data breach, by patching it as soon as possible when found out, then private disclosure to the impacted parties, and finally public disclosure. This is most likely is out of scope of the specification.
An unexpected situation might be a client issuing a request to the storage without any identifier, or with an identifier not compliant with the specification. In this case, the default system behavior should be not to allow access to any data for which any client restrictions apply.
Acceptance Criteria:
A client can present an identifier to the storage as part of an authenticated request
The data owner can express restrictions regarding which clients should have access to some data.
A client not compliant with restrictions expressed by the owner to some data is refused access by the storage.
A client may discover when it is prohibited data access because of owner restrictions, and may follow steps to request access to the owner.
References:
The Solid WG proposed Solid-OIDC as an OIDC extension allowing for client authentication without having prior registration of the client to the OpenID Provider.
The OpenID Connect WG is working on OpenID Federation, which could be a way to express trust to an authority rather than individual clients.
The OpenID Digital Credentials Protocols workgroup is working on OpenID for Verifiable Presentations as a way to present credentials which could allow clients to demonstrate capabilities or certifications.
There are other use cases proposed to the LWS WG that present characteristics where client access control as presented here would make sense:
@NSeydoux this is a very good use case and, as you pointed out, is addressed by other use case. There are other aspects of the use case you didn't mention directly. For instance, if Charlie is a member of a community, in some case the use of the storage may be governed by the community not even necessarily by the user. Other example cases are for medical records, education or even criminal records, where users MUST not be able to alter records.
As a person (Charlie) storing personal finance information in y storage,
I want to be able to restrict access to this sensitive data to certain trusted clients,
So that my sensitive data is n't available by default to any client I log into.
Preconditions:
a. As a corollary, there must exist a mechanism for clients to request access to data they are not trusted for so that the data owner may extend their trust to new clients over time.
Trigger:
There are two main entry points to this use case:
Actors:
Distinction:
Scenario:
Alternative case(s):
An alternative would be to be able to express access restrictions not for individual clients, but for clients having specific characteristics. For instance, Charlie could trust any client being approved by a trusted authority or having a certain certification to handle their personal finances, without explicitly trusting PFM or MyBudget individually. Clients should then be able to discover the expected criteria, and to demonstrate their compliance.
Error scenario:
Because this use case is related to access management, error scenarios are akin to data breaches, that is a client gets access to data it should not have access to. The system should handle this in the way it is expected to handle any other data breach, by patching it as soon as possible when found out, then private disclosure to the impacted parties, and finally public disclosure. This is most likely is out of scope of the specification.
An unexpected situation might be a client issuing a request to the storage without any identifier, or with an identifier not compliant with the specification. In this case, the default system behavior should be not to allow access to any data for which any client restrictions apply.
Acceptance Criteria:
References:
The text was updated successfully, but these errors were encountered: