<?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: Sense / QAP: How to authenticate external users with certificates in Integration, Extension &amp; APIs</title>
    <link>https://community.qlik.com/t5/Integration-Extension-APIs/Sense-QAP-How-to-authenticate-external-users-with-certificates/m-p/1671613#M12258</link>
    <description>&lt;P&gt;Correct, Certificate authentication would allow them to impersonate any user.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Certificate authentication is NOT what you want to use.&lt;/P&gt;
&lt;P&gt;When they connect to Qlik Sense, they can connect either via the proxy service, or directly.&lt;/P&gt;
&lt;P&gt;To connect directly they need to use certificates. As this is not a valid option for your use case they will need to connect via the proxy.&lt;/P&gt;
&lt;P&gt;Have a look at "Authentication with proxy"&lt;/P&gt;
&lt;P&gt;&lt;A href="https://help.qlik.com/en-US/sense-developer/November2019/Subsystems/NetSDKAPI/Content/Sense_NetSDKAPI/GettingStarted/Getting-Started-Steps.htm" target="_blank"&gt;https://help.qlik.com/en-US/sense-developer/November2019/Subsystems/NetSDKAPI/Content/Sense_NetSDKAPI/GettingStarted/Getting-Started-Steps.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How are they trying to make the API calls? C#, Java, PowerShell?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the example:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://help.qlik.com/en-US/sense-developer/November2019/Subsystems/RepositoryServiceAPI/Content/Sense_RepositoryServiceAPI/RepositoryServiceAPI-Example-Connect-Powershell.htm" target="_blank"&gt;https://help.qlik.com/en-US/sense-developer/November2019/Subsystems/RepositoryServiceAPI/Content/Sense_RepositoryServiceAPI/RepositoryServiceAPI-Example-Connect-Powershell.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;you can replace line 2 "&lt;SPAN&gt;$req.Credentials = [System.Net.CredentialCache]::DefaultCredentials"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;with a defined set of credentials.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 03 Feb 2020 03:59:09 GMT</pubDate>
    <dc:creator>Marc</dc:creator>
    <dc:date>2020-02-03T03:59:09Z</dc:date>
    <item>
      <title>Sense / QAP: How to authenticate external users with certificates</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Sense-QAP-How-to-authenticate-external-users-with-certificates/m-p/1670248#M12217</link>
      <description>&lt;P&gt;We have a QAP system and we have external users A, B and C who are competitors.&amp;nbsp; We have corresponding apps AppA, AppB and AppC for these users, and they should not be able to see each other's data.&lt;/P&gt;&lt;P&gt;These users have their user IDs and passwords in an Excel file and this is set up in QMC correctly.&amp;nbsp;&lt;/P&gt;&lt;P&gt;External user A now wants to get to the data in his AppA using API calls to GetTableData().&amp;nbsp; I am trying to figure out how to let him in, but only to his app.&amp;nbsp; The first step in my prototype is to authenticate as user A.&amp;nbsp; I thought that certificates may be a way to accomplish this.&amp;nbsp; But the documentation and experimentation doesn't make sense to me.&amp;nbsp; This is what I am reading:&lt;/P&gt;&lt;P&gt;&lt;A href="https://help.qlik.com/en-US/sense-developer/November2019/Subsystems/EngineAPI/Content/Sense_EngineAPI/GettingStarted/connecting-to-engine-api.htm" target="_blank"&gt;https://help.qlik.com/en-US/sense-developer/November2019/Subsystems/EngineAPI/Content/Sense_EngineAPI/GettingStarted/connecting-to-engine-api.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;In Example 1 and 2, it seems that if the client provides the certificates and a header that looks like the following, he can assume ANY identity?&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;headers&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;{&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;'X-Qlik-User'&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;:&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;'UserDirectory=internal; UserId=sa_engine'&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Perhaps I am misunderstanding this, but this seems to be me that providing the certificates and this header is sufficient to identify the user as&amp;nbsp;&lt;SPAN class="token string"&gt;sa_engine or any other user?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Any ideas on how to authenticate external users without them gaining access to all the apps is appreciated.&amp;nbsp; I am open to non-certificate solutions if they work without requiring witchcraft.&lt;/P&gt;</description>
      <pubDate>Sat, 16 Nov 2024 19:13:08 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Sense-QAP-How-to-authenticate-external-users-with-certificates/m-p/1670248#M12217</guid>
      <dc:creator>kevinpintokpa</dc:creator>
      <dc:date>2024-11-16T19:13:08Z</dc:date>
    </item>
    <item>
      <title>Re: Sense / QAP: How to authenticate external users with certificates</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Sense-QAP-How-to-authenticate-external-users-with-certificates/m-p/1671613#M12258</link>
      <description>&lt;P&gt;Correct, Certificate authentication would allow them to impersonate any user.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Certificate authentication is NOT what you want to use.&lt;/P&gt;
&lt;P&gt;When they connect to Qlik Sense, they can connect either via the proxy service, or directly.&lt;/P&gt;
&lt;P&gt;To connect directly they need to use certificates. As this is not a valid option for your use case they will need to connect via the proxy.&lt;/P&gt;
&lt;P&gt;Have a look at "Authentication with proxy"&lt;/P&gt;
&lt;P&gt;&lt;A href="https://help.qlik.com/en-US/sense-developer/November2019/Subsystems/NetSDKAPI/Content/Sense_NetSDKAPI/GettingStarted/Getting-Started-Steps.htm" target="_blank"&gt;https://help.qlik.com/en-US/sense-developer/November2019/Subsystems/NetSDKAPI/Content/Sense_NetSDKAPI/GettingStarted/Getting-Started-Steps.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How are they trying to make the API calls? C#, Java, PowerShell?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the example:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://help.qlik.com/en-US/sense-developer/November2019/Subsystems/RepositoryServiceAPI/Content/Sense_RepositoryServiceAPI/RepositoryServiceAPI-Example-Connect-Powershell.htm" target="_blank"&gt;https://help.qlik.com/en-US/sense-developer/November2019/Subsystems/RepositoryServiceAPI/Content/Sense_RepositoryServiceAPI/RepositoryServiceAPI-Example-Connect-Powershell.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;you can replace line 2 "&lt;SPAN&gt;$req.Credentials = [System.Net.CredentialCache]::DefaultCredentials"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;with a defined set of credentials.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Feb 2020 03:59:09 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Sense-QAP-How-to-authenticate-external-users-with-certificates/m-p/1671613#M12258</guid>
      <dc:creator>Marc</dc:creator>
      <dc:date>2020-02-03T03:59:09Z</dc:date>
    </item>
  </channel>
</rss>

