How to Easily Generate Temporary Access Pass with PowerShell
Azure ADでユーザーを作成・管理している環境では、ユーザーに対して一時アクセスパスを付与することが必要な場合があります。
一時アクセスパス(Temporary Access Pass)とはAzure ADの認証方法の一つで、名前の通り一時的に利用可能な(時間制限のある)認証方法のことです。
ユーザーのメールアドレスと一時アクセスパスのみで認証が実現できるため、主にモバイルデバイス紛失時のフォローなど、緊急時対応に活躍するほか、ユーザーの初期セットアップを効率化できるメリットがあります。
一時アクセスパスの作成方法は一般的には
- Azure Portalにログイン
- ユーザーを検索
- 認証方法の管理画面を表示
- 一時アクセスパスの作成条件を入力
- 出力された一時アクセスパスをコピー
といった流れになりますが、
- 一時アクセスパスが表示されるのは作成直後の画面のみで、振り返り参照ができない
- 複数のユーザーのために一括作成する機能は存在せず、1ユーザーごとに操作しなければならない
といった点に不満を感じていました。
今回は上記2点を解消するPowerShellスクリプトを作成したので紹介します。
対象読者
- 既に一時アクセスパスを利用しているシステム管理者
- PowerShellに興味がある方
事前に用意するもの
- PowerShellがインストールされているコンピューター
- スクリプトを実行するための管理者権限
- 一時アクセスパスが利用可能となっているAzure AD環境
スクリプトとスクリプトの概要
スクリプトはこちらを参照してください。
このスクリプトは特定のユーザー、またはユーザーリストに対して一時アクセスパスを設定し、結果をCSVとして出力するものです。
このスクリプトを利用することでGUI(Azure Portal)を都度操作する手間が省けます。
スクリプトの使い方
このスクリプトは一時アクセスパスの開始日・終了日・割り当て対象のユーザー(またはユーザーリスト)を指定することで、同一条件の一時アクセスパスを生成することができます。
まずはローカルの作業フォルダにリンク先のスクリプト(New-TemporaryAccessPass.ps1)をダウンロードしてください。
PowerShellを起動してスクリプトを実行すると、対象ユーザーと一時アクセスパス、有効期間がGridviewで表示されるほか、CSVファイルが作業フォルダに保管されます。
具体的な実行例を紹介します。
<例1>
PS C:\> .\New-TemporaryAccessPass.ps1 -StartDate '2023-04-03' -EndDate '2023-04-04' -Users user1@example.com,user2@example.com
<例2>
PS C:\> .\New-TemporaryAccessPass.ps1 -StartDate '2023-04-03' -EndDate '2023-04-04' -UserListFile .\users.txt
user1@example.com
user2@example.com
user3@example.com
<例3>
PS C:\> .\New-TemporaryAccessPass.ps1 -Users user1@example.com
スクリプトの注意事項
このスクリプトはNew-MgUserAuthenticationTemporaryAccessPassMethodを利用した一括生成スクリプトです。
New-MgUserAuthenticationTemporaryAccessPassMethodの引数にはJST形式で日付を入力するのですが、現在の仕様では一時アクセスパスの有効期限の出力がUTC形式となってしまいます。
そのため、日本時間に合わせるためにCSV出力の際にAddHour(9)を入れています。
今後プログラムの処理内容が変わる場合は要注意です。
まとめ
一時アクセスパスを活用した初期セットアップは結構便利です。
Windows AutoPilot(or Pre Provisioning)+Temporary Access Pass+Windows Hello for Business+パスワードレス認証を使うことでユーザーに初期パスワードを意識させないセットアップを実現することも可能です。(ググると日本語記事が数点出てくるので本記事では省略します)
最後に、一時アクセスパスは便利でもあり悪用すると大変危険なもの(なりすましログインなどが出来てしまう)となります。
発行できるユーザーやアプリ・発行した一時アクセスパスは用法・用量を正しく守って使いましょう。
おしまい
参考
パスワードレスの認証方法を登録するように Azure AD で一時アクセス パスを構成する - Microsoft Entra | Microsoft Learn