8000 Add Selective Consent for clients by oculos · Pull Request #40922 · keycloak/keycloak · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Add Selective Consent for clients #40922

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

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Add Selective Consent for clients #40922

wants to merge 2 commits into from

Conversation

oculos
Copy link
@oculos oculos commented Jul 4, 2025

This PR introduces the concept of Selective Consent.

The idea is simple:

As of today, Consent requirement is on or off on clients. Either all users must consent to a client or all users won't have that requirement.

However, often Keycloak has different classes of users. A common pattern is the devision of internal and external users. The introduction of Organizations makes this pattern even more obvious.

The consequence of handling different types of users is that the grounds for processing personal data might be different depending on what type of user, or, rather, what type of data subject the user is. If the user is an employee, the grounds of processing personal data might not be based on consent. However, guest users must certainly consent for transferring of personal data to an application.

This PR aims to address the need of requiring consent for transferring of personal data only for some users:

Screenshot 2025-07-04 at 09 28 33

The main idea is that it will be possible to require consent only for users with a given attribute and a given value.

When I first started implementing this, I wanted to add an own tab to handle this, and offering the possibility to configure multiple attributes. I also wanted to add the possibility of requiring consent based on organization. The problem I faced with that approach was the need of creating Set for organizations and Map<String,String> for attributes. Actually, it was done, but working with them on the React code was painful. Besides, it was hard to find out the user membership to an organization based on the user object.

So I dropped that more complete approach in favor of something much simpler: since one can easily add attributes to an organization, just adding a simple attribute per client will probably be sufficient for most use cases.

If, however, there's the need of implementing this with more fine tuned possibilities, like adding organizations and "any or all" multiple attributes, we can discuss the viability of such implementation.

oculos added 2 commits July 4, 2025 19:50
Signed-off-by: Francis Augusto Medeiros <register@francisaugusto.com>
Signed-off-by: Francis Augusto Medeiros <register@francisaugusto.com>
@oculos oculos force-pushed the main branch 3 times, most recently from 7d8cdcc to f2f7f8a Compare July 4, 2025 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant
0