Skip to content
0
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

fedi wiki

  1. Home
  2. Technical Discussion
  3. Question re: Origin Based Security Model (FEP-fe34)

Question re: Origin Based Security Model (FEP-fe34)

Scheduled Pinned Locked Moved Technical Discussion
39 Posts 9 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • thisismissem@activitypub.spaceT thisismissem@activitypub.space

    Well, yeah, that's why I linked what T&S is doing here to fix the moderator use case. At present I don't know of anyone sending cross-actor delete/update actions, so we'd be adding capability with the moderatedBy

    julian@activitypub.spaceJ This user is from outside of this forum
    julian@activitypub.spaceJ This user is from outside of this forum
    julian@activitypub.space
    wrote on last edited by
    #21

    @thisismissem hmm, I believe Lemmy and Piefed send cross actor Deletes, but they might be Announces by the group actor.

    They (and I) don't use moderatedBy but rather the group actor's attributedTo

    Just want to make sure you're aware of that existing prior art.

    julian@activitypub.spaceJ trwnh@mastodon.socialT 2 Replies Last reply
    0
    • julian@activitypub.spaceJ julian@activitypub.space

      @thisismissem hmm, I believe Lemmy and Piefed send cross actor Deletes, but they might be Announces by the group actor.

      They (and I) don't use moderatedBy but rather the group actor's attributedTo

      Just want to make sure you're aware of that existing prior art.

      julian@activitypub.spaceJ This user is from outside of this forum
      julian@activitypub.spaceJ This user is from outside of this forum
      julian@activitypub.space
      wrote on last edited by
      #22

      @nutomic@lemmy.ml @rimu@piefed.social @bent0_b0x@norden.social — do y'all send Delete activities with the moderator actor?

      (Announce wrapping aside.)

      rimu@piefed.socialR 1 Reply Last reply
      0
      • julian@activitypub.spaceJ julian@activitypub.space

        @nutomic@lemmy.ml @rimu@piefed.social @bent0_b0x@norden.social — do y'all send Delete activities with the moderator actor?

        (Announce wrapping aside.)

        rimu@piefed.socialR This user is from outside of this forum
        rimu@piefed.socialR This user is from outside of this forum
        rimu@piefed.social
        wrote on last edited by
        #23

        Yes.

        This is easy in FEP 1b12-land because each community has a list of moderators so receiving instances know who to allow.

        Getting a list of instance admins requires calling the Lemmy API, unfortunately. So PieFed has a cron job that does that once per day for all instances. Admins rarely change.

        julian@activitypub.spaceJ nutomic@lemmy.mlN 2 Replies Last reply
        0
        • rimu@piefed.socialR rimu@piefed.social

          Yes.

          This is easy in FEP 1b12-land because each community has a list of moderators so receiving instances know who to allow.

          Getting a list of instance admins requires calling the Lemmy API, unfortunately. So PieFed has a cron job that does that once per day for all instances. Admins rarely change.

          julian@activitypub.spaceJ This user is from outside of this forum
          julian@activitypub.spaceJ This user is from outside of this forum
          julian@activitypub.space
          wrote on last edited by
          #24

          > @rimu@piefed.social said:
          >
          > Getting a list of instance admins requires calling the Lemmy API, unfortunately.

          Wait, why don't we write a mini FEP to extend this? attributedTo on the instance/application actor?

          • https://codeberg.org/fediverse/fep/src/branch/main/fep/2677/fep-2677.md
          • extending 1b12
          rimu@piefed.socialR silverpill@mitra.socialS 2 Replies Last reply
          0
          • julian@activitypub.spaceJ julian@activitypub.space

            > @rimu@piefed.social said:
            >
            > Getting a list of instance admins requires calling the Lemmy API, unfortunately.

            Wait, why don't we write a mini FEP to extend this? attributedTo on the instance/application actor?

            • https://codeberg.org/fediverse/fep/src/branch/main/fep/2677/fep-2677.md
            • extending 1b12
            rimu@piefed.socialR This user is from outside of this forum
            rimu@piefed.socialR This user is from outside of this forum
            rimu@piefed.social
            wrote on last edited by
            #25

            That sounds fine to me.

            On communities the moderators are just an array of strings which are the activitypub actor IDs of the mods. I think NodeBB has an array of actor objects though?

            Anyway whatever it is, consistency with how the communities do it would be nice.

            julian@activitypub.spaceJ 1 Reply Last reply
            0
            • rimu@piefed.socialR rimu@piefed.social

              That sounds fine to me.

              On communities the moderators are just an array of strings which are the activitypub actor IDs of the mods. I think NodeBB has an array of actor objects though?

              Anyway whatever it is, consistency with how the communities do it would be nice.

              julian@activitypub.spaceJ This user is from outside of this forum
              julian@activitypub.spaceJ This user is from outside of this forum
              julian@activitypub.space
              wrote on last edited by
              #26

              > @rimu@piefed.social said:
              >
              > I think NodeBB has an array of actor objects though

              Is this causing problems for you? I can send just the IDs instead.

              rimu@piefed.socialR 1 Reply Last reply
              0
              • julian@activitypub.spaceJ julian@activitypub.space

                > @rimu@piefed.social said:
                >
                > I think NodeBB has an array of actor objects though

                Is this causing problems for you? I can send just the IDs instead.

                rimu@piefed.socialR This user is from outside of this forum
                rimu@piefed.socialR This user is from outside of this forum
                rimu@piefed.social
                wrote on last edited by
                #27

                It's fine, I've already adjusted the code at my end. I don't know about Lemmy though.

                nutomic@lemmy.mlN 1 Reply Last reply
                0
                • rimu@piefed.socialR rimu@piefed.social

                  Yes.

                  This is easy in FEP 1b12-land because each community has a list of moderators so receiving instances know who to allow.

                  Getting a list of instance admins requires calling the Lemmy API, unfortunately. So PieFed has a cron job that does that once per day for all instances. Admins rarely change.

                  nutomic@lemmy.mlN This user is from outside of this forum
                  nutomic@lemmy.mlN This user is from outside of this forum
                  nutomic@lemmy.ml
                  wrote on last edited by
                  #28

                  Lemmy doesnt even federate admin status in any way, instead we trust that actions which are coming from the same instance as the community or post are valid. So essentially origin-based security model.

                  1 Reply Last reply
                  0
                  • rimu@piefed.socialR rimu@piefed.social

                    It's fine, I've already adjusted the code at my end. I don't know about Lemmy though.

                    nutomic@lemmy.mlN This user is from outside of this forum
                    nutomic@lemmy.mlN This user is from outside of this forum
                    nutomic@lemmy.ml
                    wrote on last edited by
                    #29

                    Looks like this, only IDs: https://github.com/LemmyNet/lemmy/blob/main/crates/apub/apub/assets/lemmy/collections/group_moderators.json

                    julian@activitypub.spaceJ 1 Reply Last reply
                    0
                    • nutomic@lemmy.mlN nutomic@lemmy.ml

                      Looks like this, only IDs: https://github.com/LemmyNet/lemmy/blob/main/crates/apub/apub/assets/lemmy/collections/group_moderators.json

                      julian@activitypub.spaceJ This user is from outside of this forum
                      julian@activitypub.spaceJ This user is from outside of this forum
                      julian@activitypub.space
                      wrote on last edited by
                      #30

                      Right, that's the "Group Moderation" section of FEP 1b12, right?

                      It may be a good idea to extend this concept to the instance/application actor as well. There's no urgent need to implement and consume, but it would be fairly simple thing to serve on our respective softwares I think.

                      nutomic@lemmy.mlN informapirata@activitypub.spaceI 2 Replies Last reply
                      0
                      • julian@activitypub.spaceJ julian@activitypub.space

                        @thisismissem hmm, I believe Lemmy and Piefed send cross actor Deletes, but they might be Announces by the group actor.

                        They (and I) don't use moderatedBy but rather the group actor's attributedTo

                        Just want to make sure you're aware of that existing prior art.

                        trwnh@mastodon.socialT This user is from outside of this forum
                        trwnh@mastodon.socialT This user is from outside of this forum
                        trwnh@mastodon.social
                        wrote on last edited by
                        #31

                        @julian @thisismissem @technical-discussion Note that a community's attributedTo doesn't work for anything outside of communities, but a moderator can be declared for any object.

                        Right now, attributedTo.inbox is the last option to send your moderation activities. There are probably more relevant options to try first. The work is to identify those options and make them consistently discoverable. See "Delegated control" here: https://github.com/swicg/activitypub-trust-and-safety/issues/24#issuecomment-4365331657

                        1 Reply Last reply
                        0
                        • julian@activitypub.spaceJ julian@activitypub.space

                          Right, that's the "Group Moderation" section of FEP 1b12, right?

                          It may be a good idea to extend this concept to the instance/application actor as well. There's no urgent need to implement and consume, but it would be fairly simple thing to serve on our respective softwares I think.

                          nutomic@lemmy.mlN This user is from outside of this forum
                          nutomic@lemmy.mlN This user is from outside of this forum
                          nutomic@lemmy.ml
                          wrote on last edited by
                          #32

                          Yes exactly that FEP. Federating admin status would make sense for informational purposes, but rejecting mod actions based on that could cause problems as I mentioned in my previous comment.

                          julian@activitypub.spaceJ 1 Reply Last reply
                          0
                          • julian@activitypub.spaceJ julian@activitypub.space

                            Right, that's the "Group Moderation" section of FEP 1b12, right?

                            It may be a good idea to extend this concept to the instance/application actor as well. There's no urgent need to implement and consume, but it would be fairly simple thing to serve on our respective softwares I think.

                            informapirata@activitypub.spaceI This user is from outside of this forum
                            informapirata@activitypub.spaceI This user is from outside of this forum
                            informapirata@activitypub.space
                            wrote on last edited by
                            #33

                            Sorry @julian and @nutomic@lemmy.ml if this has almost nothing to do with this, but I'd like to point out that Lemmy (perhaps Piefed as well, but I'm not sure) has a very interesting feature: a community moderator can also be a user of an instance other than the one where that community is physically located.
                            This isn't possible with NodeBB because the API call isn't considered valid.
                            This means that the Lemmy development staff has managed to develop a way to somehow federate content moderation.

                            1 Reply Last reply
                            0
                            • nutomic@lemmy.mlN nutomic@lemmy.ml

                              Yes exactly that FEP. Federating admin status would make sense for informational purposes, but rejecting mod actions based on that could cause problems as I mentioned in my previous comment.

                              julian@activitypub.spaceJ This user is from outside of this forum
                              julian@activitypub.spaceJ This user is from outside of this forum
                              julian@activitypub.space
                              wrote on last edited by
                              #34

                              > @nutomic@lemmy.ml said:
                              >
                              > but rejecting mod actions based on that could cause problems as I mentioned in my previous comment.

                              So to confirm then, you serve the moderator collection but you don't use it to determine whether an actor is able to modify/delete content on that instance, is that right?

                              Curious to know what those problems are.

                              nutomic@lemmy.mlN 1 Reply Last reply
                              0
                              • julian@activitypub.spaceJ julian@activitypub.space

                                > @rimu@piefed.social said:
                                >
                                > Getting a list of instance admins requires calling the Lemmy API, unfortunately.

                                Wait, why don't we write a mini FEP to extend this? attributedTo on the instance/application actor?

                                • https://codeberg.org/fediverse/fep/src/branch/main/fep/2677/fep-2677.md
                                • extending 1b12
                                silverpill@mitra.socialS This user is from outside of this forum
                                silverpill@mitra.socialS This user is from outside of this forum
                                silverpill@mitra.social
                                wrote on last edited by
                                #35

                                @julian @rimu Do you want specifically FEP-2677? Please consider using FEP-d556 instead, it is very similar to FEP-2677 but doesn't require NodeInfo. Also, it is FINAL.

                                julian@activitypub.spaceJ 1 Reply Last reply
                                0
                                • silverpill@mitra.socialS silverpill@mitra.social

                                  @julian @rimu Do you want specifically FEP-2677? Please consider using FEP-d556 instead, it is very similar to FEP-2677 but doesn't require NodeInfo. Also, it is FINAL.

                                  julian@activitypub.spaceJ This user is from outside of this forum
                                  julian@activitypub.spaceJ This user is from outside of this forum
                                  julian@activitypub.space
                                  wrote on last edited by
                                  #36

                                  @silverpill@mitra.social was not aware of d556. I'll make the swap, thanks.

                                  1 Reply Last reply
                                  0
                                  • silverpill@mitra.socialS silverpill@mitra.social

                                    No, it's not wrong.

                                    I think the good of group moderation currently outweighs the theoretical bad of same-origin impersonation.

                                    silverpill@mitra.socialS This user is from outside of this forum
                                    silverpill@mitra.socialS This user is from outside of this forum
                                    silverpill@mitra.social
                                    wrote on last edited by
                                    #37

                                    @julian I've done a review on FEP-fe34 and here's a more nuanced answer.

                                    The same-origin assumption is necessary for authentication, because it is not possible to not trust the server of origin.

                                    But it is not necessary for authorization. It is desirable, because that makes authorization procedures aligned with authentication procedures. But we can shift the burden of permission checks to the recipient.

                                    We might even have to do this, if we discover that servers accepting arbitrary payloads (C2S, FEP-ae97) can't reliably enforce the isolation of actors.

                                    But for the time being, you can accept same-origin admin deletions.

                                    1 Reply Last reply
                                    0
                                    • julian@activitypub.spaceJ julian@activitypub.space

                                      > @nutomic@lemmy.ml said:
                                      >
                                      > but rejecting mod actions based on that could cause problems as I mentioned in my previous comment.

                                      So to confirm then, you serve the moderator collection but you don't use it to determine whether an actor is able to modify/delete content on that instance, is that right?

                                      Curious to know what those problems are.

                                      nutomic@lemmy.mlN This user is from outside of this forum
                                      nutomic@lemmy.mlN This user is from outside of this forum
                                      nutomic@lemmy.ml
                                      wrote on last edited by
                                      #38

                                      We use the moderator collection. But if that fails we check if the mod is from the same instance as the community or the post/comment being removed. If thats true we also allow the action.

                                      julian@activitypub.spaceJ 1 Reply Last reply
                                      0
                                      • nutomic@lemmy.mlN nutomic@lemmy.ml

                                        We use the moderator collection. But if that fails we check if the mod is from the same instance as the community or the post/comment being removed. If thats true we also allow the action.

                                        julian@activitypub.spaceJ This user is from outside of this forum
                                        julian@activitypub.spaceJ This user is from outside of this forum
                                        julian@activitypub.space
                                        wrote on last edited by
                                        #39

                                        Understood, so the mod check is done but also accepts origin-based security as per fe34.

                                        That actually does make sense and allows for cross-origin moderation.

                                        1 Reply Last reply
                                        0

                                        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                        With your input, this post could be even better 💗

                                        Register Login
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes


                                        • Login

                                        • Don't have an account? Register

                                        • Login or register to search.
                                        Powered by NodeBB Contributors
                                        • First post
                                          Last post