ここしばらくAzure Active Directory(AzureAD)の管理アカウントの権限の絞り込みについて試行錯誤をしてきましたが、今回は現在Public Previewとして提供されている「Administrative Units(管理単位)」の機能について紹介します。
今のところ、やりたいことに一番近い機能はこれかも知れません。
まず、おさらいですが、やりたいことは以下の通りでした。
- シングルテナントのAzureADに複数のドメインを作成する
- 複数の企業や組織が各ドメインを使用、各組織のオンプレADからユーザを同期する
- 各組織の管理者は自ドメインのユーザのみを管理したい
これまでのポストでは多要素認証やFederationを使って各ドメインの管理者アカウント(AADSyncに設定するユーザ)の権限を制限しようとしましたが、うまい方法はありませんでした。
[AADSync/DirSync]同期に使うAzureAD管理者アカウントの管理
[AADSync/DirSync]同期に使うAzureAD管理者アカウントの管理(続)
[AzureAD]管理者アカウントでAzureにサインアップする
今回は昨年12月にPublic Preview公開されたAdministrative Units(管理単位)を使ってみます。
この機能はAzureADのディレクトリを論理的な単位に分割し、それぞれの管理権限をユーザへ委譲するための仕組みです。(オンプレActive DirectoryでOU単位で管理権限を委譲するのと同様の考え方です)
想定ケースの例として地域ごとに管理者をアサインするようなケースがあげられています。
Active Directoryチームのblog
Wrapping up the year with a boat load of Azure AD news!
MSDNドキュメント
管理単位の管理 - パブリック プレビュー
では、簡単に試してみます。
現状はPowerShellコマンドレットでしか操作が出来ませんので、PowerShellを使います。
必要なWindows Azure Active Directory管理PowerShellモジュールのバージョンは1.0.8070.2以上です。
以下のコマンドで使っているバージョンがわかります。
> (get-item C:\Windows\System32\WindowsPowerShell\v1.0\Modules\MSOnline\Microsoft.Online.Administration.Automation.PSModule.dll).VersionInfo.FileVersion
⇒現状の最新版だと「1.0.8262.2」が出てきます。
以下の順に操作をします。(特定のAU以下のユーザしか管理出来ないように管理者の権限を制限します)
①グローバル管理者でAzureADに接続する
②管理単位(AU)を作成する
③管理単位(AU)に管理対象ユーザを追加する
④管理者ユーザにスコープ付管理ロールを付与する
結果的に言いますと、管理者は③で管理対象ユーザについてだけ「更新」が出来るようになります。
つまり、
・管理対象外ユーザの参照は出来てしまう
・新規にユーザを作成したり、削除することは出来ない
ということなので、やはり元々やりたかったことは実現出来ません。(当然AADSyncに管理者アカウントとして設定してもユーザの作成などが出来ないので実質使えません)
とりあえず現状出来ることを見てみます。
AU名 | TestAU |
---|---|
AUメンバ | kenshinu@example.com |
AU管理者 | auadmin@example.com |
◆設定
①グローバル管理者でAzureADに接続する
> Connect-MsolService
②管理単位(AU)を作成する
> New-MsolAdministrativeUnit -DisplayName "TestAU" -Description "Test AU" ExtensionData Description DisplayName ObjectId ------------- ----------- ----------- -------- System.Runtime.S... Test AU Test AU edfd9c4a-e529-46...
③管理単位(AU)に管理対象ユーザを追加する
> $au = Get-MsolAdministrativeUnit -SearchString "TestAU" > $user = Get-MsolUser -UserPrincipalName "kenshinu@example.com" > Add-MsolAdministrativeUnitMember -AdministrativeUnitObjectId $au.ObjectId -AdministrativeUnitMemberObjectId $user.ObjectId
④管理者ユーザにスコープ付管理ロールを付与する
> $role = Get-MsolRole -RoleName "User Account Administrator" > $admin = Get-MsolUser -UserPrincipalName "auadmin@example.com" > Add-MsolScopedRoleMember -RoleObjectId $role.ObjectId -AdministrativeUnitObjectId $au.ObjectId -RoleMemberObjectId $admin.ObjectId
◆確認
①管理者ユーザでAzureADに接続する
> Connect-MsolService
②ユーザ一覧を参照する
> Get-MsolUser UserPrincipalName DisplayName isLicensed ----------------- ----------- ---------- mitsuhidea@example.net Mitsuhide Akechi True nfujie@hoge.onmicrosof... 富士榮尚寛 True auadmin@example.com AU Admin False kenshinu@example.com Kenshin Uesugi True
②管理対象ユーザを更新する
> Set-MsolUser -UserPrincipalName kenshinu@example.com -UsageLocation CA
③管理対象外ユーザを更新する
> Set-MsolUser -UserPrincipalName mitsuhidea@example.net -UsageLocation CA Set-MsolUser : Access Denied. You do not have permissions to call this cmdlet. 発生場所 行:1 文字:1 + Set-MsolUser -UserPrincipalName mitsuhidea@example.net -UsageLocatio ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ + CategoryInfo : OperationStopped: (:) [Set-MsolUser], MicrosoftO nlineException + FullyQualifiedErrorId : Microsoft.Online.Administration.Automation.Acces sDeniedException,Microsoft.Online.Administration.Automation.SetUser
④ユーザを作成する
> New-MsolUser -UserPrincipalName hoge@example.com New-MsolUser : Access Denied. You do not have permissions to call this cmdlet. 発生場所 行:1 文字:1 + New-MsolUser -UserPrincipalName hoge@example.com + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [New-MsolUser], MicrosoftO nlineException + FullyQualifiedErrorId : Microsoft.Online.Administration.Automation.Acces sDeniedException,Microsoft.Online.Administration.Automation.NewUser
⑤ユーザを削除する
> Remove-MsolUser -UserPrincipalName kenshinu@example.com 確認 この操作を続行しますか? [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Remove-MsolUser : Access Denied. You do not have permissions to call this cmdle t. 発生場所 行:1 文字:1 + Remove-MsolUser -UserPrincipalName kenshinu@example.com + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [Remove-MsolUser], Microso ftOnlineException + FullyQualifiedErrorId : Microsoft.Online.Administration.Automation.Acces sDeniedException,Microsoft.Online.Administration.Automation.RemoveUser
⑥管理者ユーザでAzureサブスクリプションにサインアップし管理ポータルからディレクトリを操作する
⇒ユーザ一覧が見えません。PowerShellだと見えるんですが、管理ポータルからだと管理対象AUのメンバユーザすら見れません。
現状はこんな感じです。
今後はグループオブジェクトなんかもAUメンバに追加できるようになったりするようなので、今後の進化に期待です。
0 件のコメント:
コメントを投稿