Если пользователь Azure AD забыл свой пароль, администратор тенанта Azure (Microsoft 365) может сбросить его несколькими способами: через Azure Portal, PowerShell или можно включить функцию самостоятельного сброса пароля пользователями (SSRP).
Для сброса пароля пользователей вашей учётной записи должна быть назначена встроенная роль Azure: User Administrator или Password Administrator
Сбросить пароль пользователя через Azure Portal
Самый простой способ сбросить пароль пользователя в Azure – воспользоваться веб интерфейсом портала Azure (или Microsoft 365 Admin Center).
- Авторизуйтесь на портале https://portal.azure.com/ и перейдите в раздел Azure Active Directory -> Users;
- Выберите пользователя и нажмите на Reset Password;
- Появится предупреждение, что пользователю будет назначен временный пароль.
The user '[email protected]' will be assigned a temporary password that must be changed on the next sign in. To display the temporary password, click 'Reset password'.
Нажмите на Reset Password;
- Azure сгенерирует для пользователя новый временный пароль и отобразит его на экране;
- Передайте пароль пользователю и при следующем входе в любое приложение Microsoft 365 с помощью Modern Authentication, ему будет предложено сменить его.
- По логам входов пользователя в Azure можно проверить, что пользователь успешно аутентифицировался.
Несколько важных моментов:
- Временный пароль никогда не истекает;
- Если у вас настроена синхронизация локальной Active Directory с Azure AD через Connector, то для сброса пароля из облака, в настройках коннектора должна быть включена синхронизация паролей Password Write-Back.
Для своего тенанта Azure вы можете включить самостоятельный сброс паролей пользователями (Self-Service Password Reset — SSPR). Вы можете включить SSRP для одной группы пользователей или для всех пользователей AAD в разделе Azure Active Directory -> Password reset -> Properties.
Для сброса пароля пользователи могут использовать разрешенные методы подтверждения. В дополнении к стандартным MFA методам здесь добавлена возможность использования секретных вопросов и офисного телефона. Можно использовать один или два метода проверки.
[/alert]
Сброс пароля пользователя Azure Active Directory с помощью PowerShell
При сбросе пароля пользователя через портал Azure новый временный пароль генерируется автоматически. Но вы можете задать новый пароль пользователю вручную с помощью PowerShell.
Для сброса пароля пользователя можно использовать модуль Azure AD. Подключитесь к своему тенанту Azure:
Connect-AzureAD
Задайте новый пароль и сконвертируйте его в SecureString (см. статью про хранение паролей в скриптах PowerShell):
$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
По UPN нужно получить Object ID пользователя, которому вы хотите изменить пароль:
$userObjectId=(Get-AzureADUser -filter "userPrincipalName eq '[email protected]'").ObjectID
Примените новый пароль для пользователя Azure по ObjectID:
Set-AzureADUserPassword -ObjectId $userObjectId -Password $newPass
Если вы хотите, чтобы пользователь сменил пароль при следующем входе, добавьте опцию
-ForceChangePasswordNextLogin $true
С помощью модуля Azure AD не получится вывести время смены пароля пользователя. Эту информацию можно получить через Microsoft Graph API или с помощью старого модуля MSOnline.
Если на компьютере установлен PowerShell модуль MSOnline, подключитесь к тенанту:
Connect-MsolService
Выведите значение LastPasswordChangeTimeStamp:
Get-MsolUser -UserPrincipalName '[email protected]'| Select DisplayName,UserPrincipalName,LastPasswordChangeTimeStamp
Если в политике паролей Azure AD включена опция истечения срока пароля, с помощью PowerShell можно узнать дату, когда пароль пользователя будет просрочен:
$user=Get-MsolUser -UserPrincipalName '[email protected]'
$User.LastPasswordChangeTimestamp.AddDays($PasswordPolicy.ValidityPeriod)
Либо вы можете обратиться к Microsoft Graph API из PowerShell для получения информации о времени смены пароля пользователя и дате создания пользователя в Azure:
$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 userprincipalname –eq '[email protected]' | select userprincipalname,accountenabled,createdDateTime,lastPasswordChangeDateTime
Через Microsoft Graph API и метод POST можно даже сбросить пароль пользователя. Используйте такой POST запрос:
POST https://graph.microsoft.com/v1.0/me/changePassword Content-Type: application/json { "currentPassword": "password1234!", "newPassword": "P@ssw0rd2!" }