Azure ADと連携するSaaSアプリケーションで、マネージャーのプロパティ値を取得し承認プロセスに組み込む製品がありました。
設定方法を調べたので記事にします。
結論だけ述べると文字数が少なくなるため、その他のプロパティ値についても補足説明します。
マネージャー設定
前提
必須オプションのObjectId値を取得するため、Get-AzureADUserコマンドの実行結果を利用しています。
コマンド実行結果は1つであることが前提です。
複数出力される場合はエラーになります。
設定
表示名(DisplayName)がUserAのアカウントに、マネージャーのUserBを設定する場合は以下のようにします。
Set-AzureADUserManager -ObjectId (Get-AzureADUser -SearchString userA).ObjectId -RefObjectId (Get-AzureADUser -SearchString userB).ObjectId
必須オプションは2つです。
- -ObjectId:マネージャーを設定するアカウントのオブジェクトIDを指定します。
- -RefObjectId:マネージャーのオブジェクトIDを指定します。
確認
表示名(DisplayName)がUserAのアカウントに設定されたマネージャーを確認する場合は以下のようにします。
Get-AzureADUserManager -ObjectId (Get-AzureADUser -SearchString userA).ObjectId
コマンド実行後、設定したマネージャーのObjectId、DisplayName、UserPrincipalName、UserTypeが出力されます。
必須オプションは1つです。
- -ObjectId:マネージャーを設定したアカウントのオブジェクトIDを指定します。
マネージャーが設定されていない場合は何も出力はされません。
変更
マネージャーを変更したい場合は、Set-AzureADUserManagerコマンドの-RefObjectIdオプションの値を変更して再実行します。
1ユーザーアカウントにつき、設定できるマネージャーは1つですので、実行すると以前の値は上書きされます。
削除
表示名(DisplayName)がUserAのアカウントのマネージャーを削除する場合は以下のようにします。
Remove-AzureADUserManager -ObjectId (Get-AzureADUser -SearchString userA).ObjectId
とくに何も出力はされません。
必須オプションは1つです。
- -ObjectId:マネージャーを削除したいアカウントのオブジェクトIDを指定します。
削除後は、Get-AzureADUserManagerコマンドを実行し何も出力されないことを確認します。
補足説明
短縮した書き方
Get-AzureADUserManagerやRemove-AzureADUserManagerコマンドで-ObjectIdを省略する書き方ができます。
Get-AzureADUserManagerコマンドを例にすると以下のようになります。
Get-AzureADUser -SearchString userA | Get-AzureADUserManager
ユーザー情報の取得方法
Get-AzureADUserコマンドでObjectIdを取得する方法は複数あります。
UPN
ユニークな値となるUPN値で取得する方法です。
確実に1件の結果を得られます。
以下のようにします。
Get-AzureADUser -ObjectId userA@xxxx.onmicrosoft.com
表示名
重複する危険がありますが、表示名(DisplayName)で取得する方法です。
以下のようにします。
Get-AzureADUser -SearchString userA
条件
複数の条件を設定して取得する方法です。
以下のようにします。
Get-AzureADUser -Filter "DisplayName eq 'userA' and UserType eq 'Member'"
次のようにも書けます。
Get-AzureADUser | where {$_.DisplayName -eq "userA" -and $_.UserType -eq "Member"}
プロパティ値の設定方法
新規ユーザーの作成や変更時にプロパティ値の設定が行えます。
新規はNew-AzureADUser、変更はSet-AzureADUserコマンドです。
例えば、表示名(DisplayName)がUserAのアカウントにUsageLocationプロパティとして「JP」という値を設定する場合は以下のようにします。
Get-AzureADUser -SearchString userA | Set-AzureADUser -UsageLocation JP
プロパティの一覧について英語と日本語の対応を以下に記載します。
- AgeGroup:年齢グループ
- City:市区町村
- CompanyName:会社名
- ConsentProvidedForMinor:未成年に対する同意
- Country:国または地域
- Department:部署
- DisplayName:表示名
- FacsimileTelephoneNumber:FAX 番号
- GivenName:名
- JobTitle:役職
- LegalAgeGroupClassification:法廷年齢グループの分類
- Mail:メール
- MailNickName:メールニックネーム
- Mobile:携帯電話番号
- PhysicalDeliveryOfficeName:勤務先所在地
- PostalCode:郵便番号
- State:都道府県
- StreetAddress:番地
- Surname:姓
- TelephoneNumber:勤務先の電話番号
- UsageLocation:利用場所
- UserType:ユーザーの種類
おわりに
数百人単位の設定を変更する場合は、Excelでコマンド一覧を作成しバッチ処理するようにしています。
誰かに引き継ぐ時、確実に処理する方法として行きついたやり方です。
中継するツールは何でも良いのですが、柔軟に対応できるようにしておきたいですね。