この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
■はじめに
通常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”の情報が必要です。