{"id":6969,"date":"2016-01-08T16:16:42","date_gmt":"2016-01-08T15:16:42","guid":{"rendered":"https:\/\/ingmarverheij.com\/?p=6969"},"modified":"2018-02-13T09:08:23","modified_gmt":"2018-02-13T08:08:23","slug":"sso-to-sharefile-with-unified-gateway","status":"publish","type":"post","link":"https:\/\/ingmarverheij.com\/en\/sso-to-sharefile-with-unified-gateway\/","title":{"rendered":"SSO to ShareFile with Unified Gateway"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-thumbnail wp-image-6971\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/ShareFile-150x150.png\" alt=\"ShareFile\" width=\"150\" height=\"150\" srcset=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/ShareFile-150x150.png 150w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/ShareFile-50x50.png 50w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/ShareFile.png 300w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>With the release of NetScaler 11 the Unified Gateway feature became available. Besides that the Unified Gateway enables companies to create a single point of entry for different types of connection (from full blown VPN to ICA proxy and everything in between) it also comes with a landing page where users can access their (SaaS) applications. This is a great addition to the (already long) list of use-cases for a NetScaler in your network.<\/p>\n<p>Now if there&#8217;s something users hate than that&#8217;s doing things more than once. So when companies make the (ow so logical) transition from &#8220;legacy&#8221; Windows applications to SaaS applications, so they <a href=\"https:\/\/ingmarverheij.com\/i-dont-care-as-a-service\/\" target=\"_blank\" rel=\"noopener\">no longer have to care about how that application works \/ runs \/ updates<\/a>, the end-user is faced with a\u00a0number of\u00a0new challenges:<\/p>\n<ul>\n<li>Where can I find that new SaaS application?<\/li>\n<li>Why do I have to logon\u00a0<em>again<\/em>?<\/li>\n<li>Why do I have multiple passwords (that change on different moments)?<\/li>\n<\/ul>\n<p>This is where the Unified Gateway comes into play, it offers a useful landing page where users can find their applications (hey that sounds familiar!). And since the industry made <a href=\"https:\/\/en.wikipedia.org\/wiki\/Security_Assertion_Markup_Language\" target=\"_blank\" rel=\"noopener\">SAML<\/a> the de-facto standard for authentication to SaaS applications, that might solve the other two challenges!<\/p>\n<p>Long introduction to why I wanted to write this blog, but here&#8217;s how you can achieve a Singe Sign-On (SSO) experience from the NetScaler Unified Gateway to <a href=\"https:\/\/www.sharefile.com\/\" target=\"_blank\" rel=\"noopener\">ShareFile<\/a> using SAML.<\/p>\n<p><!--more--><\/p>\n<p>.<\/p>\n<h1>SAML IdP<\/h1>\n<p>For the sake of the argument I&#8217;m assuming you know what SAML is and that you&#8217;ve setup an Identity Provider<\/p>\n<p>In my example I&#8217;m using the NetScaler as a SAML IdP, because I can and because it&#8217;s actually a really good fit. The configuration of both your ShareFile account and the NetScaler is documented over here (<a href=\"https:\/\/support.citrixonline.com\/en_US\/ShareFile\/help_files\/SF150011?Title=Configure+ShareFile+Single+Sign-On+with+NetScaler\" target=\"_blank\" rel=\"noopener\">support.citrixonline.com<\/a>).<\/p>\n<p>&nbsp;<\/p>\n<h1>Unified Gateway<\/h1>\n<p>I&#8217;d like my users to have an easy overview of the SaaS-applications and web links that they can use whenever they want.\u00a0For my <strong>demo<\/strong> environment that roughly looks like this:<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-14.58.57.png\" rel=\"attachment wp-att-6973\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6973 alignnone\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-14.58.57-1024x700.png\" alt=\"Unified Gateway - Web Apps\" width=\"501\" height=\"342\" srcset=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-14.58.57-1024x700.png 1024w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-14.58.57-300x205.png 300w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-14.58.57-768x525.png 768w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-14.58.57-50x34.png 50w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-14.58.57.png 1768w\" sizes=\"auto, (max-width: 501px) 100vw, 501px\" \/><\/a><\/p>\n<p>As you can see that includes <strong>ShareFile<\/strong>, the subject of this article. Let&#8217;s dive a bit deeper in the configuration.<\/p>\n<p>&nbsp;<\/p>\n<h2>LDAP Policy<\/h2>\n<p>We need to add an Active Directory attribute to the LDAP policy assigned to the Unified Gateway.\u00a0In the properties of your Universal Gateway vServer go to the\u00a0<strong>Authentication\u00a0<\/strong>section and click on your <strong>LDAP policy<\/strong>.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.02.52.png\" rel=\"attachment wp-att-6992\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-6992\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.02.52-300x152.png\" alt=\"Authentication\" width=\"300\" height=\"152\" srcset=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.02.52-300x152.png 300w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.02.52-50x25.png 50w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.02.52.png 474w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Select the\u00a0<strong>LDAP Policy<\/strong> and click on\u00a0<strong>Edit<\/strong> &gt;\u00a0<strong>Edit Server<\/strong><\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.04.36.png\" rel=\"attachment wp-att-6993\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6993\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.04.36-300x105.png\" alt=\"VPN Virtual Server Authentication LDAP Policy Binding\" width=\"429\" height=\"150\" srcset=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.04.36-300x105.png 300w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.04.36-768x269.png 768w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.04.36-50x17.png 50w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.04.36.png 858w\" sizes=\"auto, (max-width: 429px) 100vw, 429px\" \/><\/a><\/p>\n<p>Click on the <strong>More<\/strong> link (below) and add &#8216;<em>mail<\/em>&#8216; (without quotes, all lower capital) in the <strong>Attribute 1<\/strong> field.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.06.17.png\" rel=\"attachment wp-att-6994\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6994\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.06.17-300x195.png\" alt=\"Attribute Fields\" width=\"231\" height=\"150\" srcset=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.06.17-300x195.png 300w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.06.17-50x32.png 50w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.06.17.png 524w\" sizes=\"auto, (max-width: 231px) 100vw, 231px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>Bookmark<\/h2>\n<h3>Create bookmark<\/h3>\n<p>On your NetScaler, go to <strong>NetScaler Gateway<\/strong> &gt; <strong>Resources<\/strong> &gt; <strong>Bookmark<\/strong> and add a new resource.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.15.29.png\" rel=\"attachment wp-att-6974\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6974\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.15.29-218x300.png\" alt=\"NetScaler Gateway &gt; Resources &gt; Bookmarks\" width=\"250\" height=\"344\" srcset=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.15.29-218x300.png 218w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.15.29-36x50.png 36w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.15.29.png 500w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/a><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.17.34.png\" rel=\"attachment wp-att-6975\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6975\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.17.34-168x300.png\" alt=\"Bookmark - ShareFile\" width=\"193\" height=\"344\" srcset=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.17.34-168x300.png 168w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.17.34-575x1024.png 575w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.17.34-28x50.png 28w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.17.34.png 732w\" sizes=\"auto, (max-width: 193px) 100vw, 193px\" \/><\/a><\/p>\n<ul>\n<li><strong>Name<\/strong> the bookmark any way you want, it&#8217;s only used for administrative purposes.<\/li>\n<li><strong>Text to display<\/strong> is self explanatory<\/li>\n<li><strong>Bookmark<\/strong> is the URL to <em>https:\/\/accountname.sharefile.com\/saml\/login<\/em>\u00a0where accountname is your ShareFile account.<\/li>\n<li>If you want add a ShareFile <strong>icon<\/strong> to display (<a  data-e-Disable-Page-Transition=\"true\" class=\"download-link\" title=\"Version 1\" href=\"https:\/\/ingmarverheij.com\/en\/download\/6977\/?tmstv=1777650137\" rel=\"nofollow\" id=\"download-link-6977\" data-redirect=\"false\" >\n\tShareFile_icon_70x70<\/a>\n).<\/li>\n<li>Set the <strong>Application Type<\/strong> to <em>SaaS<\/em><\/li>\n<li><strong>SSO Type<\/strong>\u00a0is\u00a0<em>SAML Based Authentication<\/em><\/li>\n<li>&#8230;and add a SAML SSO Profile using the<strong> [+].<\/strong><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>SAML SSO Profile<\/h3>\n<p>This is where the <em>magic<\/em> happens.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.39.48.png\" rel=\"attachment wp-att-6985\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6985\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.39.48-1024x881.png\" alt=\"SAML SSO Profile\" width=\"500\" height=\"430\" srcset=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.39.48-1024x881.png 1024w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.39.48-300x258.png 300w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.39.48-768x661.png 768w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.39.48-50x43.png 50w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p><strong>Accept all defaults<\/strong>, except:<\/p>\n<ul>\n<li>The <strong>name<\/strong> is just for administrative purposes.<\/li>\n<li><strong>Assertion Consumer Service Url<\/strong> is\u00a0<em>https:\/\/accountname.sharefile.com\/saml\/acs<\/em>\u00a0where accountname is your ShareFile account.<\/li>\n<li>I found that the value\u00a0<strong>Relay State Expression\u00a0<\/strong>doesn&#8217;t matter, as long as you fill in something (more info needed), for now I&#8217;m using\u00a0<em>&#8220;https:\/\/&#8221; + HTTP.REQ.URL.QUERY.AFTER_STR(&#8220;url=&#8221;)<\/em><\/li>\n<li><strong>Signing Certificate Name<\/strong> is the server certificate of your AAA vServer<\/li>\n<li><strong>SP Certificate Name<\/strong> is the certificate you retrieved from your ShareFile account (SP-Initiated SSO certificate).<\/li>\n<li>There&#8217;s no need to\u00a0<strong>Send Password<\/strong>, so set that to\u00a0<em>OFF<\/em><\/li>\n<li><strong>Issue Name<\/strong> is the URL of your AAA vServer (in my example:<em> https:\/\/5-10-87-73.mycitrixdemo.net:444\/<\/em>)<\/li>\n<li><strong>Audience<\/strong>\u00a0is<em>\u00a0https:\/\/accountname.sharefile.com<\/em> (you get accountname by now)<\/li>\n<li>At the\u00a0<strong>Name ID Expression\u00a0<\/strong>enter the following stament:\u00a0<em>HTTP.REQ.USER.ATTRIBUTE(1).<\/em><\/li>\n<\/ul>\n<p>If you didn&#8217;t\u00a0apply the last step (reading the mail attribute) the following error will be thrown. Reason is that the SAML assertion doesn&#8217;t include the mail address, and that&#8217;s what ShareFile needs to recognise the user.<\/p>\n<figure id=\"attachment_6987\" aria-describedby=\"caption-attachment-6987\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.49.16.png\" rel=\"attachment wp-att-6987\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-6987\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.49.16-300x275.png\" alt=\"Invalid single-sign-on request (user not valid for this provider).\" width=\"300\" height=\"275\" srcset=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.49.16-300x275.png 300w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.49.16-768x705.png 768w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.49.16-50x46.png 50w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.49.16.png 954w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-6987\" class=\"wp-caption-text\">Invalid single-sign-on request (user not valid for this provider).<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<h3>Bind to Unified Gateway<\/h3>\n<p>Last step is to bind the (newly created) bookmark to your Unified Gateway vServer.<\/p>\n<p>In the properties of your Unified Gateway vServer go to<strong> Published Applications<\/strong> and click on <strong>URLs\u00a0<\/strong>and use <strong>Add Binding<\/strong> to add your new Bookmark.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.01.12.png\" rel=\"attachment wp-att-6991\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6991\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.01.12-300x136.png\" alt=\"Published Applications\" width=\"332\" height=\"150\" srcset=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.01.12-300x136.png 300w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.01.12-50x23.png 50w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-16.01.12.png 726w\" sizes=\"auto, (max-width: 332px) 100vw, 332px\" \/><\/a><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.58.50.png\" rel=\"attachment wp-att-6990\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6990\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.58.50-300x269.png\" alt=\"VPN Virtual Server VPN Url Binding\" width=\"167\" height=\"150\" srcset=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.58.50-300x269.png 300w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.58.50-768x689.png 768w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.58.50-50x45.png 50w, https:\/\/ingmarverheij.com\/wp-content\/uploads\/2016\/01\/Screen-Shot-2016-01-08-at-15.58.50.png 814w\" sizes=\"auto, (max-width: 167px) 100vw, 167px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h1>Troublehooting<\/h1>\n<p>In case you&#8217;re troubleshooting SAML challenges (with or without ShareFile) I highly recommend reading this article from Dan Brinkman:\u00a0<a href=\"https:\/\/blog.whatwoulddando.com\/2014\/10\/28\/sharefile-troubleshooting-capturing-a-saml-token\/\" target=\"_blank\" rel=\"noopener\">ShareFile troubleshooting: Capturing a SAML token | What Would Dan Do?<\/a>\u00a0In addition, I found this Google Chrome plugin to be very useful as it decodes the SAMLresponse for you: <a href=\"https:\/\/chrome.google.com\/webstore\/detail\/saml-chrome-panel\/paijfdbeoenhembfhkhllainmocckace\" target=\"_blank\" rel=\"noopener\">SAML Chrome Panel<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the release of NetScaler 11 the Unified Gateway feature became available. Besides that the Unified Gateway enables companies to create a single point of entry for different types of connection (from full blown VPN to ICA proxy and everything in between) it also comes with a landing page where users can access their (SaaS) [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[502],"tags":[503,678,677,594,679],"class_list":["post-6969","post","type-post","status-publish","format-standard","hentry","category-netscaler","tag-netscaler-2","tag-saml","tag-sharefile","tag-sso","tag-unified-gateway"],"_links":{"self":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/6969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/comments?post=6969"}],"version-history":[{"count":12,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/6969\/revisions"}],"predecessor-version":[{"id":7059,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/6969\/revisions\/7059"}],"wp:attachment":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/media?parent=6969"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/categories?post=6969"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/tags?post=6969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}