{"id":816,"date":"2008-04-16T21:49:45","date_gmt":"2008-04-16T19:49:45","guid":{"rendered":"http:\/\/notizblog.org\/?p=816"},"modified":"2022-08-17T22:53:12","modified_gmt":"2022-08-17T20:53:12","slug":"das-kleine-problem-mit-microids","status":"publish","type":"post","link":"https:\/\/notiz.blog\/2008\/04\/16\/das-kleine-problem-mit-microids\/","title":{"rendered":"Das kleine Problem mit MicroIDs"},"content":{"rendered":"\n<p>Nach den <a href=\"https:\/\/web.archive.org\/web\/20130729024650\/http:\/\/notsorelevant.com\/2008-04-14\/mybloglog-adds-microid-and-foaf\/\">Ank\u00fcndigungen<\/a>, dass <a href=\"https:\/\/notiz.blog\/tag\/mybloglog\/\">myBlogLog<\/a> <a href=\"https:\/\/web.archive.org\/web\/20060701173648\/https:\/\/microid.org\/\">MicroID<\/a> f\u00fcr die eigenen Profilseiten einsetzt (bsp.: <a href=\"https:\/\/web.archive.org\/web\/20110415105452\/http:\/\/www.mybloglog.com:80\/buzz\/members\/pfefferle\/\">www.mybloglog.com\/buzz\/members\/pfefferle\/<\/a>) habe ich mich gefragt, warum myBlogLog MicroIDs nur anbietet, nicht aber f\u00fcr die <a href=\"https:\/\/web.archive.org\/web\/20160326172343\/http:\/\/notsorelevant.com\/2008-02-15\/mybloglog-supports-microformats-but-not-microid\/\">Verifizierung der Blogs<\/a> verwendet.<\/p>\n\n\n\n<p>Aber zuerst mal eine kurze Einf\u00fchrung. MicroID ist eine einfache M\u00f6glichkeit, den Besitz von Webseiten zu validieren.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>MicroID enables anyone to claim verifiable ownership over content hosted anywhere on the web (social networking sites, discussion forums, blogs, etc.).<\/p><\/blockquote>\n\n\n\n<p>Das Prinzip ist einfach, es wird ein Hash-Wert aus zwei unterschiedlichen URLs (auch Pseudo-URLs wie z.B. &#8222;mailto:&#8220; oder &#8222;xmpp:\/\/&#8220; sind m\u00f6glich) gebildet und als Metatag in die Webseite eingebunden.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">hash = sha1(\n    sha1( <span class=\"hljs-string\">\"mailto:mustermann@example.com\"<\/span> ) \n    + \n    sha1( <span class=\"hljs-string\">\"http:\/\/www.example.com\/\"<\/span> ) \n  )<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Alternativ zu sha1 kann z.B. auch MD5 verwendet werden. Der Aufbau des Metatags sieht folgendermassen aus <code>uri+uri:algo:hash<\/code><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">meta<\/span> <span class=\"hljs-attr\">name<\/span>=<span class=\"hljs-string\">\"microid\"<\/span> \n  <span class=\"hljs-attr\">content<\/span>=<span class=\"hljs-string\">\"mailto+http:sha1:\n    ba37d92454792b65838c9827a8d75171c7241924\"<\/span> \/&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\">Der Vorteil eines propriet\u00e4ren Formats im Gegensatz zu MicroID<\/h4>\n\n\n\n<p>Was die genauen Gr\u00fcnde daf\u00fcr sind, dass <a href=\"https:\/\/notiz.blog\/tag\/mybloglog\/\">myBlogLog<\/a> ein eigenes Format verwendet wei\u00df ich nat\u00fcrlich nicht, aber schaut man sich MicroID etwas genauer an, findet man doch einige kleine Problemchen.<\/p>\n\n\n\n<p>Eigentlich ist es ja nur ein wirkliches Problem, und zwar die <abbr title=\"Uniform Resource Locator\">URL<\/abbr>&#8230; Eine <abbr title=\"Uniform Resource Locator\">URL<\/abbr> kann man auf zu viele verschieden Weisen schreiben, als dass sie eine valide ID abgeben k\u00f6nnte:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>http:\/\/example.com<\/code><\/li><li><code>http:\/\/<strong>www.<\/strong>example.com<\/code><\/li><li><code>http:\/\/example.com<strong>\/<\/strong><\/code><\/li><\/ul>\n\n\n\n<p>Zusammen mit der E-Mail &#8211; Adresse <code>mustermann@example.com<\/code> bekommt man drei verschiedene Hash-Werte:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>19358536d8c443614bc7d861f4b050ee34a549b9<\/code><\/li><li><code>05c732700bfa89cd234bb7fc08cb673f7c0d88b8<\/code><\/li><li><code>9275b4dcd7cc2c997b2a5249420b422e937d36e0<\/code><\/li><\/ul>\n\n\n\n<p>Das hei\u00dft, es kommt immer darauf an wie der Benutzer seine <abbr title=\"Uniform Resource Locator\">URL<\/abbr> bei einem entsprechenden Service angibt. Ist f\u00fcr den Metatag der Webseite <code>http:\/\/example.com<\/code> verwendet und beim Service <code>http:\/\/www.example.com\/<\/code> angegeben worden, kann die Webseite nicht verifiziert werden, da sich die Hash-Werte unterscheiden.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">L\u00f6sungsvorschl\u00e4ge<\/h4>\n\n\n\n<p>Eine m\u00f6gliche L\u00f6sung w\u00e4re alle denkbaren <abbr title=\"Uniform Resource Locator\">URL<\/abbr>s auszuprobieren, was nicht sehr performant w\u00e4re und eine menge Zeit beanspruchen w\u00fcrde. Die (meiner Meinung nach) bessere L\u00f6sung w\u00e4re eine Art &#8222;<a href=\"https:\/\/notiz.blog\/2008\/04\/15\/xrds-simple-und-dataportability\/#service-catalogue\">service catalogue<\/a>&#8220; an, in dem festgelegt ist wie z.B. die von myBlogLog verwendete MicroID-<abbr title=\"Uniform Resource Locator\">URL<\/abbr> aussieht.<\/p>\n\n\n\n<p>Ein Beispiel: <code>http:\/\/www.mybloglog.com\/buzz\/members\/<strong>Username<\/strong>\/<\/code><\/p>\n\n\n\n<p>Das Problem bezieht sich nat\u00fcrlich nur auf Services\/Communities, bei denen man keinen Einfluss auf die MicroID hat. Bei pers\u00f6nlichen Weblogs ist das nat\u00fcrlich was anderes, da die <abbr title=\"Uniform Resource Locator\">URL<\/abbr> und der Matatag vom Benutzer selbst angelegt werden.<\/p>\n\n\n\n<p>Falls jemand noch nen tollen L\u00f6sungsvorschlag h\u00e4tte w\u00e4re ich sehr dankbar, weil ich MicroID trotz allem gerne einsetzen w\u00fcrde&#8230; Das Prinzip ist einfach so sch\u00f6n simpel \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nach den Ank\u00fcndigungen, dass myBlogLog MicroID f\u00fcr die eigenen Profilseiten einsetzt (bsp.: www.mybloglog.com\/buzz\/members\/pfefferle\/) habe ich mich gefragt, warum myBlogLog MicroIDs nur anbietet, nicht aber f\u00fcr die Verifizierung der Blogs verwendet. Aber zuerst mal eine kurze Einf\u00fchrung. MicroID ist eine einfache M\u00f6glichkeit, den Besitz von Webseiten zu validieren. MicroID enables anyone to claim verifiable ownership over [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[2],"tags":[575,576,467],"class_list":{"0":"post-816","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-web","7":"tag-microid","8":"tag-mybloglog","9":"tag-service","10":"h-entry","11":"hentry"},"_links":{"self":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts\/816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/comments?post=816"}],"version-history":[{"count":3,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts\/816\/revisions"}],"predecessor-version":[{"id":22156,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts\/816\/revisions\/22156"}],"wp:attachment":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/media?parent=816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/categories?post=816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/tags?post=816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}