<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Implementing SSO authentication with Http Headers in Management &amp; Governance</title>
    <link>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/814483#M3430</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;I don't know if your virtual proxy with the underscore in it is a good starting point.&amp;nbsp; How about creating a virtual proxy called "test" or "CMI" and using that?&amp;nbsp; Your header looks fine, but I don't see how you have it configured in Sense Server.&amp;nbsp; One other thing, when requesting the resource it's going to be &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.qlik.com/" rel="nofollow"&gt;https://%senseServer%/CMI/hub&lt;/A&gt;&lt;SPAN&gt; not just&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;&lt;A class="jive-link-external-small" href="https://community.qlik.com/" rel="nofollow"&gt;https://%senseServer%/CMI&lt;/A&gt;&lt;SPAN&gt; because Sense won't know where to go.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;jg&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 21 Mar 2015 18:43:57 GMT</pubDate>
    <dc:creator />
    <dc:date>2015-03-21T18:43:57Z</dc:date>
    <item>
      <title>Implementing SSO authentication with Http Headers</title>
      <link>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/814478#M3425</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have been attempting but failing to build Single Sign On (SSO) authentication with Http Header for Qlik SENSE. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I installed Qlik Sense Server. I built a User Directory Connector, named CMI, it signs successful on Sync. &lt;SPAN style="font-size: 13.3333330154419px;"&gt;UserID's are pulled from a SQL DB, although non show in Tokens and Licenses tab.&lt;BR /&gt;&lt;/SPAN&gt;&lt;BR /&gt;All services (QPS, QRS, etc.) are on the same server. So no certificate export is required for that sake.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I built a new virtual Proxy with following properties:&lt;BR /&gt;Prefix (A_). &lt;BR /&gt;Session cookie Header Name (although not sure what this is used for).&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Authentication: &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Header Authentication mode: Dynamic User Directory&lt;/P&gt;&lt;P&gt;Header Authentication Header Name: CMI_Header&lt;BR /&gt;Header Authentication Static UD: [blank]&lt;/P&gt;&lt;P&gt;Header Authentication Dynamic UD: $ud\\$id&lt;BR /&gt;Anonymous accses mode: No anonymous user&lt;/P&gt;&lt;P&gt;Windows authentication pattern Windows (no other option).&lt;/P&gt;&lt;P&gt;Integration: [all blank].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I exported the certificates (server, client, root) and doubleclicked them in a remote pc on the intranet. &lt;BR /&gt;To test: From a remote pc, I try to send Header requests from a Google Chrome browser extension, named: "Advanced Rest Client". Header configuration is:&lt;/P&gt;&lt;P&gt;CMI_Header=CMI\Me&lt;BR /&gt;where "Me" is a user in the user directory.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;When I try a &lt;/SPAN&gt;&lt;EM style="font-size: 10pt; line-height: 1.5em;"&gt;Get/Head&lt;/EM&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt; http request from that remote pc it asks me for win credentials and when I supply Qlik admin credentials (which is a AC windows admin too) it logs in fine to Qlik. And it doesn't matter whether I put any/correct header or not.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;But when I choose Post/Put/Delete, etc. http requests it doesn't work, saying "0 No Response", whether or not the header parameters look fine. &lt;BR /&gt;Any reason why? What am I missing?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What I need is it to work for my User Directory users with SOO (Header) authentication.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks very much in advance,&lt;/P&gt;&lt;P&gt;Amir.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Mar 2015 20:23:38 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/814478#M3425</guid>
      <dc:creator />
      <dc:date>2015-03-16T20:23:38Z</dc:date>
    </item>
    <item>
      <title>Re: Implementing SSO authentication with Http Headers</title>
      <link>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/814479#M3426</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Amir,&lt;/P&gt;&lt;P&gt;the Session Cookie Header Name is very important in the virtual proxy as it identifies to Qlik Sense that the browser session accessing content is valid and authorized.&amp;nbsp; Session Cookie Headers need to be unique for each virtual proxy so make sure your Session Cookie Header Name is something like X-Qlik-Session-A_ if A_ is really the prefix for your virtual proxy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now, as for what is happening with your attempt to get authorized via header injection.&amp;nbsp; One thing that does not appear in the information you have provided is a cross-site scripting key (aka xrfkey)&amp;nbsp; This key is necessary as a parameter in the url and a header value labeled X-Qlik-xrfkey if you are trying to connect to the rest apis.&amp;nbsp; Without this parameter and value your request will be rejected.&amp;nbsp; If you are trying to connect to the hub, it does not appear to be necessary, but you may want to test both scenarios.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I'm testing header authorization for apis and general connectivity, I use the PostMan chrome extension.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is what my request looks like.&amp;nbsp; It is a get request.&lt;/P&gt;&lt;P&gt;&lt;IMG class="image-1 jive-image" src="https://community.qlik.com/legacyfs/online/81072_pastedImage_0.png" style="max-width: 1200px; max-height: 900px;" /&gt;&lt;/P&gt;&lt;P&gt;The response is the HTML and if you look at the cookies, the session cookie is provided.&lt;/P&gt;&lt;P&gt;&lt;IMG class="jive-image image-2" src="https://community.qlik.com/legacyfs/online/81073_pastedImage_1.png" style="max-width: 1200px; max-height: 900px;" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Mar 2015 23:53:44 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/814479#M3426</guid>
      <dc:creator />
      <dc:date>2015-03-17T23:53:44Z</dc:date>
    </item>
    <item>
      <title>Re: Implementing SSO authentication with Http Headers</title>
      <link>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/814480#M3427</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much Jeffrey. Yes I assigned a cookie name in my new dynamic header virtual proxy. Is that's enough or should I put anything in my reverse-proxy (or chrome extension) that (re)pushes this cookie back.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For &lt;SPAN style="font-size: 13.3333330154419px;"&gt;xrfkey&lt;/SPAN&gt;: Does Qlik Sense (QPS/QRS) need to recognize this key? Or just assign a header (say named X-Qlik-xrfkey) and value (say &lt;SPAN style="font-size: 13.3333330154419px;"&gt;abcdefg123456789)&lt;/SPAN&gt;&lt;SPAN&gt; and a URL get parameter with the same name and value: Say &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://QPSserver:4243/_A" rel="nofollow"&gt;https://QPSserver:4243/_A&lt;/A&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;X-Qlik-xrfkey=abcdefg123456789&lt;/SPAN&gt;&lt;BR /&gt;Where 4243 is the default Authentication port for QPS proxy.&lt;BR /&gt;I tried this above link &lt;SPAN style="font-size: 13.3333330154419px;"&gt;&lt;A class="jive-link-external-small" href="https://" rel="nofollow"&gt;https://&lt;/A&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;QPSserver:4243&lt;/SPAN&gt;/_A?&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;X-Qlik-xrfkey=abcdefg123456789&lt;BR /&gt;I also tried it while alternating: Get vs Post requests, 4243, 4244. Still I receive 404 (wrong request).&lt;BR /&gt;&lt;BR /&gt;Before that: Interestingly the cookie name in the 404 http response is the default virtual proxy (&amp;lt;&amp;gt;default, which is win authentication). So it seems that it isn't using &lt;SPAN style="font-size: 13.3333330154419px;"&gt;new dynamic header virtual proxy "_A".&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;Interestingly also, after I exported the (server-root-client) certificates from QRS into my reverse-proxy server, when I first tried &lt;SPAN style="font-size: 13.3333330154419px;"&gt;&lt;A class="jive-link-external-small" href="https://" rel="nofollow"&gt;https://&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;QPSserver:4243 it did ask me to pick a certificate (from a poped-up list), then when I picked the Qlik certificate (in one user I picked reverseProxy certificate, in another user I picked QlikClient certificate) then it gave me the 404 response and default-virtual-proxy cookie X-Qlik-Session, and it never asked me again for a certificate in following attempts&lt;SPAN style="font-size: 13.3333330154419px;"&gt;. So it seems as if it has the Authentication port 4243 functional but didn't manage to find the&lt;SPAN style="font-size: 13.3333330154419px;"&gt; good virtual proxy or the &lt;/SPAN&gt;good certificate.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;I seem to have been missing a configuration. Do I have to populate the virtual-proxy "integration" section with any values?&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;Thanks again for all help,&lt;BR /&gt;Amir.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Mar 2015 16:11:29 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/814480#M3427</guid>
      <dc:creator />
      <dc:date>2015-03-18T16:11:29Z</dc:date>
    </item>
    <item>
      <title>Re: Implementing SSO authentication with Http Headers</title>
      <link>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/814481#M3428</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;Amir, refer to the linked document &lt;A _jive_internal="true" class="loading" href="https://community.qlik.com/docs/DOC-8135" style="font-size: 13.3333330154419px;" title="http://community.qlik.com/docs/DOC-8135"&gt;http://community.qlik.com/docs/DOC-8135&lt;/A&gt;.&amp;nbsp; From what you typed above the parameter in the url is supposed to be xrfkey, not X-Qlik-xrfkey.&amp;nbsp; X-Qlik-xrkey is a header you add to the request.&amp;nbsp; Yes the values for both the parameter and the header are the same.&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;If you are trying to connect to QPS or QRS then the xrfkey is a requirement.&amp;nbsp; The Session Cookie value is returned upon successful authorization.&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;Here is a doc I created for properly configuring a virtual proxy and testing with postman and fiddler.&amp;nbsp; This document is relevant for Qlik Sense 1.1.&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;As far as the certificate requests that pop up it's a result of increased security measures by modern browsers to prompt you to use a client cert when connecting to web sites through https.&amp;nbsp; In IIS you can configure so that client certs are ignored in ssl connections.&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;For my test environment, I exported the certs from the Qlik Sense server and imported them into my local.&amp;nbsp; I placed the root cert into the localmachine\trusted root cert authority location and the QlikClient into the localmachine\personal location.&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;jg&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Mar 2015 19:16:04 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/814481#M3428</guid>
      <dc:creator />
      <dc:date>2015-03-18T19:16:04Z</dc:date>
    </item>
    <item>
      <title>Re: Implementing SSO authentication with Http Headers</title>
      <link>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/814482#M3429</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks very much! It definitely advanced my attempt. Now I can successfully http-request &lt;A class="jive-link-external-small" href="https://qpsserver:4243/_A" rel="nofollow" style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3778c7;"&gt;https://QPSserver/_A&lt;/A&gt;&lt;SPAN style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;?&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;X-Qlik-xrfkey=abcdefg123456789 (prefix now works in URL). &lt;/SPAN&gt;I can also find the header virtual-proxy cookie: X-Qlik-Session_A, in my http response. However it works whether I put any "right" authentication header &lt;SPAN style="font-size: 13.3333330154419px;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;CMI_Header: CMI\Me) &lt;/SPAN&gt;or not. So it doesn't seem to be authenticating the UD\\UI.&lt;BR /&gt;Also &lt;SPAN style="font-size: 13.3333330154419px;"&gt;before applying your settings&lt;/SPAN&gt;, when &lt;SPAN style="font-size: 13.3333330154419px;"&gt;I used to access &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://qpsserver:4243/_A" rel="nofollow" style="color: #3778c7; font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;https://QPSserver/_A&lt;/A&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt; from chorme-URL bar, &lt;/SPAN&gt;it didn't recognize the header-virtual-proxy prefix, rather redirects me to:&lt;/P&gt;&lt;P&gt;&lt;IMG class="image-1 jive-image" height="107" src="https://community.qlik.com/legacyfs/online/81312_pastedImage_0.png" style="font-size: 13.3333330154419px;" width="313" /&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;But &lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;now a chrome-popup window is asking me f&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;or username/password&lt;/SPAN&gt;, as if it failed on authenticating on Header params (&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;CMI_Header: CMI\Me)&lt;/SPAN&gt;, and now looking for windows (default virtual-proxy) one.&lt;BR /&gt;Kind reminder: X-Qlik-&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;xrfKey:&lt;SPAN style="font-size: 13.3333330154419px;"&gt;abcdefg123456789&lt;/SPAN&gt;&lt;/SPAN&gt; is added as header, and ?Xrfkey=abcdefg123456789 is added to URL.&lt;BR /&gt;Am I missing anything on configuring the linkage between the User directory (CMI_Header) and the header-virtual-proxy? Again "CMI_header" is the Header-Auth header name in my Header-Auth virtual proxy. "CMI" and "Me" are a sync'ed user-directory name and a userId in it respectively. &lt;BR /&gt;The users of CMI aren't showing anywhere (not in Users tab, neither in Lisenses&amp;amp;tokens&amp;gt;User access allocation section).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot again.&lt;BR /&gt;Amir.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Mar 2015 16:31:25 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/814482#M3429</guid>
      <dc:creator />
      <dc:date>2015-03-19T16:31:25Z</dc:date>
    </item>
    <item>
      <title>Re: Implementing SSO authentication with Http Headers</title>
      <link>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/814483#M3430</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN&gt;I don't know if your virtual proxy with the underscore in it is a good starting point.&amp;nbsp; How about creating a virtual proxy called "test" or "CMI" and using that?&amp;nbsp; Your header looks fine, but I don't see how you have it configured in Sense Server.&amp;nbsp; One other thing, when requesting the resource it's going to be &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.qlik.com/" rel="nofollow"&gt;https://%senseServer%/CMI/hub&lt;/A&gt;&lt;SPAN&gt; not just&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;&lt;A class="jive-link-external-small" href="https://community.qlik.com/" rel="nofollow"&gt;https://%senseServer%/CMI&lt;/A&gt;&lt;SPAN&gt; because Sense won't know where to go.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;jg&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 21 Mar 2015 18:43:57 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/814483#M3430</guid>
      <dc:creator />
      <dc:date>2015-03-21T18:43:57Z</dc:date>
    </item>
    <item>
      <title>Re: Implementing SSO authentication with Http Headers</title>
      <link>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/1532343#M12314</link>
      <description>&lt;P&gt;Were you able to solve this? can you please share more details.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 18 Jan 2019 19:12:21 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Implementing-SSO-authentication-with-Http-Headers/m-p/1532343#M12314</guid>
      <dc:creator>Emmanuelle__Bustos</dc:creator>
      <dc:date>2019-01-18T19:12:21Z</dc:date>
    </item>
  </channel>
</rss>

