Azure AD 사용자가 암호를 변경하도록 강요

개시하다


아주어 포털에서는 비밀번호를 재설정할 수 있지만, 다음 로그인 때 강제로 변경하는 버튼을 찾을 수 없어 PowerShell로 설정하려고 한다.

컨디션


> $PSVersionTable.PSVersion


Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  868


> Get-InstalledModule -Name AzureADPreview


Version              Name                                Repository           Description
-------              ----                                ----------           -----------
2.0.2.129            AzureADPreview                      PSGallery            Azure Active Directory V2 Preview Module. ...

주의점


사용할 모듈 정보


상세한 상황은 잘 모르겠습니다(장래에 개선될 수 있습니다).AzureAD 모듈, AzureADPreview 모듈은 PowerShell 7 이후Connect-AzureAD 명령을 실행할 수 없으므로 PowerShell 5.1을 사용해야 합니다.

스크립트를 실행할 사용자 역할 정보


최소한 사용자 정보를 업데이트할 수 있는 역할을 할당받은 사용자로서 실행해야 한다.
저는 검증 환경에서 글로벌 관리자를 가진 사용자부터 시작하지만 실제 현장에서 분배된 역할에 주의해야 합니다.

각본


스크립트 자체가 굉장히 쉬워요.PasswordProfile.ForceChangePasswordNextLogin를 사용자의 $true에 대입하면 된다.
Connect-AzureAD -TenantId <TenantId>

$PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$PasswordProfile.ForceChangePasswordNextLogin = $true

Set-AzureADUser -ObjectId <UPN> -PasswordProfile $PasswordProfile

사용자 등록 정보 확인


스크립트 실행 전 속성

PasswordProfile$null.
> (Get-AzureADUser -ObjectId <UPN>).PasswordProfile -eq $null                  

True

스크립트 실행 후 속성

PasswordProfile에 명령이 작성된 객체가 대입됩니다.PasswordProfile.ForceChangePasswordNextLogin$true로 바뀌면 성공한다.
> (Get-AzureADUser -ObjectId <UPN>).PasswordProfile


Password ForceChangePasswordNextLogin EnforceChangePasswordPolicy
-------- ---------------------------- ---------------------------
                                 True                       False

사용자 시각


이전 암호를 입력하고 로그인합니다.

암호 업데이트 화면이 표시됩니다.성취

끝말


비밀번호를 강제로 변경하고 싶은 경우가 새로 만들 때가 많아요.
마이크로소프트가 영리하기 때문에 아주어포털이 새로 만든 사용자 규정PasswordProfile.ForceChangePasswordNextLogin$true이다.
또한 보안이 위험한 조건에서 로그인 테스트를 할 때 비밀번호를 강제로 변경하려면 AzureaD의 조건부 접근 정책으로 제어하는 것이 좋다.
그래서 실제로 이 시나리오를 수행하는 장면은 제한적이지만 제 현장에서 꼭 필요한 상황이라 메모로 정리해봤습니다.

좋은 웹페이지 즐겨찾기