AzureAD B2Cユーザアカウントの操作方法(PowerShell)

PowerShellでAzure AD B2Cのユーザアカウントを操作する方法を説明します。

概要

  • AzureAD B2CのユーザアカウントをPowerShellで操作する方法を説明します。
  • 拡張属性・カスタム属性を操作する方法も併せて説明します。
    なお、拡張属性とカスタム属性については、こちらに纏めてみました。
  • PowerShellからAzureADを操作するためのモジュールはいくつかありますが、
    ここではAzure AD for Graph (Azure AD v2)を使用します。
  • TwitterやFacebook等の外部アカウント連携は想定しておらず、ローカルアカウントの使用を想定した例になっています。拡張属性・カスタム属性以外の操作はAzureADでも同様に使用できると思います。
  • Windows 10環境で確認した結果を記載しています。
  • 環境に依存する内容は変数として定義しているので、実行時に適宜変更してください。

サンプル実行のための事前準備

AzureADモジュールがインストールされていない場合、「Azure ADモジュールのインストール方法」を行ってください。また、サンプルを実行する前に「Azureへの接続方法」を行ってください。

Azure ADモジュールのインストール方法

管理者用PowerShellを起動し、”Install-Module -Name AzureAD”を実行します。
(ローカルコンピュータの構成変更が必要になるので、管理者権限のPowerShellが必要です。)

Azureへの接続方法

通常のPowerShellを起動し、Connect-AzureADを実行します。
Azureのサインイン画面が表示されるので、ユーザ名やパスワード等の認証情報を入力します。

ユーザアカウントの一覧・検索

Get-AzureADUserで使用できるオプションはコマンドリファレンスを参照のこと。

  • -Filterで指定できる条件はこちらを参考のこと。なお、そこに記載している全てのコマンドを使用できるわけではないようです。例えば、endsWith()は使用できませんでした。
  • ユーザアカウントの属性一覧はこちらを参考のこと。
  • ユーザの各種属性を出力したい場合、Format-Listを使用します。Format-Listで使用できるオプションはコマンドリファレンスを参照のこと。

ユーザアカウントの作成・更新・削除

基本的なユーザアカウントの作成

Azureポータルと同等のユーザアカウントの作成

Azure AD B2Cテナントの「ユーザー」から「新しいユーザー」を作成した場合と同様の設定を行うサンプルです。

  • New-AzureADUserで使用できるオプションはコマンドリファレンスを参照のこと。
  • $SignInNamesは必須ではありません。$SignInNamesには、ユーザ名($SignInName1)、メールアドレス($SignInName2)のいずれか、または両方の追加が可能です。
  • MailNickName、UserPrincipalName(“@”の前)には、ユーザアカウントのObjectIdとは異なる何らかのGUIDが指定されています。この仕様は分かりませんが、ここでは新規に作成したGUIDを指定しています。

ユーザアカウントの属性の変更

  • 利用場所(UsageLocation)は、”JP”等の実在する国コード(2桁)を指定する必要があります。(例えば”ZZ”等の実在しないコードを指定するとエラーになります。)
  • 「サインインのブロック」はAccountEnabled属性に対応します。ポータルと属性の意味が逆転しており、サインインをブロックする場合はAccountEnabledに$Falseを指定する必要があることに注意。
  • Set-AzureADUserで使用できるオプションはコマンドリファレンスを参照のこと。-CompanyName等、記載のないオプションがあります。
  • パスワード変更について
    • 簡単にパスワードを変更できるようConvertTo-SecureStringでパスワードを直接指定しています。この方法はコマンドの履歴に残るので本番運用での使用は推奨しません。この警告を無視するために-Forceを指定しています。
    • ConvertTo-SecureStringで使用できるオプションはコマンドリファレンスを参照のこと。
    • Set-AzureADUserPasswordで使用できるオプションはコマンドリファレンスを参照のこと。

ユーザアカウントの削除

カスタム属性と拡張属性の操作

ユーザアカウントの属性には、標準的な属性とそれ以外の拡張属性に分けられます。
拡張属性には、従業員IDやユーザアカウント作成日時等の非標準扱いの属性(以降では「既定の拡張属性」と呼ぶ)や、テナント独自に定義したカスタム属性が含まれます。(両者の違いはこちらをご覧ください。)

テナントのカスタム属性定義の一覧取得

カスタム属性の名称は、実行環境によって異なります。
テナントに定義されているカスタム属性の名称は次のように取得できます。

  • カスタム属性の名称は”extension_{guid}_属性名”となります。詳細はこちらをご覧ください。
  • Get-AzureADApplicationで使用できるオプションはコマンドリファレンスを参照のこと。
  • Get-AzureADApplicationExtensionPropertyで使用できるオプションはコマンドリファレンスを参照のこと。

ユーザアカウントの拡張属性値の一覧取得

  • 拡張属性に含まれる既定の拡張属性やカスタム属性を取得できる。
  • Get-AzureADUserExtensionで使用できるオプションはコマンドリファレンスを参照のこと。
  • 既定の拡張属性は、値の有無に関わらず項目が表示される。カスタム属性の場合は値がないと項目自体が表示されないことに注意が必要です。

拡張属性の値の更新

拡張属性の値の削除

ユーザアカウント作成時に拡張属性を指定

その他のカスタム属性の操作

エクスポート

JSONでエクスポート

CSVでエクスポート