Как я могу использовать MS Graph для перечисления экземпляров Azure AD для данной учетной записи LiveID?

У меня есть клиент, который использует учетную запись 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 следующие:

1 ответ

Как получить список всех экземпляров Azure AD, связанных с этой учетной записью?

Я не уверен, что Microsoft Graph API выставляет вызов API, чтобы получить список всех экземпляров Azure AD, связанных с этой учетной записью. Но в новом портале Azure я заметил, что могу выбрать несколько активных каталогов Windows Azure, щелкнув свое имя пользователя в правой верхней части портала. С помощью Fiddler вы можете найти вызов API, который использует портал для получения информации о нескольких активных каталогах Windows Azure:

https://ms.portal.azure.com/AzureHubs/api/tenants/List

Тогда вы могли бы добавить Windows Azure Service Management API в required permissions в вашем приложении:

Затем, используя поток кода авторизации, вам нужно получить токен доступа для Windows Azure Service Management API установив ресурс:https://management.core.windows.net/,

После того, как вы получите токен доступа, вы можете попробовать нижеприведенные вызовы API для получения всех активных каталогов Azure:

POST https://ms.portal.azure.com/AzureHubs/api/tenants/List
Authorization: Bearer xxxxx

Результат:

Если ваша учетная запись является учетной записью microsft и вы хотите пройти проверку подлинности с помощью приложения, вы можете добавить учетную запись в качестве внешнего пользователя в AAD.

Другие вопросы по тегам