Управление паролями пользователей в Azure Active Directory (Azure AD) — важная задача для администраторов Microsoft 365. Если пользователь забыл пароль, администратор тенанта может сбросить его через веб-портал Azure, PowerShell или настроить функцию самостоятельного сброса пароля (Self-Service Password Reset, SSPR). Для выполнения этих действий учетной записи администратора должны быть назначены роли User Administrator или Password Administrator. В этой статье мы подробно разберем все способы сброса паролей, включая настройку SSPR, использование PowerShell и Microsoft Graph API, а также проверку истории изменений паролей.
1. Сброс пароля через Azure Portal
Самый простой способ восстановления доступа для пользователя — сброс пароля через Azure Portal или Microsoft 365 Admin Center. Этот метод подходит для быстрого создания временного пароля.
Пошаговая инструкция
1. Авторизуйтесь на портале по адресу https://portal.azure.com/.
2. Перейдите в раздел Azure Active Directory → Users.
3. Выберите учетную запись пользователя, которому нужно сбросить пароль.
4. Нажмите кнопку Reset Password.
5. В появившемся окне будет указано, что пользователю назначат временный пароль, который потребуется сменить при следующем входе. Подтвердите действие, нажав Reset Password.
Результат
Azure сгенерирует и отобразит временный пароль. Передайте его пользователю. При следующем входе в приложение Microsoft 365 с использованием современной аутентификации (Modern Authentication) пользователю будет предложено установить новый пароль.
Важные замечания
– Временный пароль: Не имеет срока действия, но пользователь обязан сменить его при первом входе.
– Синхронизация с локальной AD: Если используется синхронизация локальной Active Directory с Azure AD через Azure AD Connect, для сброса пароля из облака включите опцию Password Write-Back в настройках коннектора.
– Журнал входов: После успешной аутентификации проверьте логи входов в Azure AD, чтобы убедиться, что пользователь вошел с новым паролем.
2. Настройка самостоятельного сброса пароля (SSPR)
Функция Self-Service Password Reset (SSPR) позволяет пользователям самостоятельно сбрасывать пароли без обращения к администратору. Это удобно для крупных организаций и снижает нагрузку на ИТ-отдел.
Как включить SSPR
1. Войдите в Azure Portal.
2. Перейдите в Azure Active Directory → Password Reset → Properties.
3. Включите SSPR, выбрав:
– All — для всех пользователей тенанта.
– Selected — для конкретной группы пользователей.
Методы подтверждения личности
SSPR поддерживает несколько методов аутентификации:
– Стандартные методы MFA (многофакторная аутентификация): код через приложение, SMS или звонок.
– Дополнительные методы: секретные вопросы или офисный телефон.
Администратор может настроить использование одного или двух методов для повышения безопасности. Пользователи смогут сбросить пароль через портал https://aka.ms/sspr.
3. Сброс пароля через PowerShell
Для более гибкого управления паролями, включая возможность установки собственного пароля, используйте PowerShell. Этот метод позволяет задать пароль вручную или сгенерировать случайный.
Подготовка
Убедитесь, что установлен модуль AzureAD. Подключитесь к тенанту Azure:
Connect-AzureAD
Установка пароля вручную
Задайте новый пароль и преобразуйте его в объект SecureString:
$newPass = ConvertTo-SecureString 'NewPassword01' -AsPlainText -Force
Генерация случайного пароля
Для создания безопасного случайного пароля выполните:
Add-Type -AssemblyName System.Web
$genpass = [System.Web.Security.Membership]::GeneratePassword(10,2)
$newPass = ConvertTo-SecureString $genpass -AsPlainText -Force
Получение ObjectID пользователя
Найдите ObjectID пользователя по его User Principal Name (UPN):
$userObjectId = (Get-AzureADUser -Filter "userPrincipalName eq 'Lidia@softcomputers.onmicrosoft.com'").ObjectID
Применение нового пароля
Установите пароль для пользователя:
Set-AzureADUserPassword -ObjectId $userObjectId -Password $newPass
Чтобы заставить пользователя сменить пароль при следующем входе, добавьте параметр:
Set-AzureADUserPassword -ObjectId $userObjectId -Password $newPass -ForceChangePasswordNextLogin $true
Примечание
Модуль AzureAD не позволяет получить время последней смены пароля. Для этого используйте модуль MSOnline или Microsoft Graph API.
4. Проверка истории паролей с помощью MSOnline
Если установлен модуль MSOnline, подключитесь к тенанту:
Connect-MsolService
Получите время последней смены пароля:
Get-MsolUser -UserPrincipalName 'Lidia@softcomputers.onmicrosoft.com' | Select DisplayName,UserPrincipalName,LastPasswordChangeTimeStamp
Проверка срока действия пароля
Если в политике Azure AD включено истечение срока действия паролей, узнайте дату окончания действия:
$user = Get-MsolUser -UserPrincipalName 'Lidia@softcomputers.onmicrosoft.com'
$user.LastPasswordChangeTimestamp.AddDays($PasswordPolicy.ValidityPeriod)
В локальной Active Directory дату окончания действия пароля можно получить из атрибута msDS-UserPasswordExpiryTimeComputed.
5. Использование Microsoft Graph API
Microsoft Graph API предоставляет расширенные возможности для управления паролями и получения информации о пользователях.
Получение данных о пароле
Пример скрипта для получения времени создания учетной записи и последней смены пароля:
$ApplicationID = "xxx"
$TenatDomainName = "xxxx"
$AccessSecret = "xxx"
$Body = @{
Grant_Type = "client_credentials"
Scope = "https://graph.microsoft.com/.default"
client_Id = $ApplicationID
Client_Secret = $AccessSecret
}
$ConnectGraph = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenatDomainName/oauth2/v2.0/token" -Method POST -Body $Body
$token = $ConnectGraph.access_token
$GrapUserUrl = 'https://graph.microsoft.com/v1.0/users?$select=userprincipalname,accountenabled,signInActivity,createdDateTime,lastPasswordChangeDateTime'
$users = (Invoke-RestMethod -Headers @{Authorization = "Bearer $($token)"} -Uri $GrapUserUrl -Method Get).value
$users | Where-Object userprincipalname -eq 'LidiaH@softcomputers.onmicrosoft.com' | Select userprincipalname,accountenabled,createdDateTime,lastPasswordChangeDateTime
Сброс пароля через Graph API
Для сброса пароля используйте POST-запрос:
POST https://graph.microsoft.com/v1.0/me/changePassword
Content-Type: application/json
{
"currentPassword": "password1234!",
"newPassword": "P@ssw0rd2!"
}
Сброс пароля пользователя в Azure AD возможен через Azure Portal, PowerShell или Microsoft Graph API. Настройка SSPR позволяет пользователям самостоятельно восстанавливать доступ, снижая нагрузку на администраторов. Использование PowerShell и Graph API предоставляет гибкость для автоматизации и анализа истории паролей. Выберите подходящий метод в зависимости от ваших задач и обеспечьте безопасность учетных записей в Azure AD.