Skip to content
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

Inform users when a UA administrator overrides their permission choices. #420

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

Conversation

jyasskin
Copy link
Member

@jyasskin jyasskin commented Sep 14, 2023

This is still somewhat exploratory, to see if this is a good way to explain how UAs should handle cases where their enterprise policies override user choices about permissions. It implements https://w3ctag.github.io/privacy-principles/#device-administrators for this spec, and the idea to try it out here came from the Standardizing managed user agent behavior session at TPAC 2023.

@reillyeon, can you cc in whichever Chrome enterprise folks should pay attention? @timcappalli are you the right person to check this for Microsoft's enterprise system?

The following tasks have been completed:

  • Modified Web platform tests (link)

Implementation commitment:

  • WebKit (link to issue)
  • Blink (link to issue)
  • Gecko (link to issue)

Preview | Diff

index.html Outdated
Comment on lines 558 to 560
permission data constraints=] for |name|. If [=administrator=] configuration affected the
result, the [=user agent=] must inform the user.
</li>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is how to integrate Chrome's WebUsbAllowDevicesForUrls policy, which I believe adds to the set of devices that https://wicg.github.io/webusb/#dom-usb-getdevices returns by default. @reillyeon might correct me.

This text says to inform the user if configuration affects the result either by adding or removing things. Is that right, or should we only inform the user if admin configuration adds to the page's abilities?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, enterprise policy adds additional entries to the result of getDevices(). As implemented it cannot remove entries but I could see that as a possibility.

<ol>
<li>Set |current state| to {{PermissionState/"granted"}} if the [=administrator=]
granted permission; otherwise to {{PermissionState/"denied"}}.</li>
<li>Inform the user of the [=administrator=]'s configuration.</li>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similarly here, should we only inform the user if the admin configuration forced a 'grant' result?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to assume the policy is being applied in real time?

@@ -1308,6 +1325,12 @@ <h2 id="privacy-considerations">
A user agent SHOULD provide a means for the user to review, update, and reset the
[=permission=] [=permission/state=] of [=powerful features=] associated with an [=origin=].
</p>
<p>
Some [=user agents=] support <dfn data-lt="administrator">administrators</dfn> who can
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I expect the <dfn> to move somewhere else, perhaps Infra, in the future, but I think the discussion about putting it there will be easier if it's already used in a spec or two first.

index.html Outdated
@@ -817,18 +821,31 @@ <h3 id="requesting-more-permission">
<li>If <var>current state</var> is not {{PermissionState/"prompt"}}, return <var>current
state</var> and abort these steps.
</li>
<li>Ask the user for <a>express permission</a> for the calling algorithm to use the
<a>powerful feature</a> described by |descriptor|.
<li>If the [=user agent=] has an [=administrator=] who has configured the [=user agent=]
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This implies that administrators are always using enterprise policy, while https://w3ctag.github.io/privacy-principles/#dfn-administrator implies that a user who owns their own device is that device's administrator. We could make either meaning work, but this meaning seems to produce simpler spec text. If we go with this, we should eventually rewrite the Privacy Principles to match.

Some [=user agents=] support <dfn data-lt="administrator">administrators</dfn> who can
override user choices about permissions, either to block permissions or to allow them on
certain sites. Overriding user choices in this way can be a privacy problem, so this
specification requires that the [=user agent=] inform users when it happens.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Out of curiosity, do any browsers in managed environments expose admin set permissions today?

On my work laptop, I see the following in settings in Chrome:
Screenshot 2023-09-15 at 3 30 56 PM

And the following in Firefox settings:

Screenshot 2023-09-15 at 3 31 00 PM

Copy link
Member Author

@jyasskin jyasskin Sep 25, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chrome has a couple that are exposed like
calendar.google.com site info panel showing Notifications, Allowed, and "Managed by your organization"
and
"HID devices with usages from usage page F1D0" allowed to chrome-extension://ckcendljdlmgnhghiaomidhiiclmapok/. This setting is managed by your administrator.

@marcoscaceres
Copy link
Member

marcoscaceres commented Oct 20, 2023

This feels like it should restricted to Privacy Consideration rather than affecting the algorithms.

@jyasskin
Copy link
Member Author

I don't think we should do the whole thing as a COMEFROM from the Privacy Considerations, but we could move some of the acknowledgement of the administrator's existence to, say, https://pr-preview.s3.amazonaws.com/jyasskin/permissions/pull/420.html#dfn-permission. Then the discussion of how to notify the user could live in the Privacy Considerations. Does that make more sense to you @marcoscaceres?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants