C #, чтобы узнать, был ли пользователь перенесен из Windows Server AD в Microsoft Azure

В моей личной учетной записи Azure я перенес некоторых пользователей из Windows Server AD, некоторые были созданы непосредственно в Azure AD, а некоторые пользователи пришли из личных учетных записей Microsoft. Мне удалось отобразить этих пользователей в приложении Windows Desktop с помощью Microsoft Graph - аналогично тому, что мы видим на портале Azure (как показано ниже). Более того, как показано ниже, Source списка пользователей на портале Azure сообщает вам, был ли пользователь перенесен из Windows Server AD или нет. Но мне не удалось найти способ программно узнать, был ли пользователь перенесен из Windows Server AD или нет. Вопрос: есть ли API MS Graph или какой-либо другой способ программно узнать, был ли пользователь перенесен из Windows Server AD или нет?

Примечание: я использую UWP, но это не имеет значения. Предложение может быть связано с любым типом приложения, если используется язык C #.

Чтобы получить список пользователей:

// Get the Graph client from the provider
var graphClient = ProviderManager.Instance.GlobalProvider.Graph;

 var users = await graphClient.Users.Request()
    .Select("displayName, userPrincipalName, userType")
     .GetAsync();

Пользователи, отображаемые на портале Azure [для Source Column в моем настольном приложении Windows мне нужно определить, был ли пользователь перенесен из Windows Server AD или нет]:

введите описание изображения здесь


person nam    schedule 30.07.2020    source источник


Ответы (1)


Я думаю, вы можете отличить пользователя от (или не от) Windows Server AD по полям, начинающимся с onPremises. Если пользователь перешел из Windows Server AD, поля onPremises... не будут пустыми. Если не из Windows Server AD, поля должны быть пустыми. См. Снимок экрана ниже:

введите описание изображения здесь

введите описание изображения здесь

=================================== Обновление ======= ===========================

Мы можем использовать одно из полей, показанных выше (например, OnPremisesUserPrincipalName), чтобы судить, принадлежит ли пользователь из Windows Server AD или нет.

person Hury Shen    schedule 31.07.2020
comment
В пользовательском ресурсе 26 таких полей. введите. Я думал, что их будет слишком много для использования в критериях. Для моих нужд достаточно использовать поле OnPremisesUserPrincipalName. Однако я не получаю ожидаемых результатов. Я разместил проблему здесь на случай, если у вас есть предложения / комментарии. - person nam; 01.08.2020
comment
Проблема, размещенная здесь, теперь решена. . Если вы можете изменить свой ответ в соответствии с моими потребностями (описанными в моем комментарии выше), я также отмечу ваш ответ как Answer, чтобы другие пользователи также могли получить от него пользу. Читатели обращают больше внимания на ответ, если он принят. Спасибо. - person nam; 02.08.2020
comment
Привет @nam, я улучшил свой ответ. - person Hury Shen; 03.08.2020