如何通过C#检测正在使用哪个版本的Azure AD?

时间:2018-11-10 04:51:41

标签: azure azure-active-directory microsoft-graph azure-sdk-.net azure-sdk

我需要确定所使用的AzureAD版本是否为Premium。

如何在C#中确定呢?

1 个答案:

答案 0 :(得分:1)

您可以通过Microsoft Graph .NET Client Library或通过直接HTTP调用来使用Microsoft Graph API。相关的API是:

此外,请注意,有关Azure AD版本的信息,您可以在同一Azure AD中启用多种服务,并且许可证是按每个用户购买/分配的。

上面提到的SubscribedSkus API非常详细,它为您提供有关已启用功能以及可用,已使用的许可证数量等信息。

在MSDN论坛上,这是一个类似的话题,您也应该看一下,它只讨论门户网站,但仍然与概念有关:How to check Azure AD edition

下面是一个示例,该示例将打印包括Azure AD Premium服务计划的所有活动的已订阅SKU:

// There are various Azure AD versions and editions. Here we're only counting
// Azure AD Premium Plan 1 and Azure AD Premium Plan 2. 
var azureAdPlans = new[] { "AAD_PREMIUM", "AAD_PREMIUM_P2" };

// Get all subscribed SKUs
var subscribedSkus = graphClient
    .SubscribedSkus
    .Request().GetAsync().GetAwaiter().GetResult();

// Filter down the results to only active subscribed SKUs with Azure AD service plans.
var skusWithAzureAd = subscribedSkus
    .Where(sku => (sku.CapabilityStatus == "Enabled" || sku.CapabilityStatus == "Warning")
                && (sku.ServicePlans.Any(p => azureAdPlans.Contains(p.ServicePlanName))));

// Print out the results
foreach (var sku in skusWithAzureAd)
{
    Console.WriteLine(
        "{0} ({1}/{2} seats used)", 
        sku.SkuPartNumber, 
        sku.ConsumedUnits, 
        sku.PrepaidUnits.Enabled + sku.PrepaidUnits.Warning);
}