#social 2017-02-05

2017-02-05 UTC
evanminto joined the channel
#
evanminto
geppy: BTW, I did some more reading and I didn’t realize IndieAuth.com actually uses JWTs with the “me” value in the payload, so it IS possible to find the user’s token endpoint!
#
aaronpk
hmm the tokens are meant to be opaque
#
evanminto
Really?
#
aaronpk
perhaps i should encrypt them so you can't accidentally parse them
#
evanminto
Haha damn
#
Loqi
awesome
#
aaronpk
you likely won't get parseable tokens from other peoples' authorization servers, so don't rely on that
#
evanminto
Ah OK
#
evanminto
So I guess that means you can’t use IndieAuth tokens without providing the corresponding “me” value out of band?
#
evanminto
(Or having it be assumed, like in MicroPub)
#
aaronpk
it depends on which use case you're talking about
#
evanminto
I was exploring using IndieAuth tokens in ActivityPub
#
aaronpk
ah cool so more like how micropub uses it
#
evanminto
But when the server sees the token, it has no way of knowing which user it’s supposed to be authenticating.
#
evanminto
I think so
#
aaronpk
oh i see the problem
#
aaronpk
the difference, rather
#
aaronpk
with micropub, the only server that gets these tokens is your own. but with activitypub you're sending the tokens to other servers.
#
evanminto
Yep
#
aaronpk
this is the difference between authorization and authentication/identification
#
evanminto
I suppose you’re right. I guess IndieAuth is only doing authorization.
#
evanminto
Er
#
evanminto
Wait
#
evanminto
I always get these mixed up :{
#
evanminto
*:P
#
aaronpk
indieauth is intended to do both
#
evanminto
But it’s unable to authenticate the user for anybody but the user’s own site.
#
aaronpk
give me a sec to dig up some links
#
aaronpk
hm i might need to work through this a bit more
#
aaronpk
it sounds like what would be needed is to use openid connect with indieauth in order to get what it calls "ID tokens"
#
aaronpk
it's interesting how we sidestep this whole issue with webmention by having the receiver fetch the content from the sender rather than needing authenticated POST requests
#
aaronpk
evanminto: i had another thought, based on some previous brainstorming we had around private webmentions...
#
aaronpk
when someone is sending an activity via ActivityPub, presumably it's because they have an existing relationship with the receiver, correct?
#
aaronpk
(e.g. the receiver has previously "followed" the sender)
#
evanminto
Most of the time, but not necessarily
#
evanminto
Following is an activity too
#
aaronpk
what i'm getting at is at the point that relationship is established, the server that's going to later receive activities can issue an access token
#
aaronpk
so senders would be sending a different access token to each place they're delivering activities
#
aaronpk
that way receivers can implement whatever access token storage/generation/verification they want
#
aaronpk
e.g. if i'm receiving activities at my "inbox", I only have to worry about validating access tokens i've issued myself
#
aaronpk
that also has the benefit of not locking the whole ecosystem into a specific type of access token, which means the access token part is free to evolve as security requirements change over time
#
evanminto
Hmmm
#
evanminto
That’s a pretty cool idea.
#
evanminto
Though it means federated and servers need to store a different token for each server.
#
evanminto
Maybe not the worst thing
#
evanminto
Whoops
#
evanminto
“Federated servers and clients”
#
aaronpk
yeah, and with that in mind, i suspect the access token flow described here would work: https://indieweb.org/private-webmention#Protocol
#
aaronpk
haven't totally thought that through w.r.t activitypub yet, but there are a few interoperable implementations of that flow for private webmentions
#
evanminto
Oh yeah, that’s pretty interesting.
#
evanminto
I guess you could do something similar for a Follow activity
#
aaronpk
the "follow" activity essentially becomes the way that access token is established
strugee joined the channel