<?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: [ Qlik Cloud ] Create IDP for multi cloud distribution via API in Integration, Extension &amp; APIs</title>
    <link>https://community.qlik.com/t5/Integration-Extension-APIs/Qlik-Cloud-Create-IDP-for-multi-cloud-distribution-via-API/m-p/2494238#M21560</link>
    <description>&lt;P&gt;I found out the solution by retro-engineering the Qlik cloud portal API calls :&amp;nbsp;&lt;BR /&gt;The solution is to send an authenticated POST to&amp;nbsp;&amp;nbsp;/api/v1/identity-providers endpoint ,&amp;nbsp; for example with qlik-cli&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;&lt;STRONG&gt;qlik raw post&amp;nbsp;/api/v1/identity-providers --body &amp;lt;BODY&amp;gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/PRE&gt;
&lt;P&gt;Where BODY is the following JSON payload :&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;{&lt;BR /&gt;"base64Encoded": &amp;lt;&lt;EM&gt;BEARER TOKEN FROM QLIK CLIENT MANAGED&lt;/EM&gt;&amp;gt;,&lt;BR /&gt;"interactive": false,&lt;BR /&gt;"protocol": "qsefw-local-bearer-token",&lt;BR /&gt;"description" :"&amp;lt;&lt;EM&gt;a way to identify your Qlik client managed server&lt;/EM&gt;&amp;gt;",&lt;BR /&gt;"provider": "qlik",&lt;BR /&gt;"tenantIds": [&lt;BR /&gt;"&amp;lt;qlik cloud tenant id&amp;gt;"&lt;BR /&gt;]&lt;BR /&gt;}&lt;/PRE&gt;
&lt;P&gt;the&amp;nbsp;&amp;lt;&lt;EM&gt;BEARER TOKEN FORM QLIK CLIENT MANAGED&lt;/EM&gt;&amp;gt; is the bearer token you get when creating the deployment in &lt;STRONG&gt;QMC/Cloud distribution/deployment status &lt;/STRONG&gt;in Qlik client managed.&amp;nbsp;The value depends on the 'API endpoint' value so you need to go one step further if you really want to automate.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Hopefully and as name indicates it is a base64 encoding of another JSON&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;{&lt;BR /&gt;"issuerConfig": {&lt;BR /&gt;"issuer": "https://qlik.12345678-1234-1234-1234-123456789012"&lt;BR /&gt;},&lt;BR /&gt;"primary": false,&lt;BR /&gt;"realm": "custom",&lt;BR /&gt;"hostname": "&amp;lt;&lt;EM&gt;value of API endpoint field&lt;/EM&gt;&amp;gt;",&lt;BR /&gt;"staticKeys": [&lt;BR /&gt;{&lt;BR /&gt;"kid": "qlik-12345678-1234-1234-1234-123456789012",&lt;BR /&gt;"pem": "-----BEGIN PUBLIC KEY-----&lt;EM&gt;xxxxxxxx(...)xxxxxxxx&lt;/EM&gt;-----END PUBLIC KEY-----"&lt;BR /&gt;}&lt;BR /&gt;]&lt;BR /&gt;}&lt;/PRE&gt;
&lt;P&gt;issuer, kid and PEM depends only on the Qlik client managed server and can be extracted from an existing bearer token created for another cloud distribution . &lt;BR /&gt;With these values , it is easy to craft the bearer token corresponding to the new cloud distribution and finalize the multi cloud identiy provider creation.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":beaming_face_with_smiling_eyes:"&gt;😁&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;What remains however is the capability to create the cloud distribution target in the Qlik client managed...&lt;BR /&gt;&lt;BR /&gt;When applying reverse engineering method on QMC, we observe one POST request to&amp;nbsp;&amp;nbsp;&lt;A href="https://&amp;lt;server&amp;gt;/api/dsc/graphql" target="_blank" rel="noopener"&gt;https://&amp;lt;server&amp;gt;/api/dsc/graphql&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;with payload&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;mutation { SaveDeployment(deployment: { authenticationUrl: "" clientId: "" clientSecret: "" id: null name: "&amp;lt;" serviceUrl: "&lt;EM&gt;&amp;lt;API endpoint&amp;gt;&lt;/EM&gt;" audience: "qlik.api" localBearerToken: true }) { authenticationUrl clientId id name serviceUrl audience localBearerToken } }&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;Analysis is still on-going to check if it is possible to call this API directly or if it requires specific authentication. Howver, one can already observe that response comes back with the 2 following headers&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="thomasmaure_1-1732300932484.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/174779iE653BEF95BCD5119/image-size/medium?v=v2&amp;amp;px=400" role="button" title="thomasmaure_1-1732300932484.png" alt="thomasmaure_1-1732300932484.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;indicating there is some risks these APIs are not accessible or might change in future. So for the time being I will keep the manual method until this get promoted to QRS API.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 22 Nov 2024 18:53:49 GMT</pubDate>
    <dc:creator>thomasmaure</dc:creator>
    <dc:date>2024-11-22T18:53:49Z</dc:date>
    <item>
      <title>[ Qlik Cloud ] Create IDP for multi cloud distribution via API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Qlik-Cloud-Create-IDP-for-multi-cloud-distribution-via-API/m-p/2492364#M21504</link>
      <description>&lt;P&gt;Hello,&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;We are working in hybrid mode with dozens of Qlik cloud tenants to consume apps and one qlik sense Client managed to reload them before distributing them to Qlik cloud.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;For distribution to work , it is required to create a dedicated IDP on Qlik cloud tenant using 'multi-cloud' type and a token. This can be achieved through the tenant admin console but I cannot find a matching API .&amp;nbsp;&lt;BR /&gt;Does anyone know if there is one to use for this particular case ?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards&lt;/P&gt;
&lt;P&gt;Thomas&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Nov 2024 18:05:26 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Qlik-Cloud-Create-IDP-for-multi-cloud-distribution-via-API/m-p/2492364#M21504</guid>
      <dc:creator>thomasmaure</dc:creator>
      <dc:date>2024-11-22T18:05:26Z</dc:date>
    </item>
    <item>
      <title>Re: [ Qlik Cloud ] Create IDP for mutli cloud distribution via API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Qlik-Cloud-Create-IDP-for-multi-cloud-distribution-via-API/m-p/2492695#M21517</link>
      <description>&lt;P&gt;of course, I searched the existing API&lt;/P&gt;
&lt;PRE tabindex="0" role="region" aria-label="Code example" data-astro-cid-n7bg7o2w=""&gt;&lt;CODE class="language-bash" data-astro-cid-n7bg7o2w=""&gt;&lt;SPAN class="token string"&gt;"https://your-tenant.us.qlikcloud.com/api/v1/identity-providers"&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;or Qlik-cli&lt;/P&gt;
&lt;PRE tabindex="0" role="region" aria-label="Code example" data-astro-cid-n7bg7o2w=""&gt;&lt;CODE class="language-bash" data-astro-cid-n7bg7o2w=""&gt;qlik identity-provider create&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;BR /&gt;but it sems to cover only SAML , OIDC or JWTAUTH whereas the admin portal has 4 options&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="thomasmaure_0-1731578993123.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/174349i8F609F5E990A4B5B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="thomasmaure_0-1731578993123.png" alt="thomasmaure_0-1731578993123.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Nov 2024 10:12:36 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Qlik-Cloud-Create-IDP-for-multi-cloud-distribution-via-API/m-p/2492695#M21517</guid>
      <dc:creator>thomasmaure</dc:creator>
      <dc:date>2024-11-14T10:12:36Z</dc:date>
    </item>
    <item>
      <title>Re: [ Qlik Cloud ] Create IDP for multi cloud distribution via API</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Qlik-Cloud-Create-IDP-for-multi-cloud-distribution-via-API/m-p/2494238#M21560</link>
      <description>&lt;P&gt;I found out the solution by retro-engineering the Qlik cloud portal API calls :&amp;nbsp;&lt;BR /&gt;The solution is to send an authenticated POST to&amp;nbsp;&amp;nbsp;/api/v1/identity-providers endpoint ,&amp;nbsp; for example with qlik-cli&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;&lt;STRONG&gt;qlik raw post&amp;nbsp;/api/v1/identity-providers --body &amp;lt;BODY&amp;gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/PRE&gt;
&lt;P&gt;Where BODY is the following JSON payload :&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;{&lt;BR /&gt;"base64Encoded": &amp;lt;&lt;EM&gt;BEARER TOKEN FROM QLIK CLIENT MANAGED&lt;/EM&gt;&amp;gt;,&lt;BR /&gt;"interactive": false,&lt;BR /&gt;"protocol": "qsefw-local-bearer-token",&lt;BR /&gt;"description" :"&amp;lt;&lt;EM&gt;a way to identify your Qlik client managed server&lt;/EM&gt;&amp;gt;",&lt;BR /&gt;"provider": "qlik",&lt;BR /&gt;"tenantIds": [&lt;BR /&gt;"&amp;lt;qlik cloud tenant id&amp;gt;"&lt;BR /&gt;]&lt;BR /&gt;}&lt;/PRE&gt;
&lt;P&gt;the&amp;nbsp;&amp;lt;&lt;EM&gt;BEARER TOKEN FORM QLIK CLIENT MANAGED&lt;/EM&gt;&amp;gt; is the bearer token you get when creating the deployment in &lt;STRONG&gt;QMC/Cloud distribution/deployment status &lt;/STRONG&gt;in Qlik client managed.&amp;nbsp;The value depends on the 'API endpoint' value so you need to go one step further if you really want to automate.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Hopefully and as name indicates it is a base64 encoding of another JSON&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;{&lt;BR /&gt;"issuerConfig": {&lt;BR /&gt;"issuer": "https://qlik.12345678-1234-1234-1234-123456789012"&lt;BR /&gt;},&lt;BR /&gt;"primary": false,&lt;BR /&gt;"realm": "custom",&lt;BR /&gt;"hostname": "&amp;lt;&lt;EM&gt;value of API endpoint field&lt;/EM&gt;&amp;gt;",&lt;BR /&gt;"staticKeys": [&lt;BR /&gt;{&lt;BR /&gt;"kid": "qlik-12345678-1234-1234-1234-123456789012",&lt;BR /&gt;"pem": "-----BEGIN PUBLIC KEY-----&lt;EM&gt;xxxxxxxx(...)xxxxxxxx&lt;/EM&gt;-----END PUBLIC KEY-----"&lt;BR /&gt;}&lt;BR /&gt;]&lt;BR /&gt;}&lt;/PRE&gt;
&lt;P&gt;issuer, kid and PEM depends only on the Qlik client managed server and can be extracted from an existing bearer token created for another cloud distribution . &lt;BR /&gt;With these values , it is easy to craft the bearer token corresponding to the new cloud distribution and finalize the multi cloud identiy provider creation.&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":beaming_face_with_smiling_eyes:"&gt;😁&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;What remains however is the capability to create the cloud distribution target in the Qlik client managed...&lt;BR /&gt;&lt;BR /&gt;When applying reverse engineering method on QMC, we observe one POST request to&amp;nbsp;&amp;nbsp;&lt;A href="https://&amp;lt;server&amp;gt;/api/dsc/graphql" target="_blank" rel="noopener"&gt;https://&amp;lt;server&amp;gt;/api/dsc/graphql&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;with payload&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;mutation { SaveDeployment(deployment: { authenticationUrl: "" clientId: "" clientSecret: "" id: null name: "&amp;lt;" serviceUrl: "&lt;EM&gt;&amp;lt;API endpoint&amp;gt;&lt;/EM&gt;" audience: "qlik.api" localBearerToken: true }) { authenticationUrl clientId id name serviceUrl audience localBearerToken } }&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;Analysis is still on-going to check if it is possible to call this API directly or if it requires specific authentication. Howver, one can already observe that response comes back with the 2 following headers&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="thomasmaure_1-1732300932484.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/174779iE653BEF95BCD5119/image-size/medium?v=v2&amp;amp;px=400" role="button" title="thomasmaure_1-1732300932484.png" alt="thomasmaure_1-1732300932484.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;indicating there is some risks these APIs are not accessible or might change in future. So for the time being I will keep the manual method until this get promoted to QRS API.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Nov 2024 18:53:49 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Qlik-Cloud-Create-IDP-for-multi-cloud-distribution-via-API/m-p/2494238#M21560</guid>
      <dc:creator>thomasmaure</dc:creator>
      <dc:date>2024-11-22T18:53:49Z</dc:date>
    </item>
  </channel>
</rss>

