Azure ADに追加したアプリケーションにコマンドでユーザーを追加する方法

■はじめに
通常Azure ADに登録したアプリケーションにユーザーを追加する方法として、Azure Portalから実施する方法があります。
この方法は簡易である半面、大量ユーザーの登録には向いていません。
そこで今回はPowerShellコマンドを利用したユーザーの追加方法を記載します。このコマンドをうまく利用すれば大量の処理も可能になります。

※重要※
Azure AD Premiumのライセンスを持っている場合はアプリケーションにグループを追加することができます。
そのためわざわざアプリケーションにユーザーを個別に追加する必要はありません。
ユーザーをグループのメンバーに追加することで、アプリケーションにもユーザーが追加されたことになります。
そのためもしもAzure AD Premiumのライセンスを持っている場合にはこの方法は不要です。

■実施手順
前提としてAzure ADコマンドレットが必要になります。こちらは別途ご用意ください。

1.Azure ADにログインします。

$cred = Get-Credential
Connect-AzureAD -Credential $cred

 

2.アプリケーションのService Pricipalを取得します。例としてDisplayNameが”G Suite”であるアプリケーションのService Pricipalを取得しています。

$spn = Get-AzureADServicePrincipal -Filter “DisplayName eq ‘G Suite'” ; $spn

実行結果の例

ObjectId                                                   AppId                                                      DisplayName
e34cd5c7-8f17-4977-8eb5-c0eb0868d79c  47c4d6e2-e0dc-4335-b75d-bc2c59c1f3ba  G Suite

 

3.G Suiteのロールの取得します。出力された情報のうちDisplayNameが”Default Organization”の”Id”を控えておき後ほどユーザーに割り当てるために利用します。

$spn.AppRoles | where {$_.IsEnabled -eq $true}

実行結果の例

AllowedMemberTypes : {User}
Description : msiam_access
DisplayName : msiam_access
Id : 8eea5c46-96fe-4398-b9c2-02ac04d931ca
IsEnabled : True
Value :

AllowedMemberTypes : {User}
Description : Default Organization
DisplayName : Default Organization
Id : 9e79c739-f165-49e8-8745-fe08f1634b3b
IsEnabled : True
Value :

 

4.アプリケーションに追加したいユーザーを取得します。例として”test01@pptdemo.site”というユーザーを取得しています。

$user = Get-AzureADUser -Filter “UserPrincipalName eq ‘test01@pptdemo.site'” ; $user

 

5.4で取得したユーザーの情報を使ってアプリケーションに割り当てます。
New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $spn.ObjectId -Id ‘9e79c739-f165-49e8-8745-fe08f1634b3b’

実行結果の例

ObjectId                                                                    ResourceDisplayName  PrincipalDisplayName
hZ0bWLrqdE60EW9FwrCvoXAN-lxU3o9Mi-p5PBGxidw   G Suite                       test01

以上でアプリケーションへのユーザー追加は完了です。
ちゃんとアプリケーションにユーザーが追加されているのか確認する場合には次のコマンドを実行します。
このコマンドではアプリケーションに追加されているユーザー一覧を出力できます。

Get-AzureADServiceAppRoleAssignment -ObjectId $spn.ObjectId
※$spnは2で取得したアプリケーションになります。

実行結果の例

ObjectId                                                                   ResourceDisplayName  PrincipalDisplayName
hZ0bWLrqdE60EW9FwrCvoXAN-lxU3o9Mi-p5PBGxidw  G Suite                       test01

アプリケーションに追加したユーザーを解除したい場合には次のコマンドを実行します。例として先ほどアプリに追加した”test01″を解除しています。
オプションに指定する値が若干ややこしいのでご注意ください。

Remove-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -AppRoleAssignmentId ‘hZ0bWLrqdE60EW9FwrCvoXAN-lxU3o9Mi-p5PBGxidw’
※ObjectIdにはGet-AzureADUserコマンドで取得できる”ObjectId”の情報が必要です。
※AppRoleAssignmentIdにはGet-AzureADServiceAppRoleAssignmentコマンドで取得できる”ObjectId”の情報が必要です。

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、弊社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。