<?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: Allocating licenses based on Azure AD groups in Management &amp; Governance</title>
    <link>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2439614#M26985</link>
    <description>&lt;P&gt;Ah,&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/44037"&gt;@steeefan&lt;/a&gt;&amp;nbsp;, so nice! I knew I was missing something stupid - I had the path too long (including) api/v1/... Working with the value for type in the body, for other users I can add that the value (e.g., "analyzer") is case sensitive. Thanks a bunch! /Simon&lt;/P&gt;</description>
    <pubDate>Wed, 10 Apr 2024 07:29:16 GMT</pubDate>
    <dc:creator>simonheap_cph</dc:creator>
    <dc:date>2024-04-10T07:29:16Z</dc:date>
    <item>
      <title>Allocating licenses based on Azure AD groups</title>
      <link>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2046942#M24494</link>
      <description>&lt;P&gt;This question is for Qlik Sense SaaS.&lt;/P&gt;
&lt;P&gt;Does anyone have a best practice for how to manage user license allocations based on Azure AD groups. We use Azure AD as IDP and have two groups in AD; one for analyzers and one for professional users. I want to automatically assign the corresponding license to the user. The best would be that the user and license are pre populated in Qlik Sense SaaS before the user logon.&lt;BR /&gt;We also want that if the user is removed from the AD group, the license should be removed from the user.&lt;/P&gt;
&lt;P&gt;I guess that we need to automate this with a script, for example PowerShell and CLI ,or is it better to use Automations in Qlik Sense to do it?&lt;/P&gt;
&lt;P&gt;Thanks in advance.&lt;/P&gt;
&lt;P&gt;&lt;LI-PRODUCT title="Qlik Cloud" id="qlikSenseEnterpriseSaaS"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 Mar 2023 15:41:36 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2046942#M24494</guid>
      <dc:creator>tan123qlik</dc:creator>
      <dc:date>2023-03-08T15:41:36Z</dc:date>
    </item>
    <item>
      <title>Re: Allocating licenses based on Azure AD groups</title>
      <link>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2047408#M24504</link>
      <description>&lt;P&gt;Hey&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/28846"&gt;@tan123qlik&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'll assume you're not using the very recently released &lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/auto-provisioning-using-SCIM.htm" target="_self"&gt;SCIM capabilities for Azure AD&lt;/A&gt; for this first part. You can use application automation or CLI or raw REST API calls to achieve each step:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;You can pre-create and pre-assign licenses up-front using the &lt;A href="https://qlik.dev/apis/rest/users" target="_self"&gt;/users&lt;/A&gt; and &lt;A href="https://qlik.dev/apis/rest/licenses" target="_self"&gt;/licenses&lt;/A&gt; APIs - although I don't actually recommend this approach as you don't necessarily want to assign licenses to users who may never use them, and without an automated way of removing users who never logged in later (although you can do this too via API)&lt;/LI&gt;
&lt;LI&gt;Instead, you can create a webhook (either in the management console if you have your own script, or in an application automation start block) on the user.created event. The user is automatically created on their first login, and as Qlik Cloud becomes aware of their groups via the claims sent with their login request, you can hit the users endpoint to get the list of groups, check for a professional/ analyzer group, and then assign the relevant license. As this happens post user creation, it might mean a brief delay of a few seconds to a few minutes where they can't access apps the first time they hit the tenant (depends on how it's set up)&lt;/LI&gt;
&lt;LI&gt;For removing/ amending license assignments, you probably want to drive this externally since you can then look up the current live group membership. This is because groups are only refreshed in Qlik Cloud when the user logs in - so if a user hasn't logged in since the change in group membership, we won't have any data to act on. That said - if this is a reasonable limitation, then you can periodically review user license assignments and groups either externally or in application automation&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Now, if you were using Azure AD with SCIM, you could then pre-provision most of this, and have group changes sync'd to the tenant, which means you can do everything for the license assignment/ deallocation within Qlik Cloud, as the data will always be (nearly) up to date.&lt;/P&gt;</description>
      <pubDate>Thu, 09 Mar 2023 13:31:47 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2047408#M24504</guid>
      <dc:creator>Dave_Channon</dc:creator>
      <dc:date>2023-03-09T13:31:47Z</dc:date>
    </item>
    <item>
      <title>Re: Allocating licenses based on Azure AD groups</title>
      <link>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2047807#M24512</link>
      <description>&lt;P&gt;Thank you for your detailed answer.&lt;/P&gt;
&lt;P&gt;I was not aware of the SCIM possibility when I wrote the question. Now when I have red about it, I can see that this could be used for populating users and groups. However, I don't understand if this could be used for allocating/deallocating licenses?&lt;/P&gt;</description>
      <pubDate>Fri, 10 Mar 2023 09:39:17 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2047807#M24512</guid>
      <dc:creator>tan123qlik</dc:creator>
      <dc:date>2023-03-10T09:39:17Z</dc:date>
    </item>
    <item>
      <title>Re: Allocating licenses based on Azure AD groups</title>
      <link>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2047860#M24514</link>
      <description>&lt;P&gt;Hey&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/28846"&gt;@tan123qlik&lt;/a&gt;,&amp;nbsp;not for the licenses. You'll still need to use application automation or an outside script to manage that piece.&lt;/P&gt;
&lt;P&gt;Quite often it's acceptable to enable auto assignment of analyzer licenses so that users have immediate access to content on login, then upgrade them to professional if they have a specific group. You then use the IdP to restrict who has access to the app (something you should be able to do under enterprise applications in azure AD).&lt;/P&gt;</description>
      <pubDate>Fri, 10 Mar 2023 11:00:36 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2047860#M24514</guid>
      <dc:creator>Dave_Channon</dc:creator>
      <dc:date>2023-03-10T11:00:36Z</dc:date>
    </item>
    <item>
      <title>Re: Allocating licenses based on Azure AD groups</title>
      <link>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2158580#M26336</link>
      <description>&lt;P&gt;Excellent - thanks a lot! I was looking for the exact same thing.&lt;/P&gt;
&lt;P&gt;"Instead, you can create a webhook..." works for me and is also my first automation.&lt;/P&gt;</description>
      <pubDate>Fri, 05 Jan 2024 10:15:35 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2158580#M26336</guid>
      <dc:creator>steeefan</dc:creator>
      <dc:date>2024-01-05T10:15:35Z</dc:date>
    </item>
    <item>
      <title>Re: Allocating licenses based on Azure AD groups</title>
      <link>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2439422#M26977</link>
      <description>&lt;P&gt;In response to&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/1870"&gt;@Dave_Channon&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/44037"&gt;@steeefan&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have been working with the exact same issue. I get the automation up and running (that creates a webhook), I get the filtering on the group done when I want to decide on the license type, but I can't seem to get the api working... I have tried with both the Call URL-block and the Raw API Request-block using the api &lt;A href="https://{my" target="_blank"&gt;https://{my&lt;/A&gt;tenant}/&lt;SPAN&gt;api/v1/licenses/assignments/actions/add/ with an add-payload, but I can't get it to work.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Do you have some examples of what it takes to make this work? Thank you!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;BR, Simon&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Apr 2024 14:57:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2439422#M26977</guid>
      <dc:creator>simonheap_cph</dc:creator>
      <dc:date>2024-04-09T14:57:10Z</dc:date>
    </item>
    <item>
      <title>Re: Allocating licenses based on Azure AD groups</title>
      <link>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2439443#M26979</link>
      <description>&lt;P&gt;To add the license I'm using "Raw API Request" with these parameters&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Path: licenses/assignments/actions/add&lt;/LI&gt;
&lt;LI&gt;HTTP Method: POST&lt;/LI&gt;
&lt;LI&gt;Body: &lt;FONT face="courier new,courier"&gt;{"add":[{"type":"&lt;STRONG&gt;V License Type&lt;/STRONG&gt;","subject":"&lt;STRONG&gt;Get User &amp;gt; Subject&lt;/STRONG&gt;"}]}&lt;/FONT&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;V License Type&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;is a variable that is set earlier in the automation flow, &lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;Get User &amp;gt; Subject&lt;/STRONG&gt;&lt;/FONT&gt; is data fed from the user object in scope.&lt;/P&gt;</description>
      <pubDate>Tue, 09 Apr 2024 16:02:56 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2439443#M26979</guid>
      <dc:creator>steeefan</dc:creator>
      <dc:date>2024-04-09T16:02:56Z</dc:date>
    </item>
    <item>
      <title>Re: Allocating licenses based on Azure AD groups</title>
      <link>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2439614#M26985</link>
      <description>&lt;P&gt;Ah,&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/44037"&gt;@steeefan&lt;/a&gt;&amp;nbsp;, so nice! I knew I was missing something stupid - I had the path too long (including) api/v1/... Working with the value for type in the body, for other users I can add that the value (e.g., "analyzer") is case sensitive. Thanks a bunch! /Simon&lt;/P&gt;</description>
      <pubDate>Wed, 10 Apr 2024 07:29:16 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2439614#M26985</guid>
      <dc:creator>simonheap_cph</dc:creator>
      <dc:date>2024-04-10T07:29:16Z</dc:date>
    </item>
    <item>
      <title>Re: Allocating licenses based on Azure AD groups</title>
      <link>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2440074#M26997</link>
      <description>&lt;P&gt;You can also use the blocks from Qlik Platform Operations instead of those from Qlik Cloud Services.&lt;/P&gt;
&lt;P&gt;You have an "Allocate License To User" block.&lt;/P&gt;
&lt;P&gt;Here's a basic example.&lt;/P&gt;
&lt;P&gt;(don't forget to create a&amp;nbsp;&lt;SPAN&gt;tenant OAuth client first and configure the connection)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Laurent_Cornilleau_1-1712825316039.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/163869iC0BEA8309174C787/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Laurent_Cornilleau_1-1712825316039.png" alt="Laurent_Cornilleau_1-1712825316039.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 11 Apr 2024 08:49:16 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2440074#M26997</guid>
      <dc:creator>Laurent_Cornilleau</dc:creator>
      <dc:date>2024-04-11T08:49:16Z</dc:date>
    </item>
    <item>
      <title>Re: Allocating licenses based on Azure AD groups</title>
      <link>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2440117#M26999</link>
      <description>&lt;P&gt;And we just added a new "Allocate Or Update User License" block to QPO to make it easier to handle for when users might already have an assignment:&amp;nbsp;&lt;A href="https://qlik.dev/changelog/90-platform-ops-connector/" target="_blank"&gt;https://qlik.dev/changelog/90-platform-ops-connector/&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 11 Apr 2024 10:03:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2440117#M26999</guid>
      <dc:creator>Dave_Channon</dc:creator>
      <dc:date>2024-04-11T10:03:10Z</dc:date>
    </item>
    <item>
      <title>Re: Allocating licenses based on Azure AD groups</title>
      <link>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2440165#M27001</link>
      <description>&lt;P&gt;Dear Laurent,&lt;/P&gt;
&lt;P&gt;Thank you for pointing this out! I was not aware of the&amp;nbsp;&lt;SPAN&gt;Qlik Platform Operations having been able to handle what I needed from&amp;nbsp;Qlik Cloud Services. But also, I am new to OAuth, so, not having to use OAuth is, for me, a compelling feature with the&amp;nbsp;Qlik Cloud Services. Why is it - also a question to&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/1870"&gt;@Dave_Channon&lt;/a&gt;&amp;nbsp; - that we have to use OAuth for stuff like this, when/if we are running the automation on the tenant that we want to handle the users on? Since the starting block is User Created, to me it is obvious that I would not have this starting block on tenant a and then run something else on tenant b. Although I can see the flexibility here, I kind'a like avoiding having to authenticate again. Any comments from either you two gentlemen are welcomed and treasured. BR, Simon&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 11 Apr 2024 11:56:50 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2440165#M27001</guid>
      <dc:creator>simonheap_cph</dc:creator>
      <dc:date>2024-04-11T11:56:50Z</dc:date>
    </item>
    <item>
      <title>Re: Allocating licenses based on Azure AD groups</title>
      <link>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2440189#M27002</link>
      <description>&lt;P&gt;Essentially:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;QCS connector authenticates as the current user. Super convenient and great for use cases where you want to act as the current user, but can only act with the permissions assigned to that interactive user.&lt;/LI&gt;
&lt;LI&gt;QPO connector authenticates via OAuth. OAuth clients permit very fine control of the scopes you add to a user, and acts as a discrete user. This means you can do things like access private content, impersonate other users, really accurately control what the user can do in the tenant (in more ways than just assigning a role), and track and audit it's actions more easily than picking out what an interactive user has been up to&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Definitely a use case and space for both, hopefully QCS is enough for most things, QPO just gives you additional options and capabilities.&lt;/P&gt;</description>
      <pubDate>Thu, 11 Apr 2024 13:09:03 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Allocating-licenses-based-on-Azure-AD-groups/m-p/2440189#M27002</guid>
      <dc:creator>Dave_Channon</dc:creator>
      <dc:date>2024-04-11T13:09:03Z</dc:date>
    </item>
  </channel>
</rss>

