paint-brush
Tener un identificador de mastodonte inmutableby@nfrankel
1,334
1,334

Tener un identificador de mastodonte inmutable

Nicolas Fränkel4m2022/12/22
Read on Terminal Reader

Mastodon se diferencia de Twitter en que es una federación de servidores Mastodon, que se ejecutan de forma independiente y están conectados. El primer problema cuando uno quiere crear una cuenta de Mastodon es elegir la instancia correcta. El proceso se basa en la [especificación WebFinger](https://www.rfc-editor.org/rfc/ rfc7033)
featured image - Tener un identificador de mastodonte inmutable
Nicolas Fränkel HackerNoon profile picture

Queda por ver si Twitter se derrumba, aunque algunas señales son reveladoras. Pase lo que pase, sigo invirtiendo un poco en Mastodon. La semana pasada, mostré cómo sincronizar el contenido de uno entre Twitter y Mastodon.


Esta semana configuré un identificador de Mastodon en mi dominio que redirige a mi página de perfil: quiero explicar cómo lo logré y los problemas que sigo teniendo.

Mastodonte 101

Mastodon se diferencia de Twitter en que no está centralizado: es una federación de servidores Mastodon, que se ejecutan de forma independiente y están conectados: la Fediverse . Para ser precisos, el Fediverse es más que nodos Mastodon, pero no vayamos tan lejos.


El primer problema cuando uno quiere crear una cuenta de Mastodon es elegir la instancia correcta. Mi primera opción fue mastodon.social , pero en ese momento estaba cerrado a nuevas cuentas. Puse mis ojos en mastodon.top sin ninguna razón más que estaba en la lista de propuestas y era francés.


La elección de un servidor no es tan importante ya que siempre puedes mover tu cuenta a otra instancia y mantener a tus seguidores. Tenga en cuenta que dejará (y perderá) su contenido en el servidor original. En todos los casos, el servidor asigna un espacio de nombres a su perfil; por lo tanto, su identificador cambia.


Actualmente, soy @[email protected] . Pero, ¿tal vez me uniré a mis amigos en foojay.social o estableceré mi propio frankel.social en el futuro? En ambos casos, tendré que cambiar el sufijo de mi identificador.


Sin embargo, publico mi identificador en muchos sitios y no quiero olvidar ninguna actualización al migrar. Por lo tanto, requiero que el identificador sea inmutable .


Mencioné anteriormente que los nodos de Mastodon pertenecen a una red llamada Fediverse. Los nodos de Fediverse se pueden conectar a través de varios protocolos diferentes . Los nodos Mastodon usan ActivityPub . Debajo, ActivityPub se basa en WebFinger para encontrar la ubicación correcta de un identificador.

WebFinger

Mastodon necesita traducir @[email protected] a https://mastodon.top/web/@frankel . La traducción debe ocurrir en cualquier instancia de Mastodon, independientemente de su dominio. El proceso se basa en la especificación WebFinger , también conocida como RFC 7033:


WebFinger, como se describe en RFC 7033 , es una especificación que define un método para resolver enlaces a un recurso , dado solo un URI en un servidor en particular. Esto permite que cualquiera pueda buscar dónde se encuentra un recurso sin tener que saber su ubicación exacta de antemano; por ejemplo, por correo electrónico o número de teléfono. Esta búsqueda se dirige al punto final /.well-known/webfinger y se pasa un parámetro de consulta de resource junto con la búsqueda. El recurso URI utilizado con Mastodon es el acct: URI como se describe en RFC 7565 , con el nombre de usuario de un perfil alojado en un dominio particular.


-- ¿Qué es WebFinger y por qué se usa?


De acuerdo a lo anterior, al buscar mi perfil, la consulta es la siguiente: https://mastodon.top/.well-known/webfinger?resource=acct:[email protected] . Puede verificar yendo a una instancia de Mastodon en la que haya iniciado sesión, buscando mi identificador y observando el tráfico a través de las herramientas de desarrollo de su navegador preferido.


La respuesta es la siguiente:

 { "subject":"acct:[email protected]", "aliases":[ "https://mastodon.top/@frankel", #1 "https://mastodon.top/users/frankel" #1 ], "links":[ { "rel":"http://webfinger.net/rel/profile-page", #2 "type":"text/html", "href":"https://mastodon.top/@frankel" }, { "rel":"self", "type":"application/activity+json", "href":"https://mastodon.top/users/frankel" }, { "rel":"http://ostatus.org/schema/1.0/subscribe", "template":"https://mastodon.top/authorize_interaction?uri={uri}" } ] }
  1. URL del perfil
  2. rel para mastodonte

El mango de mastodonte inmutable

Debería funcionar si devuelvo la misma respuesta a la misma consulta en un dominio personalizado. Eso es lo que hice: https://blog.frankel.ch/.well-known/webfinger?resource=acct:[email protected] . Debido a que es una página estática y yo soy la única cuenta, no necesitamos el parámetro de consulta: https://blog.frankel.ch/.well-known/webfinger .


Dado esto, puedo buscar en https://mastodon.top con @[email protected] (o cualquier identificador @frankel.ch ), y arroja los resultados esperados:




Revisé otras instancias, por ejemplo , https://mastodon.social/ , pero no funciona. La razón es simple. Al buscar en la instancia en la que inició sesión, el XHR es https://mastodon.top/api/v2/search?q=@[email protected]&resolve=true&limit=5 ; cuando no, es https://mastodon.top/api/v2/search?q=@[email protected]&resolve=false&limit=5 .


Conclusión: solo puede consultar identificadores en la misma instancia cuando no está autenticado.


La documentación confirma que si resolve es false , entonces la consulta no intenta usar WebFinger:


resolve


booleano. ¿Intentar buscar en WebFinger? El valor predeterminado es falso.


-- Realizar una búsqueda


Conclusión

La teoría detrás de Mastodon y WebFinger es fascinante. Me las arreglé para configurar mi identificador de mastodonte inmutable @[email protected] . Ese es el identificador que puedo comunicar a los seguidores potenciales: si me muevo a otro servidor, actualizaré el webfinger con mis nuevas coordenadas.


El truco funciona porque soy el único usuario de Mastodon en mi dominio. Si tiene varios, deberá ir más allá de una página estática para devolver una ID diferente según el parámetro acct: el resto sigue igual.


Para llegar más lejos:




Publicado originalmente en A Java Geek el 18 de diciembre de 2022


Foto de Shashank Rana en Unsplash