Get licenses assigned to a user by license group
How to get a list of user assigned licenses for the specified license groups.
Prerequisites
Credentials as described in Partner Center authentication. This scenario supports authentication with App+User credentials only.
A customer ID (
customer-tenant-id
). If you don't know the customer's ID, you can look it up in Partner Center by selecting the Customers workspace, then the customer from the customer list, then Account. On the customer’s Account page, look for the Microsoft ID in the Customer Account Info section. The Microsoft ID is the same as the customer ID (customer-tenant-id
).A user identifier.
A list of one or more license group identifiers.
GDAP Roles : Directory Reader, License Administrator, User Administrator, Directory Writers
C#
To check which licenses are assigned to a user from specified license groups, start by instantiating a [List/dotnet/api/system.collections.generic.list-1) of type LicenseGroupId, and then add the license groups to the list. Then, use the IAggregatePartner.Customers.ById method with the customer ID to identify the customer. Next, call the Users.ById method with the user ID to identify the user. Then, get an interface to customer user license operations from the Licenses property. Finally, pass the list of license groups to the Get or GetAsync method to retrieve the collection of licenses assigned to the user.
// string selectedCustomerUserId;
// string selectedCustomerId;
// IAggregatePartner partnerOperations;
// To get the group1 (Azure Active Directory (AAD)) assigned licenses.
List<LicenseGroupId> licenseGroupIds = new List<LicenseGroupId>(){ LicenseGroupId.Group1 };
var customerUserAadAssignedLicenses = partnerOperations.Customers.ById(selectedCustomerId).Users.ById(selectedCustomerUserId).Licenses.Get(licenseGroupIds);
// To get the group2 (Minecraft) assigned licenses.
List<LicenseGroupId> licenseGroupIds = new List<LicenseGroupId>(){ LicenseGroupId.Group2 };
var customerUserSfbAssignedLicenses = partnerOperations.Customers.ById(selectedCustomerId).Users.ById(selectedCustomerUserId).Licenses.Get(licenseGroupIds);
// To get both AAD and Minecraft assigned licenses.
List<LicenseGroupId> licenseGroupIds = new List<LicenseGroupId>(){ LicenseGroupId.Group1, LicenseGroupId.Group2 };
var customerUserBothAadAndSfbAssignedLicenses = partnerOperations.Customers.ById(selectedCustomerId).Users.ById(selectedCustomerUserId).Licenses.Get(licenseGroupIds);
REST request
Request syntax
Method | Request URI |
---|---|
GET | {baseURL}/v1/customers/{customer-id}/users/{user-id}/licenses?licenseGroupIds=Group1 HTTP/1.1 |
GET | {baseURL}/v1/customers/{customer-id}/users/{user-id}/licenses?licenseGroupIds=Group2 HTTP/1.1 |
GET | {baseURL}/v1/customers/{customer-id}/users/{user-id}/licenses?licenseGroupIds=Group1&licenseGroupIds=Group2 HTTP/1.1 |
URI parameter
Use the following path and query parameters to identify the customer, user, and license groups.
Name | Type | Required | Description |
---|---|---|---|
customer-id | string | Yes | A GUID formatted string that identifies the customer. |
user-id | string | Yes | A GUID formatted string that identifies the user. |
licenseGroupIds | string | No | An enum value that indicates the license group of the assigned licenses. Valid values: Group1, Group2 Group1 - This group has all products whose license can be managed in the Azure Active Directory (AAD). Group2 - This group has only Minecraft product licenses. |
Request headers
For more information, see Partner Center REST headers.
Request body
None.
Request example
GET https://api.partnercenter.microsoft.com/v1/customers/0c39d6d5-c70d-4c55-bc02-f620844f3fd1/users/482e2152-4b49-48ec-b715-823365ce3d4c/licenses?licenseGroupIds=Group1&licenseGroupIds=Group2 HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: a1d077e4-28b1-4578-b873-6d1a82fa1644
MS-CorrelationId: c8cb5a60-ae08-4afc-92f0-efc42adfa186
X-Locale: en-US
Host: api.partnercenter.microsoft.com
REST response
If successful, the response body contains the collection of License resources.
Response success and error codes
Each response comes with an HTTP status code that indicates success or failure and additional debugging information. Use a network trace tool to read this code, error type, and additional parameters. For the full list, see Partner Center error codes.
Response example
HTTP/1.1 200 OK
Content-Type: application/json
MS-CorrelationId: 8a53b025-d5be-4d98-ab20-229d1813de76
MS-RequestId: b1317092-f087-471e-a637-f66523b2b94c
Date: June 24 2016 22:00:25 PST
{
"totalCount": 2,
"items": [{
"servicePlans": [
],
"productSku": {
"id": "984df360-9a74-4647-8cf8-696749f6247a",
"name": "Minecraft Education Edition Faculty",
"skuPartNumber": "CFQ7TTC0K5DR/0002",
"licenseGroupId": "group2"
},
"attributes": {
"objectType": "License"
}
}, {
"servicePlans": [{
"displayName": "Windows Defender Advanced Threat Protection",
"serviceName": "WINDEFATP",
"id": "871d91ec-ec1a-452b-a83f-bd76c7d770ef",
"capabilityStatus": "Assigned",
"targetType": "User"
}, {
"displayName": "Windows 10 Enterprise E3",
"serviceName": "WIN10_PRO_ENT_SUB",
"id": "21b439ba-a0ca-424f-a6cc-52f954a5b111",
"capabilityStatus": "Assigned",
"targetType": "User"
}
],
"productSku": {
"id": "1e7e1070-8ccb-4aca-b470-d7cb538cb07e",
"name": "Windows 10 Enterprise E5",
"skuPartNumber": "WIN_ENT_E5",
"licenseGroupId": "group1"
},
"attributes": {
"objectType": "License"
}
}
],
"attributes": {
"objectType": "Collection"
}
}
Response example (no matching licenses found)
If no matching licenses can be found for the specified license groups, the response contains an empty collection with a totalCount element whose value is 0.
HTTP/1.1 200 OK
Content-Length: 71
Content-Type: application/json; charset=utf-8
MS-CorrelationId: c8cb5a60-ae08-4afc-92f0-efc42adfa186
MS-RequestId: a1d077e4-28b1-4578-b873-6d1a82fa1644
MS-CV: q05xrhUeDUKvhrFt.0
MS-ServerId: 030020525
Date: Fri, 09 Jun 2017 22:50:11 GMT
{
"totalCount": 0,
"items": [],
"attributes": {
"objectType": "Collection"
}
}