Matthieu Bosquet
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # 2021-07-14 Solid Authorization https://meet.jit.si/solid-authorization ## Agenda * Minutes - https://github.com/solid/authorization-panel/pull/238 * UC1 - https://github.com/solid/authorization-panel/pull/215 * UC3 - https://github.com/solid/authorization-panel/pull/216 * Closing outdated UCR issues? * #87 - https://github.com/solid/authorization-panel/issues/87 * #89 - https://github.com/solid/authorization-panel/issues/89 * Transfer of issue 191 - https://github.com/solid/authorization-panel/issues/191 ## Present * Henry Story * Justin Bingham * Elf Pavlik * Matthieu B ## Minutes ### ACP UC3 Henry: I don't think there is a way to build what we're trying to build without allowing global read to ACRs. There has to be some document that tells you how to authenticate. There is a privacy problem with people putting all access control statements in one ACL. But that problem goes away if you are doing it correctly. And there is no other way of doing it that doesn't require inventing a whole new system. This is why it is important to go through those Use Cases. I don't think we want to go through all Use Cases. They were developped before we went through this process. It might not be coherent to go throuhg them all. I don't see that the [latest comment on UC3](https://github.com/solid/authorization-panel/pull/216#discussion_r673945084) is a problem, it is up to Elf to put a proposition forward to deal with credentials requirement discovery. The default is that you have to read the access control. This is the only way to do Solid. That is the right default and what happens if you don't get access? You don't know how to authenticate, therefore, you don't have access. If you can't access the ACL, you don't know how to authenticate, you're left with guessing which is not acceptable. Matthieu: But it is a security issue to have ACRs readable publicly by default. Henry: In my view it is going to be the majority of cases. Justin: I think we're inflating a real problem that needs to be solved which is understanding what a given agent has access to with an access control system which should just be understand whether you have access to something or not. But there are other out of band ways to give agents a list of what they have access to. There aren't patterns to tell an agent what they have access to. I personally don't believe that the best way to deliver that information is through the ACL resources. I'm happy to be proven wrong. I see it as a separate type of flow. In other areas which aren't SOlid specific but if your control rules are setup (OAuth/Firewalls...). I'm wondering what is the minimum amount that people need to know. We have precedent with WAC-ALLOW in Solid. But we need to be able to follow your nose through resources would be pretty problematic. Because you don't want to leak stuff you don't want to. Matthieu: There are two problems here: 1. how does an agent know all the resources it has access to 2. how does one knows which credentials to present to access a resource Justin: Absolutely, application workflows are much more richer that access to this or that. Pavlik and I specifically worked on it a lot with the interop work we've been doing. So we might have a more accute feeling for what is required. Elf: We have to make a pragmatic approach towards how to approach those UCs. For ACP my understanding is that the access control resource is not accessible unless there is an access control. Matthieu: It was also my understanding for WAC (not readable by default). Maybe raise one more issue to make it explicit whether WAC resources are accessible by default. Elf: Even though ACP could make it accessible to the public. Why is it required for this use case? Let's not make it required for this use case. Matthieu: I see here three questions that I would like Henry: Unless the ACL states that it is publicly readable, it should not be readable. That is a limitation of WAC currently that doesn't allow just public read to ACLs. Matthieu: There is a proposal to extend access control modes including `ControlRead`. Henry: Link me to it. ACP does something. Matthieu: I think I agree and if we were to adopt extended access modes, maybe we wouldn't have to use so many different predicates to apply policies in ACP. Henry: I'll try to review that for next week. We have a use case for shopping and buying music. It seems that in that case everybody should know the price and clearly that would be an access control rule saying on proof of payment you can download this music. Matthieu: You mean that the access control would allow you to infer that in order to read the music, you need to show that you need to pay for something. Henry: That is the same thing for say being a university member. Just have the Group Bob and Alice being private but you know you need to be part of the group. Matthieu: This sounds like a classic verifiable credential/key based access where you just need to prove what set you pertain to. ### PR Workflow Pavlik: There is a bit of problem on who works on pull requests and who has to approve them. But it's pretty clear that ACP would be Matthieu, WAC Sarven, WAC+ Henry, but it would be good to have 1 person leading the proposal. Matthieu: That sounds good, but what do you think would be necessary to make things clearer? Henry: I think that's more or less what we've been doing. Pavlik: We could have separate PRs for separate proposals. Matthieu: I would prefer keeping a PR per use case. I think the current flow does work well to compare the implementation details. Justin: +1 Pavlik's point or the spirit of it. I feel like we needed the specs yesterday and I can't build what I want with the current state of WAC. We need to optimise our workflow to get to proposal state, we need to get there fast. The ecosystem needs us to get to a better more robust access control system sooner rather than later. Henry: I agree that WAC got stuck where it was for 5 to 6 years. At least now, the simple Use Cases help us show the limitations of WAC and get feedback for example from Sarven. Comparing it to ACP is helping us tweak things a little bit. We write out detail by detail the things and figure out problems as we go along. We might have a problem with ACP and WAC both to do with copying data and figuring out what the problems and disavantages are and end up with one system. We're just not putting enough time in it, which is why it's very slow. I suggest we commit this and continue with new PRs to continue on what we've done. Matthieu suggested that we've already agreed 2 weeks ago to merge and incrementally improve before you joined. We have a use case that is dealing with privacy on the WAC side. Matthieu can do the same and we can ask Sarven how that would be done. It is a good way to see the advantages. WAC is very easy to implement which is good at the begining and it's been advertised as a good decentralised access control solution, we need to tackle a few issues so that it meets expectations. Justin: It is a way and beneficial. But the best way is to have something in the field and get it used in the field. We need value from real; "in the field"; implementations and use. We need to see value from there. That's an essential part of maturing specs and getting them to completion to have something out there that is close to completion. I wanna ideally try to get there. Henry: That's what I was doing 5/6 years ago, then it took a long time because something got stuck at MIT. If you look at this report UC3, then you can see that WAC+ import solves a lot of issues. And it might help solve things on the ACP side too. It helps you avoid copying lots of data around. And answers many questions, such as "If you change the root ACR do changes get effected everywhere else?... Matthieu: I agree with Henry. I think it is problematic that some fundamental issues have not been formulated clearly in the past and that the fact that we're doing it proves that we're doing something right. Justin: Yes. More than anything, I just want to understand how do we optimise what we have left to do? How do we get back from implementation? Henry: Maybe we need 1 or 1.5 days a week for Matthieu and I to move along. These UC cases are very much like an implementation. It is backed by experience. I agree we need to move faster on this. Matthieu: I agree with Henry's assessment that we need more time aside mostly. There was also a problem of fluency and getting up to speed with the entire Solid ecosystem and state of the discussion on my side as well. But with my current understanding of WAC and Solid, we seem to move along much faster. I also agree that we want to get to implementation feedback as early as possible, but that the use cases are adequatly filling a bit of that space for now. Justin: Absolutely. Pavlik: Yes. Another part of my suggestion is not expecting someone else from commenting on your PRs to make progress. Matthieu: Yes, you're perfectly right, that has been problematic in the past, I'll try to adjust to make faster progress and focus on important issues and questions during the panel. Henry: Adjusting expectations of comments to move along faster sounds good. We'll keep it in check so that it doesn't get out of control. Let's not lose the benefit of questions and feedback. Matthieu: +1 ### Closing outdated UCR issues Justin: +1 Henry: I'll follow up on it on GitHub ### Transfer of issue 191 Justin: I might have permission to do it. Matthieu: I'll ask Sarven otherwise. ## Actions * Matthieu to submit UC0 on effective access control resource discovery. * Matthieu to create issues: * How does an agent know all the resources it has access to? * How are required credentials to present to access a resource advertised? * Using extending access modes instead of to many apply policy predicates in ACP. * Matthieu to clarify whether WAC's ACLs are private by default. * Matthieu to point Henry to the extended access control modes issue/proposal and Henry to review it. * Henry and Matthieu to bootstrap the use case on privacy. * Henry to follow up on GitHub on outdated issues #87 and #89 * Matthieu to follow up on transfet of https://github.com/solid/authorization-panel/issues/191

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully