Изменить пароль Azure AD B2C

Мне удалось создать приложение "Функции Azure" для управления пользователями Azure B2C. Я могу без проблем создавать новых пользователей и обновлять профили с помощью client_credentials Flow. Однако, когда я меняю пароль с помощью запроса PATCH с телом:

{
  passwordProfile: {
     password: 'password-value',
     forceChangePasswordNextSignIn: false
     },
  passwordPolicies: "DisablePasswordExpiration"
}

Я получаю такую ​​ошибку:

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

Я провел небольшое исследование и выяснил, что для обновления пароля требуется делегированное разрешение "Directory.AccessAsUser.All". Из внешнего приложения я вхожу в систему, используя B2CLogin Flow, поэтому токен доступа несовместим с Graph API. Кроме того, "Directory.AccessAsUser.All" не существует на уровне приложения в приложении B2C. Поэтому я также не могу использовать запрос на исправление с потоком client_credentials. Согласно некоторым предложениям, этот процесс можно выполнить с помощью Azure AD PowerShell, назначив роль "Администратор компании". Но я не нашел решения для сброса пароля с помощью функции Azure. Пошаговое решение (если оно существует) было бы очень полезно для меня, поскольку я относительно новичок в Службах Azure.

1 ответ

Решение

Самый простой способ - назначить роль глобального администратора субъекту службы на портале Azure.

Перейдите на портал Azure - Azure Active Directory - роли и администраторы.

Найдите "Глобальный администратор" и выберите его.

Нажмите + Добавить задания. А затем найдите своего субъекта-службы.

Обратите внимание, что "Заявки разрешены только для активных заданий".

Поэтому, щелкнув "Далее>", выберите "Активный" для типа назначения.

После завершения назначения вы можете обновить пароль с помощью потока client_credentials.

Add-AzureADDirectoryRoleMember, упомянутый @Jas Suri, также может делать то же самое.

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