Это замечательно! И все же было бы здорово иметь это в Microsoft Graph.
я есть клиент, который использует учетную запись liveID для управления более чем 20 различными каталогами Azure AD.
Как я могу получить список всех экземпляров Azure AD, связанных с этой учетной записью?
Я пытался с помощьюэтот граф проводник чтобы выяснить, какой запрос был правильным, однако каждый раз, когда я пытался дать согласие на чтение справочника, инструмент не принимал его. (он будет работать, но флажок будет снят при осмотре)
Моя цель - определить во время выполнения, какие экземпляры имели «административное согласие» для доступа к приложениям, хранящимся в моем клиенте. Затем я предложу администратору дать согласие на эти приложения.
Я отмечаю как MSAL и ADAL, я не могу заставить работать с учетной записью MSFT, которая является администратором для Azure AD
тестирование
Я использую этоОбразец MSFT и разместил этот код отладки на любом контроллере, который в настоящее время используетActiveDirectoryClient
, Этот код работает для любой учетной записи AzureAD.
var pagedCollectionTenants = await client.TenantDetails.ExecuteAsync();
do
{
var tenants = pagedCollectionTenants.CurrentPage.ToList();
foreach (var tenant in tenants)
{
System.Diagnostics.Debug.WriteLine(tenant.DisplayName + " id " + tenant.ObjectId + " " +
tenant.Street + " " +
tenant.City + " " +
tenant.State + " " +
tenant.PostalCode + " " + tenant.PreferredLanguage + " " + tenant.TelephoneNumber);
System.Diagnostics.Debug.WriteLine(" ** Assigned Plans **");
foreach (var plan in tenant.AssignedPlans)
{
System.Diagnostics.Debug.WriteLine( " " + plan.AssignedTimestamp + " " + plan.ServicePlanId + " " + plan.Service + " " + plan.CapabilityStatus);
}
System.Diagnostics.Debug.WriteLine(" ** Provisioned Plans **");
foreach (var provisionedPlans in tenant.ProvisionedPlans)
{
System.Diagnostics.Debug.WriteLine(" " + provisionedPlans.CapabilityStatus + " " + provisionedPlans.ProvisioningStatus + " " + provisionedPlans.Service);
}
System.Diagnostics.Debug.WriteLine(" ** Verified Domains **");
foreach (var domain in tenant.VerifiedDomains)
{
System.Diagnostics.Debug.WriteLine(" " + domain.Type + " " + domain.Name + " " + domain.Initial + " " + domain.Id + " " + domain.Capabilities + " " + domain.@default);
}
}
pagedCollectionTenants = pagedCollectionTenants.GetNextPageAsync().Result;
} while (pagedCollectionTenants != null);
Результаты для учетной записи MSFT следующие: