Какая минимальная привилегия необходима для обновления свойства accountEnabled пользователя в Azure AD? - PullRequest
0 голосов
/ 23 января 2020

Мы используем Microsoft Graph API SDK, чтобы попытаться обновить свойство accountEnabled для пользователей в нашей Azure AD.

Мы используем следующий код:

await graphClient.Users[userId]
                .Request()
                .UpdateAsync(
                    new User()
                    {
                        AccountEnabled = false
                    });

Мы получаем следующую ошибку от Microsoft Graph:

"error": {
    "code": "Authorization_RequestDenied",
    "message": "Insufficient privileges to complete the operation."
}

В документах (https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/roles-delegate-by-task), я смог найти в задаче «Обновление настроек пользователя», что для этого требуется роль глобального администратора. На портале Azure AD «Блокировать вход» (что эквивалентно accountEnabled) находится в разделе «Настройки».

Мне кажется, что это немного не так, но я добавил своего участника службы приложений в роль и это, конечно, сработало. (Почему бы это не сработало, если бы я просто назначил участника службы глобальному администратору. Теперь он должен иметь возможность делать что-либо в моем Azure AD).

Может ли кто-нибудь подтвердить, что это наименьшая необходимая привилегия обновить свойство accountEnabled пользователя в Azure AD?

Спасибо,

Джефф

1 Ответ

0 голосов
/ 24 января 2020

Документы для обновления пользователя через Microsoft Graph: здесь . Вам нужно запросить область, например User.ReadWrite, когда вы получите токен доступа и дадите согласие приложению на доступ к этой области / разрешению.

Если вы делаете это в настольном или консольном приложении, вы можете сделать это следующим образом это:

IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder
            .Create(clientId)
            .Build();
var scopes = new string[] {"User.ReadWrite"};    
InteractiveAuthenticationProvider authProvider = new InteractiveAuthenticationProvider(publicClientApplication, scopes);
GraphServiceClient graphClient = new GraphServiceClient( authProvider );

https://docs.microsoft.com/en-us/graph/sdks/choose-authentication-providers?context=graph%2Fapi%2F1.0&view=graph-rest-1.0&tabs=CS#InteractiveProvider

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...