名前空間: microsoft.graph
ユーザーがダイレクト メンバーになっているグループ、ディレクトリ ロール、管理単位を取得します。 この操作は推移的ではありません。 推移的なメンバーシップを通じてユーザーがメンバーであるグループ、ディレクトリ ロール、および管理単位を取得するには、List usertransitivememberOfAPI を使用します。
この API は、次の国内クラウド展開で使用できます。
グローバル サービス |
米国政府機関 L4 |
米国政府機関 L5 (DOD) |
21Vianet が運営する中国 |
✅ |
✅ |
✅ |
✅ |
アクセス許可
この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。
アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。
サインインしているユーザーの直接メンバーシップに対するアクセス許可
アクセス許可の種類 |
最小特権アクセス許可 |
より高い特権のアクセス許可 |
委任 (職場または学校のアカウント) |
User.Read |
Directory.Read.All、Directory.ReadWrite.All、GroupMember.Read.All |
委任 (個人用 Microsoft アカウント) |
サポートされていません。 |
サポートされていません。 |
アプリケーション |
サポートされていません。 |
サポートされていません。 |
別のユーザーの直接メンバーシップに対するアクセス許可
アクセス許可の種類 |
最小特権アクセス許可 |
より高い特権のアクセス許可 |
委任 (職場または学校のアカウント) |
User.Read.All |
Directory.Read.All、Directory.ReadWrite.All、GroupMember.Read.All |
委任 (個人用 Microsoft アカウント) |
サポートされていません。 |
サポートされていません。 |
アプリケーション |
Directory.Read.All |
Directory.ReadWrite.All |
重要
アプリケーションが directoryObject 型のコレクションを返すリレーションシップをクエリするときに、特定のリソース型を読み取るアクセス許可がない場合、その型のメンバーが返されますが、情報は限られます。 たとえば、@odata.type プロパティでは、オブジェクト型と ID だけが返され、その他のプロパティは null
と表示されます。 この動作により、アプリケーションは、Directory.* 権限が付与されたアクセス許可のセットに依存するのではなく、必要な最小限のアクセス許可を要求できます。 詳細については、「アクセスできないメンバー オブジェクトについて、限定された情報が返される」を参照してください。
ヒント
-
/me/memberOf
エンドポイントの呼び出しにはサインインしているユーザーが必要であり、そのため委任されたアクセス許可が必要です。
/me/memberOf
エンドポイントを使用する場合、アプリケーションのアクセス許可はサポートされません。
- 非表示のメンバーシップを持つグループのメンバーを一覧表示するには、
Member.Read.Hidden
アクセス許可が必要です。
HTTP 要求
GET /me/memberOf
注:
/me
エンドポイントの呼び出しにはサインインしているユーザーが必要であり、そのため委任されたアクセス許可が必要です。
/me
エンドポイントを使用する場合、アプリケーションのアクセス許可はサポートされません。
GET /users/{id | userPrincipalName}/memberOf
オプションのクエリ パラメーター
このメソッドは、応答をカスタマイズするための$search
、$count
、および$filter
を含むOData クエリ パラメーターをサポートします。 OData キャストも有効です。たとえば、キャストして、ユーザーがメンバーである directoryRoles だけを取得できます。
displayNameプロパティで$search
を使用できます。 このリソースに対して追加または更新された項目は、 $count
および $search
クエリ パラメーターで使用するために特別にインデックスが作成されます。 項目が追加または更新されてからインデックスで使用できるようになるまで、若干の遅延が発生する可能性があります。
この API で $filter
を使用するには、 ConsistencyLevel ヘッダーを eventual
および $count
に設定する必要があります。 ただし、このようなシナリオでは、高度なクエリ パラメーターではサポートされていないため、同じ要求で $expand
を使用することはできません。 詳細については、「ディレクトリ オブジェクトの詳細クエリ機能」を参照してください。
ヘッダー |
値 |
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 のドキュメントを参照してください。
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
//other-imports
)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
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 のドキュメントを参照してください。
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
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 のドキュメントを参照してください。
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphusers "github.com/microsoftgraph/msgraph-sdk-go/users"
//other-imports
)
requestFilter := "appRoleAssignments/$count gt 0"
requestParameters := &graphusers.ItemMemberOfGraph.groupRequestBuilderGetQueryParameters{
Filter: &requestFilter,
Select: [] string {"id","displayName"},
}
configuration := &graphusers.ItemMemberOfGraph.groupRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
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 のドキュメントを参照してください。
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.users.item.member_of.graph.group.group_request_builder import GroupRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
query_params = GroupRequestBuilder.GroupRequestBuilderGetQueryParameters(
filter = "appRoleAssignments/$count gt 0",
select = ["id","displayName"],
)
request_configuration = RequestConfiguration(
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"
}
]
}