How to show Software License compliance status based on multiple tenant for a publisher SAM Pro

Amit_Bindal
Tera Contributor

We have Integrated with Microsoft multiple tenants to fetch Software data (Subscriptions).

Using SAM-PRO- Direct SaaS Integration profiles, this integration has been done between ServiceNow and different tenants. However , It has been observed that Subscriptions are fetched tenant wise but while reconciliation it is not segregating tenant wise so the license calculations and compliance result is showing based on combine subscription of all tenants.

 

#software asset management

5 REPLIES 5

pr8172510
Tera Guru

 

Hi @Amit_Bindal,

 

This is expected OOB behavior in SAM Pro.

 

 Reconciliation and compliance calculations are generally performed at the publisher/product entitlement level unless additional segregation logic is implemented.

 

Since subscriptions from all Microsoft tenants are being normalized into the same entitlement pool, SAM Pro is calculating one combined compliance position.

 

If tenant-wise compliance is required, ServiceNow best practice is to:

  • separate entitlements/subscriptions per tenant
  • maintain tenant ownership attributes
  • use separate organizations/cost centers/business units if applicable
  • apply reconciliation/allocation logic based on tenant boundaries

Most implementations achieve this by tagging imported subscription records with:

 

 
Tenant ID
and then creating:
  • separate entitlements
  • separate allocations
  • separate reporting filters

for each tenant.

 

Without tenant segregation in the data model, SAM Pro will aggregate all subscriptions into one compliance calculation, which is what you are currently seeing.

Hi @pr8172510 
Thanks for your response.

If tenant-wise compliance is required, ServiceNow best practice is to:

  • separate entitlements/subscriptions per tenant - This is done
  • maintain tenant ownership attributes - This is done
  • use separate organizations/cost centers/business units if applicable - This is Ok
  • apply reconciliation/allocation logic based on tenant boundaries - How to do this? Any customization required?

 

Hi @Amit_Bindal,

Yes, this can be achieved OOTB using Consumption Rules  on Software Entitlements.

  1. Create separate entitlements per tenant

 

M365 - Tenant A
M365 - Tenant B
  1. Maintain Tenant/Company attribute on users/devices
  2. Configure Consumption Rules on each entitlement

 

Company = Tenant A

This ensures only Tenant A users/devices consume Tenant A licenses.

  1. Run SAM Reconciliation again.

 

Use Software Model Install Conditions to restrict installations considered during reconciliation.

Hi @pr8172510 

I tried this approach, but I am still facing a few issues:

  1. Created separate entitlements for each tenant
  2. Added a custom attribute on the samp_sw_subscription table to map subscription records to the respective tenant
  3. Configured Consumption Rules on each entitlement

However, users for these tenants do not exist in the sys_user table, so the system is unable to map the User Principal Name (UPN) from the subscription records to user records.

It also appears that during reconciliation, the system evaluates attributes such as Company, Department, and Cost Center from the user record (sys_user) rather than from the subscription record itself. As a result, the reconciliation process is showing zero license consumption for all tenants.