- From: Alan Karp <alanhkarp@gmail.com>
- Date: Fri, 22 Aug 2025 09:51:58 -0700
- To: Bob Wyman <bob@wyman.us>
- Cc: "W3C Credentials CG (Public List)" <public-credentials@w3.org>
- Message-ID: <CANpA1Z354OUfivvXag8xp2RW-BZ7RXT-nDMgH8o2Jyae8Qq+kA@mail.gmail.com>
On Thu, Aug 21, 2025 at 6:00 PM Bob Wyman <bob@wyman.us> wrote: > So, if policy determines "how those permissions get assigned," but not the > permissions themselves, then I assume that the following use cases would > not involve policy: > The question is whether the policy introduces a new hazard or if it can be enforced with an existing mechanism. I'm not saying that what I suggest below is the best or even a good way, just that the mechanism can enforce the policy. The "verifier" I talk about below is the component that makes the access decision based on Bob's permissions and his request. > > After following some written policy guidelines, Alice delegates to Bob, > but the delegated permissions she provides are constrained to work: > > - Only for the two-weeks that she's out on vacation. > > Alice delegates to Bob before she leaves and revokes when she returns. > > - Only between the hours of 6pm and 9am during weekdays which are > workdays. > > Alice delegates to Bob at 6 PM and revokes at 9 AM on every work weekday. > > - Only if Bob has received a complimentary delegation from Dave. (i.e. > composition required) > > Alice asks Dave what he delegated to Bob before she delegates to Bob. > > - Only if Bob can't compose Alice's delegation with any other > delegation. (i.e Bob can't do anything Alice couldn't do.) > > The verifier can enforce this policy. (This approach is used in consulting firms to implement a Chinese Wall between employees doing work for competing clients.) > > - Only a maximum of three times > > Alice tells the verifier to tell her each time Bob uses the permission and revokes after the 3rd use. > > - Only a maximum of three times during any 24-hour period > > Ditto > > - Only while the intrusion detection system is reporting a suspected > intruder. > > The verifier can enforce this rule. (This approach is used in Risk Adaptive Access Control.) > > - Only when the outside temperature is above 99 degrees. > > Ditto > > - Only if Bob's continued employment by Alice's employer can be > confirmed. > > Bob gets permission to invoke Bob-agent, and any delegations are to Bob-agent. You revoke Bob's permission to invoke Bob-agent when he leaves the company. > > - Only if Bob uses the permissions to manipulate one or more of an > enumerated list of objects. > > The delegation only gives Bob permission to the enumerated list of objects. > > - etc. > > I agree that policies like these are important considerations, but do they introduce hazards that I didn't cover? If so, then I should add use cases for them. -------------- Alan Karp On Thu, Aug 21, 2025 at 6:00 PM Bob Wyman <bob@wyman.us> wrote: > So, if policy determines "how those permissions get assigned," but not the > permissions themselves, then I assume that the following use cases would > not involve policy: > > After following some written policy guidelines, Alice delegates to Bob, > but the delegated permissions she provides are constrained to work: > > - Only for the two-weeks that she's out on vacation. > - Only between the hours of 6pm and 9am during weekdays which are > workdays. > - Only if Bob has received a complimentary delegation from Dave. (i.e. > composition required) > - Only if Bob can't compose Alice's delegation with any other > delegation. (i.e Bob can't do anything Alice couldn't do.) > - Only a maximum of three times > - Only a maximum of three times during any 24-hour period > - Only while the intrusion detection system is reporting a suspected > intruder. > - Only when the outside temperature is above 99 degrees. > - Only if Bob's continued employment by Alice's employer can be > confirmed. > - Only if Bob uses the permissions to manipulate one or more of an > enumerated list of objects. > - etc. > > > bob wyman > > > > > > > On Thu, Aug 21, 2025 at 8:34 PM Alan Karp <alanhkarp@gmail.com> wrote: > >> On Thu, Aug 21, 2025 at 3:12 PM Bob Wyman <bob@wyman.us> wrote: >> >>> Alan Karp wrote: >>> >>>> "Policy is a topic I chose to avoid." >>> >>> >>> How is "policy" distinguished from access control? >>> >> >> Policy decides who gets which permissions when. Access control is how >> those permissions are represented and used. >> >> For example, an ACL is an access control mechanism that represents >> permissions but it says nothing about how those permissions get assigned. >> >> -------------- >> Alan Karp >> >> >> On Thu, Aug 21, 2025 at 3:12 PM Bob Wyman <bob@wyman.us> wrote: >> >>> Alan Karp wrote: >>> >>>> "Policy is a topic I chose to avoid." >>> >>> >>> How is "policy" distinguished from access control? >>> >>> bob wyman >>> >>> >>> On Thu, Aug 21, 2025 at 5:43 PM Alan Karp <alanhkarp@gmail.com> wrote: >>> >>>> On Thu, Aug 21, 2025 at 11:41 AM Bob Wyman <bob@wyman.us> wrote: >>>> >>>>> When addressing Composed Delegations, you say: >>>>> >>>>>> Composable: Dave needs to be able to get one permission from Alice, >>>>>> another from Bob and use them both in the same API call. >>>>> >>>>> >>>>> Imagine that Bob and Alice both have Q,U, and D privileges in respect >>>>> to object X. Alice delegates Q and U to Dave. Bob Delegates U and D to >>>>> Dave. Neither Bob nor Dave >>>>> >>>> >>>> I think you mean Alice >>>> >>>> >>>>> are aware that the other had delegated privileges to Dave. Now, Dave >>>>> needs to do something to X that requires both U and D. Are you really >>>>> comfortable with letting him combine the Q from Alice with the D from Bob? >>>>> Doing this would allow Dave to do something that neither Bob nor Alice >>>>> intended him to do. In fact, both Bob and Alice might be very surprised to >>>>> learn that Dave had, in fact, done that thing. >>>>> >>>>> You could also ask if Alice's delegation to Dave violates some >>>> policy. Policy is a topic I chose to avoid. >>>> >>>> If you want policy enforcement, you'll have to mediate delegations in >>>> some way. However, you still need to deal with credential sharing to get >>>> around blocked delegations. >>>> >>>> -------------- >>>> Alan Karp >>>> >>>> >>>> On Thu, Aug 21, 2025 at 11:41 AM Bob Wyman <bob@wyman.us> wrote: >>>> >>>>> When addressing Composed Delegations, you say: >>>>> >>>>>> Composable: Dave needs to be able to get one permission from Alice, >>>>>> another from Bob and use them both in the same API call. >>>>> >>>>> >>>>> Imagine that Bob and Alice both have Q,U, and D privileges in respect >>>>> to object X. Alice delegates Q and U to Dave. Bob Delegates U and D to >>>>> Dave. Neither Bob nor Dave are aware that the other had delegated >>>>> privileges to Dave. Now, Dave needs to do something to X that requires both >>>>> U and D. Are you really comfortable with letting him combine the Q from >>>>> Alice with the D from Bob? Doing this would allow Dave to do something that >>>>> neither Bob nor Alice intended him to do. In fact, both Bob and Alice might >>>>> be very surprised to learn that Dave had, in fact, done that thing. >>>>> >>>>> bob wyman >>>>> >>>>> >>>>> >>>>> On Thu, Aug 21, 2025 at 1:49 PM Alan Karp <alanhkarp@gmail.com> wrote: >>>>> >>>>>> I have followed a variety of access control systems off and on for >>>>>> some 30 years, including the recent discussion on this list of the use of >>>>>> OAuth 2.0 and 2.1. I have concluded that many, if not all of them, suffer >>>>>> from being based on use cases that are too simple. >>>>>> >>>>>> In an attempt to address that problem, I've constructed a bunch of use >>>>>> cases <https://alanhkarp.com/UseCases.pdf> that I think capture all >>>>>> the hazards an access control system must address. Comments, criticisms, >>>>>> and corrections will be appreciated and resented in equal measure. >>>>>> >>>>>> -------------- >>>>>> Alan Karp >>>>>> >>>>>
Received on Friday, 22 August 2025 16:52:15 UTC