FIXER cloud.config Tech Blog
情シスの味方・Azure ADの一時アクセスパスをPowerShellで簡単に生成する
2023年04月25日 13時00分更新
本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「情シスの味方・一時アクセスパスをPowerShellで簡単に生成する」を再編集したものです。
How to Easily Generate Temporary Access Pass with PowerShell
Azure ADでユーザーを作成・管理している環境では、ユーザーに対して一時アクセスパスを付与することが必要な場合があります。
一時アクセスパス(Temporary Access Pass)とはAzure ADの認証方法のひとつで、名前の通り一時的に利用可能な(時間制限のある)認証方法のことです。
ユーザーのメールアドレスと一時アクセスパスのみで認証が実現できるため、主にモバイルデバイス紛失時のフォローなど、緊急時対応に活躍するほか、ユーザーの初期セットアップを効率化できるメリットがあります。
一時アクセスパスの作成方法は一般的には
1. Azure Portalにログイン
2. ユーザーを検索
3. 認証方法の管理画面を表示
4. 一時アクセスパスの作成条件を入力
5. 出力された一時アクセスパスをコピー
といった流れになりますが、
・一時アクセスパスが表示されるのは作成直後の画面のみで、振り返り参照ができない
・複数のユーザーのために一括作成する機能は存在せず、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
この例では、2023年4月3日から2023年4月4日までの期間、user1@example.comおよびuser2@example.comのユーザーに対して一時アクセスパスが生成されます。
<例2>
PS C:\> .\New-TemporaryAccessPass.ps1 -StartDate '2023-04-03' -EndDate '2023-04-04' -UserListFile .\users.txt
この例では、2023年4月3日から2023年4月4日までの期間、users.txtファイルに記載されたユーザーに対して一時アクセスパスが生成されます。
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
神守広介/FIXER
株式会社FIXERにてCorporate IT業務をエンジョイしてます。
この連載の記事
-
TECH
メタバースのメリットは? 実際の活用事例から考えてみる -
TECH
法人向け「Microsoft Entra ID P2ライセンス」を個人で購入する方法 -
TECH
環境ごとに異なるTerraformのバックエンド設定を効率化、override.tfの使い方 -
TECH
Azure FunctionsとAzureのサービスを連携させる方法 -
TECH
PlaywrightをAzure Functionsにデプロイして動かす方法 -
TECH
Windows Admin Centerとは? ― 2020年代の新しい運用管理のカタチ -
TECH
Azureの管理コスト削減! リソースのタグ付けを自動化しよう -
TECH
Logic Appsでリソースのサブスクリプションを移動させる方法+注意点 -
TECH
生成AIで大注目のOpen InterpreterとAzure CLIを使ってリソースを自動作成してみた -
TECH
AzureのvCpuクォータ制限解除、爆速に改善されていて草 -
TECH
AzureのApplication Insightsでお手軽にお安く? HTTP監視しよう - この連載の一覧へ