Проблема с разрешением на изменение пароля пользователя с помощью клиентского API Azure AD Graph

Я пытаюсь создать страницу в ASP.Net MVC для сброса пароля текущего пользователя. Я использую активный каталог Azure для аутентификации пользователя. Для доступа к информации AD пользователя я использую клиент C # Graph API. Мой код основан на примере, найденном наGitHub

Я могу вносить изменения в информацию пользователя (например, город, штат, адрес электронной почты). Однако, когда я пытаюсь изменить пароль с помощью атрибута PasswordProfile пользовательского объекта, я получаю сообщение об ошибке, в котором говорится, что у меня недостаточно разрешений. Я пытаюсь изменить пароль в качестве приложения, и я считаю, что источником проблемы с разрешением является приложение.

Я нашел следующий скрипт PowerShell, который должен добавить роль администратора компании в приложение. Однако вызов Get-MsolServicePrincipal ничего не возвращает. Глядя на выходные данные команды, я не вижу записей, которые даже напоминают название моего приложения.

#-----------------------------------------------------------
# This will prompt you for your tenant's credential
# You should be able to use your your Azure AD administrative user name
# (in the [email protected] format)
#-----------------------------------------------------------
import-module MSOnline
Connect-MsolService

#-----------------------------------------------------------
# Replace the Application Name with the name of your 
# Application Service Principal
#-----------------------------------------------------------
$displayName = "My Azure AD Application"
$objectId = (Get-MsolServicePrincipal -SearchString $displayName).ObjectId

#-----------------------------------------------------------
# This will add your Application Service Prinicpal to 
# the Company Administrator role
#-----------------------------------------------------------
$roleName = "Company Administrator"              
Add-MsolRoleMember -RoleName $roleName -RoleMemberType ServicePrincipal -RoleMemberObjectId $objectId

Наверное, мой первый вопрос: правильно ли я понимаю, что проблема с разрешением связана с приложением?

Во-вторых, какое значение я должен установить для переменной $ displayName?

Ответы на вопрос(2)

Ваш ответ на вопрос