Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • 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

FòrumCAT

  1. Home
  2. Uncategorized
  3. @julian diving into the hard problems of building for the Fediverse at #Fedicon, starting with hilariously talking about how those hard problems look like to average users 😅

@julian diving into the hard problems of building for the Fediverse at #Fedicon, starting with hilariously talking about how those hard problems look like to average users 😅

Scheduled Pinned Locked Moved Uncategorized
fedicon
98 Posts 13 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.
  • evan@cosocial.caE evan@cosocial.ca

    @julian @naturzukunft @thisismissem i don't think there's any assumption that way.

    The one thing that the OAuth FEP assumes is that there's a way for the authorization server to validate the client ID and redirect URI by fetching the client ID.

    I have not looked closely enough at keycloak to see if there's a way to build a plugin or to have configurable executable code to do that.

    This seems like someone who really wants to use that configuration could take a few minutes to confirm.

    evan@cosocial.caE This user is from outside of this forum
    evan@cosocial.caE This user is from outside of this forum
    evan@cosocial.ca
    wrote last edited by
    #43

    @julian @naturzukunft @thisismissem

    A cursory search shows that it's possible to implement a new ClientLookupProvider with KeyCloak extension SPIs. It sounds like a fun project to do; I don't get a lot of chance to write Java code.

    1 Reply Last reply
    0
    • evan@cosocial.caE evan@cosocial.ca

      @julian @naturzukunft @thisismissem i don't think there's any assumption that way.

      The one thing that the OAuth FEP assumes is that there's a way for the authorization server to validate the client ID and redirect URI by fetching the client ID.

      I have not looked closely enough at keycloak to see if there's a way to build a plugin or to have configurable executable code to do that.

      This seems like someone who really wants to use that configuration could take a few minutes to confirm.

      naturzukunft@mastodon.socialN This user is from outside of this forum
      naturzukunft@mastodon.socialN This user is from outside of this forum
      naturzukunft@mastodon.social
      wrote last edited by
      #44

      @evan @julian @thisismissem
      "I have not looked closely enough at keycloak to see if there's a way to build a plugin or to have configurable executable code to do that."

      I don't plan to adapt a standard OAuth2 server to support ActivityPub. I think that if that's necessary, something is fundamentally wrong.

      evan@cosocial.caE 1 Reply Last reply
      0
      • naturzukunft@mastodon.socialN This user is from outside of this forum
        naturzukunft@mastodon.socialN This user is from outside of this forum
        naturzukunft@mastodon.social
        wrote last edited by
        #45

        @julian @thisismissem https://socialhub.activitypub.rocks/t/fep-d8c2-oauth-2-0-profile-for-the-activitypub-api/3575/2?u=naturzukunft

        1 Reply Last reply
        0
        • thisismissem@hachyderm.ioT thisismissem@hachyderm.io

          @evan @julian @naturzukunft OAuth isn't AP-centric, and never will be, that's probably your first error. Most OAuth clients will never need to be AP Actors.

          Discovery isn't "complex", it's literally a HTTP request to a well known endpoint for a JSON document.

          You can't do OAuth whilst ignoring all the OAuth standards.

          evan@cosocial.caE This user is from outside of this forum
          evan@cosocial.caE This user is from outside of this forum
          evan@cosocial.ca
          wrote last edited by
          #46

          @thisismissem @julian @naturzukunft the point of discovery is to find the important endpoints and parameters for the flows. Many implementers who are concentrating on a single API skip discovery because the resource provider has already defined the specific flow. Alternatively, many API providers allow client registration out of band. It is absolutely 100% OK to do OAuth without using features like discovery and dynamic client registration.

          benpate@mastodon.socialB 1 Reply Last reply
          0
          • naturzukunft@mastodon.socialN naturzukunft@mastodon.social

            @evan @julian @thisismissem
            "I have not looked closely enough at keycloak to see if there's a way to build a plugin or to have configurable executable code to do that."

            I don't plan to adapt a standard OAuth2 server to support ActivityPub. I think that if that's necessary, something is fundamentally wrong.

            evan@cosocial.caE This user is from outside of this forum
            evan@cosocial.caE This user is from outside of this forum
            evan@cosocial.ca
            wrote last edited by
            #47

            @naturzukunft @julian @thisismissem that's fine; you should do whatever it is you want.

            evan@cosocial.caE 1 Reply Last reply
            0
            • evan@cosocial.caE evan@cosocial.ca

              @naturzukunft @julian @thisismissem that's fine; you should do whatever it is you want.

              evan@cosocial.caE This user is from outside of this forum
              evan@cosocial.caE This user is from outside of this forum
              evan@cosocial.ca
              wrote last edited by
              #48

              @naturzukunft @julian @thisismissem oh, are you going to use Keycloak's built in user database, or are you going to use an adapter to fetch user data from your own database?

              evan@cosocial.caE naturzukunft@mastodon.socialN 3 Replies Last reply
              0
              • evan@cosocial.caE evan@cosocial.ca

                @naturzukunft @julian @thisismissem oh, are you going to use Keycloak's built in user database, or are you going to use an adapter to fetch user data from your own database?

                evan@cosocial.caE This user is from outside of this forum
                evan@cosocial.caE This user is from outside of this forum
                evan@cosocial.ca
                wrote last edited by
                #49

                @naturzukunft @julian @thisismissem oh, it looks like Authentik has ways to do client metadata lookup with a Webhook. Nice!

                1 Reply Last reply
                0
                • evan@cosocial.caE evan@cosocial.ca

                  @naturzukunft @julian @thisismissem oh, are you going to use Keycloak's built in user database, or are you going to use an adapter to fetch user data from your own database?

                  naturzukunft@mastodon.socialN This user is from outside of this forum
                  naturzukunft@mastodon.socialN This user is from outside of this forum
                  naturzukunft@mastodon.social
                  wrote last edited by
                  #50

                  @evan @julian @thisismissem which user data to do what ?

                  evan@cosocial.caE 1 Reply Last reply
                  0
                  • naturzukunft@mastodon.socialN naturzukunft@mastodon.social

                    @evan @julian @thisismissem which user data to do what ?

                    evan@cosocial.caE This user is from outside of this forum
                    evan@cosocial.caE This user is from outside of this forum
                    evan@cosocial.ca
                    wrote last edited by
                    #51

                    @naturzukunft @julian @thisismissem oh, sorry. By default, KeyCloak stores all the user data (name, avatar, description, so on) in its own internal PostgreSQL database, and you get an API to ask about and manage users.

                    The alternative is to add a custom UserStorageProvider class to access your own user storage and map your data to KeyCloak's schema. Applications that already have a user database often do this.

                    thisismissem@hachyderm.ioT 1 Reply Last reply
                    0
                    • evan@cosocial.caE evan@cosocial.ca

                      @naturzukunft @julian @thisismissem oh, sorry. By default, KeyCloak stores all the user data (name, avatar, description, so on) in its own internal PostgreSQL database, and you get an API to ask about and manage users.

                      The alternative is to add a custom UserStorageProvider class to access your own user storage and map your data to KeyCloak's schema. Applications that already have a user database often do this.

                      thisismissem@hachyderm.ioT This user is from outside of this forum
                      thisismissem@hachyderm.ioT This user is from outside of this forum
                      thisismissem@hachyderm.io
                      wrote last edited by
                      #52

                      @evan @naturzukunft @julian in the wild it's very uncommon to replace Keycloak's user database with something else; most commonly user migrations are performed, having been involved in several such projects.

                      evan@cosocial.caE 1 Reply Last reply
                      0
                      • evan@cosocial.caE evan@cosocial.ca

                        @naturzukunft @julian @thisismissem oh, are you going to use Keycloak's built in user database, or are you going to use an adapter to fetch user data from your own database?

                        naturzukunft@mastodon.socialN This user is from outside of this forum
                        naturzukunft@mastodon.socialN This user is from outside of this forum
                        naturzukunft@mastodon.social
                        wrote last edited by
                        #53

                        @evan @julian @thisismissem There is a mapping in the resource server between PreferredUsername and an actor. This is a hack; I had to extend it because Mastodon uses the username as a unique identifier. Without Mastodon support, it would be a mapping between IssuerUserId and Actor. The data for the mapping comes from the JWT token.

                        But that's beside the point.

                        evan@cosocial.caE thisismissem@hachyderm.ioT 2 Replies Last reply
                        0
                        • thisismissem@hachyderm.ioT thisismissem@hachyderm.io

                          @evan @naturzukunft @julian in the wild it's very uncommon to replace Keycloak's user database with something else; most commonly user migrations are performed, having been involved in several such projects.

                          evan@cosocial.caE This user is from outside of this forum
                          evan@cosocial.caE This user is from outside of this forum
                          evan@cosocial.ca
                          wrote last edited by
                          #54

                          @thisismissem @julian great, so that's what
                          @naturzukunft can do.

                          1 Reply Last reply
                          0
                          • naturzukunft@mastodon.socialN naturzukunft@mastodon.social

                            @evan @julian @thisismissem There is a mapping in the resource server between PreferredUsername and an actor. This is a hack; I had to extend it because Mastodon uses the username as a unique identifier. Without Mastodon support, it would be a mapping between IssuerUserId and Actor. The data for the mapping comes from the JWT token.

                            But that's beside the point.

                            evan@cosocial.caE This user is from outside of this forum
                            evan@cosocial.caE This user is from outside of this forum
                            evan@cosocial.ca
                            wrote last edited by
                            #55

                            @naturzukunft @julian @thisismissem I think your point was that any configuration that requires adding plugins or adapters for KeyCloak is a bad architecture, and you're committed to using KC entirely off-the-shelf.

                            thisismissem@hachyderm.ioT 1 Reply Last reply
                            0
                            • naturzukunft@mastodon.socialN naturzukunft@mastodon.social

                              @evan @julian @thisismissem There is a mapping in the resource server between PreferredUsername and an actor. This is a hack; I had to extend it because Mastodon uses the username as a unique identifier. Without Mastodon support, it would be a mapping between IssuerUserId and Actor. The data for the mapping comes from the JWT token.

                              But that's beside the point.

                              thisismissem@hachyderm.ioT This user is from outside of this forum
                              thisismissem@hachyderm.ioT This user is from outside of this forum
                              thisismissem@hachyderm.io
                              wrote last edited by
                              #56

                              @naturzukunft @evan @julian we have a userinfo endpoint now in mastodon that gives you a unique subject (sub) claim: https://docs.joinmastodon.org/methods/oauth/#userinfo

                              This is all discoverable via standards that exist in OAuth (with a touch of OIDC language)

                              evan@cosocial.caE 1 Reply Last reply
                              0
                              • evan@cosocial.caE evan@cosocial.ca

                                @naturzukunft @julian @thisismissem I think your point was that any configuration that requires adding plugins or adapters for KeyCloak is a bad architecture, and you're committed to using KC entirely off-the-shelf.

                                thisismissem@hachyderm.ioT This user is from outside of this forum
                                thisismissem@hachyderm.ioT This user is from outside of this forum
                                thisismissem@hachyderm.io
                                wrote last edited by
                                #57

                                @evan @naturzukunft @julian as Client ID Metadata Documents move through the standards process, I would assume keycloak will adopt them and Client ID Prefixes.

                                thisismissem@hachyderm.ioT evan@cosocial.caE 2 Replies Last reply
                                0
                                • thisismissem@hachyderm.ioT thisismissem@hachyderm.io

                                  @evan @naturzukunft @julian as Client ID Metadata Documents move through the standards process, I would assume keycloak will adopt them and Client ID Prefixes.

                                  thisismissem@hachyderm.ioT This user is from outside of this forum
                                  thisismissem@hachyderm.ioT This user is from outside of this forum
                                  thisismissem@hachyderm.io
                                  wrote last edited by
                                  #58

                                  @evan @naturzukunft @julian but keycloak being able to understand wtf a json-ld document of type Service or Application is? Incredibly unlikely, especially when the contents within isn't even remotely aligned with the IANA registry for Dynamic Client Registration Metadata values.

                                  evan@cosocial.caE 1 Reply Last reply
                                  0
                                  • thisismissem@hachyderm.ioT thisismissem@hachyderm.io

                                    @evan @naturzukunft @julian as Client ID Metadata Documents move through the standards process, I would assume keycloak will adopt them and Client ID Prefixes.

                                    evan@cosocial.caE This user is from outside of this forum
                                    evan@cosocial.caE This user is from outside of this forum
                                    evan@cosocial.ca
                                    wrote last edited by
                                    #59

                                    @thisismissem @naturzukunft @julian but they don't work right now, out of the box? I think that doesn't meet his requirements then.

                                    thisismissem@hachyderm.ioT 1 Reply Last reply
                                    0
                                    • thisismissem@hachyderm.ioT thisismissem@hachyderm.io

                                      @evan @naturzukunft @julian but keycloak being able to understand wtf a json-ld document of type Service or Application is? Incredibly unlikely, especially when the contents within isn't even remotely aligned with the IANA registry for Dynamic Client Registration Metadata values.

                                      evan@cosocial.caE This user is from outside of this forum
                                      evan@cosocial.caE This user is from outside of this forum
                                      evan@cosocial.ca
                                      wrote last edited by
                                      #60

                                      @thisismissem @julian sorry, I don't know what you're talking about.

                                      KeyCloak has an extension mechanism and you can use it to retrieve a Client object from somewhere besides the built-in database. But someone needs to write that plugin. @naturzukunft said it wasn't acceptable for him to use any kind of extension or plugin.

                                      https://cosocial.ca/@evan/114972162312054007

                                      1 Reply Last reply
                                      0
                                      • thisismissem@hachyderm.ioT thisismissem@hachyderm.io

                                        @naturzukunft @evan @julian we have a userinfo endpoint now in mastodon that gives you a unique subject (sub) claim: https://docs.joinmastodon.org/methods/oauth/#userinfo

                                        This is all discoverable via standards that exist in OAuth (with a touch of OIDC language)

                                        evan@cosocial.caE This user is from outside of this forum
                                        evan@cosocial.caE This user is from outside of this forum
                                        evan@cosocial.ca
                                        wrote last edited by
                                        #61

                                        @thisismissem @naturzukunft @julian hey, that brings up a great point. Does Mastodon support clients using OAuth for accessing the read-only parts of the API (reading an actor, reading an outbox, reading a note)? I've done it with no authentication and with HTTP Signatures but I don't know if you can use OAuth. That would be a huge step in the right direction.

                                        thisismissem@hachyderm.ioT 1 Reply Last reply
                                        0
                                        • evan@cosocial.caE evan@cosocial.ca

                                          @thisismissem @naturzukunft @julian but they don't work right now, out of the box? I think that doesn't meet his requirements then.

                                          thisismissem@hachyderm.ioT This user is from outside of this forum
                                          thisismissem@hachyderm.ioT This user is from outside of this forum
                                          thisismissem@hachyderm.io
                                          wrote last edited by
                                          #62

                                          @evan @naturzukunft @julian because we're an internet draft in front of the OAuth Working Group at IETF and we're having to balance a dozen different needs and compatibility issues. But we already have adoption in some places (bluesky/AT Proto being one of the most notable adopters)

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups