ユーザーの直接メンバーシップを一覧表示する
[アーティクル]
11/11/2023
20 人の共同作成者
フィードバック
この記事の内容
名前空間: microsoft.graph
ユーザーがダイレクト メンバーになっているグループ 、ディレクトリ ロール 、管理単位 を取得します。 この操作は推移的ではありません。 推移的なメンバーシップを通じてユーザーがメンバーであるグループ、ディレクトリ ロール、および管理単位を取得するには、List usertransitivememberOfAPI を使用します。
この API は、次の国内クラウド展開 で使用できます。
グローバル サービス
米国政府機関 L4
米国政府機関 L5 (DOD)
21Vianet が運営する中国
✅
✅
✅
✅
アクセス許可
この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。 アプリで必要な場合にのみ 、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「 アクセス許可の種類 」を参照してください。 これらのアクセス許可の詳細については、 アクセス許可のリファレンスを参照してください 。
アクセス許可の種類
最小特権アクセス許可
特権の高いアクセス許可
委任 (職場または学校のアカウント)
User.Read
Directory.Read.All、Directory.ReadWrite.All、GroupMember.Read.All
委任 (個人用 Microsoft アカウント)
サポートされていません。
サポートされていません。
アプリケーション
サポートされていません。
サポートされていません。
ヒント
/me/memberOf
エンドポイントの呼び出しにはサインインしているユーザーが必要であり、そのため委任されたアクセス許可が必要です。 エンドポイントを使用する場合、アプリケーションのアクセス許可は /me/memberOf
サポートされません。
非表示のメンバーシップを持つグループのメンバーを一覧表示するには、 Member.Read.Hidden
アクセス許可が必要です。
アプリケーションが directoryObject 型コレクションを返すリレーションシップを照会する場合、特定の派生型 (デバイスなど) を読み取るアクセス許可がない場合、その型のメンバーは返されますが、情報は限られています。 この動作により、アプリケーションはディレクトリのセットに依存するのではなく、必要な最小限の特権のアクセス許可を要求できます 。 *アクセス 許可。 詳細については、「アクセスできないメンバー オブジェクトについて、限定された情報が返される 」を参照してください。
HTTP 要求
GET /me/memberOf
GET /users/{id | userPrincipalName}/memberOf
オプションのクエリ パラメーター
このメソッドは、応答をカスタマイズするための$search
、$count
、および$filter
を含むOData クエリ パラメーター をサポートします。 OData キャストも有効です。たとえば、キャストして、ユーザーがメンバーである directoryRoles だけを取得できます。 displayName プロパティで$search
を使用できます。 このリソースに対して追加または更新された項目は、および $search
クエリ パラメーターで使用するために特別にインデックスが作成$count
されます。 項目が追加または更新されてからインデックスで使用できるようになるまで、若干の遅延が発生する可能性があります。
ヘッダー
値
Authorization
ベアラー {token}。 必須です。 認証と承認 の詳細については、こちらをご覧ください。
ConsistencyLevel
最終的。 このヘッダーおよび$count
は、$search
、$filter
、$orderby
、または OData キャスト クエリ パラメーターを使用する場合に必要です。 最新の状態に更新されていない可能性があるインデックスを使用しています。
要求本文
このメソッドには、要求本文を指定しません。
応答
成功した場合、このメソッドは 200 OK
応答コードと、応答本文で directoryObject オブジェクトのコレクションを返します。
例
例 1: ユーザーがダイレクト メンバーになっているグループ、ディレクトリ ロール、および管理単位を取得する
要求
次の例は要求を示しています。
GET https://graph.microsoft.com/v1.0/users/6e7b768e-07e2-4810-8459-485f84f8f204/memberOf
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].MemberOf.GetAsync();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
memberOf, err := graphClient.Users().ByUserId("user-id").MemberOf().Get(context.Background(), nil)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
DirectoryObjectCollectionResponse result = graphClient.users().byUserId("{user-id}").memberOf().get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
let memberOf = await client.api('/users/6e7b768e-07e2-4810-8459-485f84f8f204/memberOf')
.get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$result = $graphServiceClient->users()->byUserId('user-id')->memberOf()->get()->wait();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
from msgraph import GraphServiceClient
graph_client = GraphServiceClient(credentials, scopes)
result = await graph_client.users.by_user_id('user-id').member_of.get()
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
応答
次の例は応答を示しています。
注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"@odata.type": "#microsoft.graph.group",
"displayName": "All Users",
"mailEnabled": false,
"securityEnabled": true
}
]
}
例 2: ユーザーがダイレクト メンバーになっているグループ、ディレクトリ ロール、および管理単位の数のみを取得する
要求
次の例は要求を示しています。
GET https://graph.microsoft.com/v1.0/users/{id}/memberOf/$count
ConsistencyLevel: eventual
応答
次の例は応答を示しています。
注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。
HTTP/1.1 200 OK
Content-type: text/plain
17
例 3: OData キャストを使用して、グループ メンバーシップ数のみを取得する
要求
次の例は要求を示しています。
GET https://graph.microsoft.com/v1.0/users/{id}/memberOf/microsoft.graph.group/$count
ConsistencyLevel: eventual
応答
次の例は応答を示しています。
HTTP/1.1 200 OK
Content-type: text/plain
16
例 4: $search および OData キャストを使用して、表示名に「tier」の文字が含まれるグループのメンバーシップを取得する (返されたオブジェクトの数も含む)
要求
次の例は要求を示しています。
GET https://graph.microsoft.com/v1.0/users/{id}/memberOf/microsoft.graph.group?$count=true&$orderby=displayName&$search="displayName:tier"&$select=displayName,id
ConsistencyLevel: eventual
応答
次の例は応答を示しています。
注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups(displayName,id)",
"@odata.count":7,
"value":[
{
"displayName":"Contoso-tier Query Notification",
"id":"11111111-2222-3333-4444-555555555555"
}
]
}
例 5: $filter および OData キャストを使用して、「a」で始まる表示名のグループを取得する (返されたオブジェクトの数も含む)
要求
次の例は要求を示しています。
GET https://graph.microsoft.com/v1.0/users/{id}/memberOf/microsoft.graph.group?$count=true&$orderby=displayName&$filter=startswith(displayName, 'a')
ConsistencyLevel: eventual
応答
次の例は応答を示しています。
注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups",
"@odata.count":76,
"value":[
{
"displayName":"AAD Contoso Users",
"mail":"AADContoso_Users@contoso.com",
"mailEnabled":true,
"mailNickname":"AADContoso_Users",
"securityEnabled":true
}
]
}
例 6: $filterと OData キャストを使用して、少なくとも 1 つのアプリ ロールの割り当てを持つグループを取得する
要求
次の例は要求を示しています。
GET https://graph.microsoft.com/v1.0/users/{id}/memberOf/microsoft.graph.group?$filter=appRoleAssignments/$count gt 0&$select=id,displayName
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].MemberOf.GraphGroup.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Filter = "appRoleAssignments/$count gt 0";
requestConfiguration.QueryParameters.Select = new string []{ "id","displayName" };
});
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc users member-of graph-group get --user-id {user-id} --filter "appRoleAssignments/$count gt 0" --select "id,displayName"
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphusers "github.com/microsoftgraph/msgraph-sdk-go/users"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
requestFilter := "appRoleAssignments/$count gt 0"
requestParameters := &graphusers.UserItemMemberOfGraph.groupRequestBuilderGetQueryParameters{
Filter: &requestFilter,
Select: [] string {"id","displayName"},
}
configuration := &graphusers.UserItemMemberOfGraph.groupRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
graphGroup, err := graphClient.Users().ByUserId("user-id").MemberOf().GraphGroup().Get(context.Background(), configuration)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
GroupCollectionResponse result = graphClient.users().byUserId("{user-id}").memberOf().graphGroup().get(requestConfiguration -> {
requestConfiguration.queryParameters.filter = "appRoleAssignments/$count gt 0";
requestConfiguration.queryParameters.select = new String []{"id", "displayName"};
});
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
let group = await client.api('/users/{id}/memberOf/microsoft.graph.group')
.filter('appRoleAssignments/$count gt 0')
.select('id,displayName')
.get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Users\Item\MemberOf\Graph\Group\GroupRequestBuilderGetRequestConfiguration;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestConfiguration = new GraphGroupRequestBuilderGetRequestConfiguration();
$queryParameters = GraphGroupRequestBuilderGetRequestConfiguration::createQueryParameters();
$queryParameters->filter = "appRoleAssignments/\$count gt 0";
$queryParameters->select = ["id","displayName"];
$requestConfiguration->queryParameters = $queryParameters;
$result = $graphServiceClient->users()->byUserId('user-id')->memberOf()->graphGroup()->get($requestConfiguration)->wait();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
Import-Module Microsoft.Graph.Users
Get-MgUserMemberOfAsGroup -UserId $userId -Filter "appRoleAssignments/`$count gt 0" -Property "id,displayName"
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
from msgraph import GraphServiceClient
from msgraph.generated.users.item.memberOf.graph.group.group_request_builder import GroupRequestBuilder
graph_client = GraphServiceClient(credentials, scopes)
query_params = GroupRequestBuilder.GroupRequestBuilderGetQueryParameters(
filter = "appRoleAssignments/$count gt 0",
select = ["id","displayName"],
)
request_configuration = GroupRequestBuilder.GroupRequestBuilderGetRequestConfiguration(
query_parameters = query_params,
)
result = await graph_client.users.by_user_id('user-id').member_of.graph_group.get(request_configuration = request_configuration)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
応答
次の例は応答を示しています。
注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups",
"value":[
{
"id": "c11b732b-0e16-46c1-b0fa-bd32c8a42455",
"displayName":"All users"
},
{
"id": "3f927b40-06f8-4352-b8e4-37a7ba04b7ff",
"displayName":"AAD Contoso Users"
}
]
}