クラウド化が進む現代では、オンプレミス環境とAzure環境を併用している企業も多く、ユーザーや管理者が自分のグループメンバーシップを確認する機会は意外と多いものです。オンプレミスでは「whoami /groups」を使ってあっさりわかる情報も、Azure環境だと少し勝手が違います。本記事では、Azure PowerShellやAzure CLI、Azure Portal、Microsoft Graph APIなど、複数のアプローチでAzure上のグループメンバーシップを取得する方法を徹底解説します。
Azure上でグループメンバーシップを確認する必要性
Azureではオンプレミスとは異なる管理体制が求められ、アクセス権限やセキュリティが厳格にコントロールされます。自分がどのグループに属しているのかを知ることは、以下のような場面で非常に重要です。
- Azureリソースへのアクセス権限の把握:プロジェクトや機密情報へのアクセス可否がグループベースで決定されている場合、自分の所属グループを確認することは不可欠です。
- トラブルシューティングや変更管理:「権限が足りない」「操作できない」などの問題が発生した際に、グループの所属状況をチェックすることで原因を特定しやすくなります。
- コンプライアンスや監査:セキュリティ監査や内部統制など、グループとユーザーの紐づけを正確に把握していることが求められるケースがあります。
オンプレミス環境とAzure環境の比較
オンプレミスのActive Directory(AD)では「whoami /groups」コマンドを使用すれば、自分が所属しているセキュリティグループなどを即座に確認できます。一方、Azureには同様のコマンドラインツールとしてAzure CLIやAzure PowerShellがあり、これらを使うことでグループ情報を取得することができます。ただし、環境に応じて事前準備や利用可能なコマンド、操作権限が異なる点に注意が必要です。
「whoami /groups」の役割と制限
オンプレミスのAD環境では「whoami /groups」を実行するだけで、ユーザー自身が所属している全グループを一覧表示できます。これは、WindowsのクライアントOSあるいはWindows Server上で簡単に利用でき、管理者ユーザーだけでなく一般ユーザーでも実行できることが多いです。しかし、Azure環境では同じコマンドを実行しても、Azure ADに格納されたグループ情報は得られません。
Azure環境での対応方法
Azureでは、ユーザーのグループ情報を取得するためのコマンドやツールが複数用意されています。代表的なものとして以下の手段があります。
- Azure PowerShell:
Get-AzureADUserMembershipやGet-AzureADUserなどのコマンドレットを利用する方法 - Azure CLI:
az ad user get-member-groupsなどのコマンドを実行する方法 - Azure Portal:GUIを使ってグループの情報をブラウザ上から確認する方法
- Microsoft Graph API:REST API経由でプログラム的にグループ情報を取得する方法
それぞれ操作性や特徴が異なるので、使い慣れたツールや要件に応じて最適な方法を選ぶとよいでしょう。
Azure PowerShellを活用したグループメンバーシップの取得
Azure環境でグループ情報をすばやく入手したい場合は、Azure PowerShellが比較的わかりやすい方法の一つです。以下では、具体的なコマンドレット例や事前準備などについて解説します。
Azure PowerShellの事前準備
- Azure PowerShellのインストール:ローカルマシンでAzure PowerShellを使うには、最新のAzure PowerShellをインストールしておく必要があります。インストール方法は、PowerShellギャラリーから
Install-Module Azを実行するか、公式のインストーラーを利用する方法があります。 - サインイン:Azure PowerShellを使用してAzure ADの情報を取得するには、
Connect-AzAccountコマンドレットでサインインが必要です。Office 365やAzure関連のアカウントを使用して認証します。
Get-AzureADUserMembershipの利用
Azure PowerShellには、Azure ADに特化したモジュール「AzureAD」が存在し、以下のようなコマンドレットを利用してグループメンバーシップを取得できます。
# AzureADモジュールをインストールしていない場合は先にインストール
# Install-Module AzureAD
Import-Module AzureAD
# Azure ADへのログイン
Connect-AzureAD
# ユーザーの情報を取得
$user = Get-AzureADUser -ObjectId "自分のユーザーUPNまたはObjectID"
# 対象ユーザーが所属するグループを一覧取得
Get-AzureADUserMembership -ObjectId $user.ObjectId
上記のスクリプトを実行すると、該当ユーザーが所属するグループが一覧表示されます。「ObjectId」「DisplayName」などのプロパティで表示されるため、どのグループに属しているかを簡単に把握できます。
Get-AzureADUserコマンドレットとフィルターの活用
もう少し絞り込みたい場合は、Get-AzureADUserの検索機能と組み合わせることで効率良く対象ユーザーを特定し、その後Get-AzureADUserMembershipを実行するという流れがおすすめです。例えば、ユーザーのUserPrincipalNameで検索し、そのユーザーが所属するグループのみ抽出するといった運用が可能です。
Azure CLIでのグループ情報取得
Windows, macOS, Linuxなどマルチプラットフォームで動作するAzure CLIを活用すれば、同様にグループメンバーシップを取得できます。Azure CLIは軽量でスクリプトにも組み込みやすいのが利点です。
Azure CLIのインストールとログイン
- インストール:公式サイトからAzure CLIをインストールします。Windows用のインストーラー、macOS用のHomebrew、Linux向けのパッケージなど、環境に合わせて導入可能です。
- ログイン:インストール後、
az loginコマンドを実行してAzureアカウントに認証します。ブラウザでのログインプロセスが自動的に起動するので、その指示に従います。
az ad user get-member-groupsコマンド
Azure CLIでグループメンバーシップを取得する代表的なコマンドがaz ad user get-member-groupsです。使い方は以下のとおりです。
# コマンドの基本構文
az ad user get-member-groups \
--upn-or-object-id <ユーザーのUPNまたはObjectId> \
--security-enabled-only false
--security-enabled-onlyオプションをfalseにすると、セキュリティグループだけでなくOffice 365グループなども含めて一覧取得できます。出力結果はJSON形式になるため、そのままスクリプトで扱ったり別のツールに連携したりするのも容易です。
出力例と活用
実行結果は以下のようなJSON形式で表示されます。
[
"11111111-1111-1111-1111-111111111111",
"22222222-2222-2222-2222-222222222222",
"33333333-3333-3333-3333-333333333333"
]
各値はグループのObject IDです。これらのObject IDをさらにaz ad group showなどを使って詳細情報(グループ名など)を取得することで、具体的にどのグループに属しているかを確認できます。
Azure Portalを利用したブラウザ上での確認
ツールを使わずにGUIベースで手軽に確認したい場合は、Azure Portalが便利です。以下の手順で、自身が所属しているグループを確認できます。
- ポータルにサインイン:Azure Portalにアクセスし、管理者またはユーザーとしてサインインします。
- Azure Active Directoryを開く:ポータル左側のメニューから「Azure Active Directory」をクリックします。
- ユーザーセクションを選択:「ユーザー」をクリックし、表示された一覧から自分のアカウントを見つけます。
- 詳細画面で「グループ」を確認:自分のアカウントを選択するとユーザーの詳細画面が表示されます。そこにある「グループ」タブをクリックすると、所属中のグループが一覧表示されます。
この方法は、PowerShellやCLIの知識がないユーザーにもわかりやすく、導入コストが低いのが特徴です。一方で、大量のユーザーやグループを一括確認したい場合は、CLIやスクリプトの方が効率的です。
Microsoft Graph APIの活用
プログラム的にユーザーのグループメンバーシップを取得し、ほかのシステムや外部サービスと連携したい場合は、Microsoft Graph APIが強力です。Graph APIを使うことで、Office 365やAzure ADのデータをREST API経由で取得・操作できます。
Get member groupsエンドポイント
ユーザーのグループメンバーシップを取得するには、以下のエンドポイントを使用します。
POST https://graph.microsoft.com/v1.0/me/getMemberGroups
あるいは特定ユーザーの情報を取得したい場合は、
POST https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}/getMemberGroups
を利用します。POSTリクエストのボディとして{"securityEnabledOnly": false}などを指定し、セキュリティグループだけでなくOffice 365グループも取得することが可能です。
サンプルコード(cURLの場合)
Microsoft Graph APIはOAuth 2.0のトークンを用いて認証する必要があるため、事前にAzure ADアプリ登録を行い、トークンを取得してください。取得したACCESS_TOKENを使用し、以下のようなcURLコマンドを実行します。
curl -X POST https://graph.microsoft.com/v1.0/me/getMemberGroups \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"securityEnabledOnly": false
}'
戻り値は、グループのIDリストを含むJSONレスポンスとなります。それぞれのIDをMicrosoft Graphの別エンドポイントで照会することで、表示名やグループの種類などを取得できます。
Azure AD Connectとオンプレミスのグループ同期
オンプレミスのAD環境を運用している場合、Azure AD Connectを使ってオンプレミスのユーザーやグループをAzure ADと同期させているケースが一般的です。同期が正しく行われていれば、オンプレミス側のグループ変更がAzure ADにも反映されるため、Azure PowerShellやAzure CLIなどの手段でまとめてグループ情報を把握できるメリットがあります。
ただし、以下のような点に留意しましょう。
- 同期ルールの確認:既定では、多くのグループが同期されますが、一部の属性や特定のOU(組織単位)だけを同期する設定になっている可能性があります。
- 同期のタイミング:即時反映ではなく、数十分のラグが生じることがあります。オンプレミスでグループを新規作成した直後にAzure上で確認しても、まだ反映されていないことがあります。
- 必要なライセンスや権限:Azure AD Connectを利用するには、Azure AD側とオンプレミスAD側双方で適切な権限とライセンスが必要です。エンタープライズプランなど、要件を満たしているかどうかを確認してください。
使用上の注意と権限
Azure ADのグループ情報を取得するためには、特定の権限が必要になる場合があります。一般ユーザーの場合、自分の所属グループを参照するだけならば大抵の組織で許可されているはずですが、管理者ロールが設定されていないと他のユーザーの情報を閲覧できないケースもあるでしょう。Microsoft Graph APIの場合は、アプリ登録時に「User.Read」や「Group.Read.All」などの権限(スコープ)を指定し、管理者の承認を得る必要がある場合があります。
RBAC(ロールベースアクセス制御)の考え方
Azureではロールベースアクセス制御(RBAC)が導入されており、ユーザーやグループに対してロールを割り当て、どの操作が可能かを細かくコントロールします。グループメンバーシップの確認自体はそれほど強い権限を要しないものの、変更や削除、追加などの操作は高度な権限が必要です。
よくあるトラブルと対策
- 「対象ユーザーが見つからない」エラー:UPNやObjectIDの綴り間違い、または既に削除済みのユーザーを指定している可能性があります。
- 「権限が足りない」メッセージ:AzureロールやGraph APIのスコープ設定を見直し、必要な権限を付与する必要があります。
- 「同期が反映されない」現象:オンプレミスADとAzure ADの同期が遅れているか、または同期設定が正しくない可能性があります。
表でまとめる:主なグループ情報取得手段
以下に、代表的なグループ情報取得手段を表形式でまとめます。
| 取得手段 | 主なコマンド/操作 | 特徴 |
|---|---|---|
| Azure PowerShell | Get-AzureADUser Get-AzureADUserMembership | Windowsユーザーに馴染みやすい スクリプト化が容易 細かいフィルタリングが可能 |
| Azure CLI | az ad user get-member-groups | マルチプラットフォーム対応 軽量で習得が容易 JSON出力で自動化しやすい |
| Azure Portal | GUI操作 | 初心者にもわかりやすい 少量ユーザーの確認に適している 一括処理やスクリプト化には不向き |
| Microsoft Graph API | /getMemberGroups Graphエンドポイント | プログラム的な操作が可能 外部サービスとの連携が容易 トークン取得など事前設定が必要 |
まとめ
オンプレミスのAD環境では当たり前に使われていた「whoami /groups」というシンプルなコマンドも、Azureクラウド環境ではそれに相当する方法が複数存在します。Azure PowerShellやAzure CLIを用いることでスクリプトによる自動化がしやすく、Azure Portalであれば手動での確認が直感的に行えます。さらにMicrosoft Graph APIを使えば、社内システムや外部アプリケーションと連携し、より高度な自動化や統合が可能です。
企業や組織のポリシー、ユーザーのスキルセット、求められる作業の規模などを考慮しながら、最適な方法を選びましょう。また、Azure AD Connectでオンプレミスとのアカウントやグループを同期している環境では、同期ルールや権限の設定、ライセンス要件にも留意しておくことが大切です。セキュリティを重視しながらスムーズに操作できる仕組みを整備することで、業務効率の向上につなげることができます。

コメント