Espacio de nombres: microsoft.graph
Importante
Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.
Obtenga una lista de los miembros directos del grupo . Un grupo puede tener usuarios, contactos, dispositivos, entidades de servicio y otros grupos como miembros. Esta operación no es transitiva.
Esta API está disponible en las siguientes implementaciones nacionales de nube.
| Servicio global |
Gobierno de EE. UU. L4 |
Us Government L5 (DOD) |
China operada por 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Permissions
Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.
| Tipo de permiso |
Permisos con privilegios mínimos |
Permisos con privilegios más altos |
| Delegado (cuenta profesional o educativa) |
GroupMember.Read.All |
Directory.Read.All, Group.Read.All, Group.ReadWrite.All, GroupMember.ReadWrite.All |
| Delegado (cuenta personal de Microsoft) |
No admitida. |
No admitida. |
| Aplicación |
GroupMember.Read.All |
Directory.Read.All, Group.Read.All, Group.ReadWrite.All, GroupMember.ReadWrite.All |
Importante
Cuando una aplicación consulta una relación que devuelve una colección de tipos directoryObject , si no tiene permiso para leer un tipo de recurso determinado, se devuelven miembros de ese tipo pero con información limitada. Por ejemplo, solo se devuelve la propiedad @odata.type para el tipo de objeto y el identificador , mientras que otras propiedades se indican como null. Con este comportamiento, las aplicaciones pueden solicitar los permisos con privilegios mínimos que necesitan, en lugar de depender del conjunto de directorios.*Permisos. Para información, consulte Información limitada devuelta para objetos de miembros inaccesibles.
En escenarios delegados, al usuario que ha iniciado sesión también se le debe asignar un rol de Microsoft Entra compatible o un rol personalizado con el microsoft.directory/groups/members/read permiso de rol o microsoft.directory/groups/members/limitedRead , o microsoft.directory/groups/hiddenMembers/read permiso de rol para leer miembros ocultos. Se admiten los siguientes roles con privilegios mínimos para esta operación:
- Propietarios de grupos
- Usuarios "miembros"
- Usuarios "invitados": tienen permisos de lectura limitados
- Lectores de directorio
- Escritores de directorios
- Administrador de grupos
- Administrador de usuarios: incluidos los miembros ocultos
- Administrador de Exchange: incluidos los miembros ocultos
- Administrador de SharePoint: incluidos los miembros ocultos
- Administrador de Intune: incluidos los miembros ocultos
- Administrador de Teams: incluidos los miembros ocultos
- Administrador de Yammer: incluidos los miembros ocultos
Para enumerar los miembros de un grupo de pertenencia oculto, también se requiere el permiso Member.Read.Hidden .
Solicitud HTTP
GET /groups/{id}/members
Parámetros de consulta opcionales
Este método admite los $filterparámetros de consulta , $count, $select, $search, $topy $expand OData para ayudar a personalizar la respuesta.
- La conversión de OData está habilitada. Por ejemplo,
/groups/{id}/members/microsoft.graph.user recupera los miembros del grupo que son usuarios.
-
$search solo se admite en las propiedades displayName y description .
- El tamaño de página predeterminado y máximo es de 100 y 999 objetos de grupo, respectivamente.
- El uso de parámetros de consulta con esta API, excepto para
$expand, solo se admite con parámetros de consulta avanzados.
$expand no se admite con parámetros de consulta avanzados. Para obtener más información, vea Funcionalidades avanzadas de consulta en objetos de directorio.
| Nombre |
Descripción |
| Authorization |
{token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización. |
| ConsistencyLevel |
eventual. Este encabezado y $count son requeridos al usar los parámetros de consulta $search, $filter, $orderby u OData. Usa un índice que podría no estar actualizado con los cambios recientes realizados en el objeto. |
Cuerpo de la solicitud
No proporcione un cuerpo de solicitud para este método.
Respuesta
Si se ejecuta correctamente, este método devuelve un código de respuesta 200 OK y la colección de objetos directoryObject en el cuerpo de la respuesta.
Un intento de filtrar por una conversión de OData que representa un tipo de miembro no admitido devuelve un 400 Bad Request error con el Request_UnsupportedQuery código. Por ejemplo, /groups/{id}}/members/microsoft.graph.group cuando el grupo es un grupo de Microsoft 365 devuelve este error, porque los grupos de Microsoft 365 no pueden tener otros grupos como miembros.
Ejemplos
Ejemplo 1: Obtenga la pertenencia directa a un grupo
Solicitud
En el ejemplo siguiente se muestra la solicitud.
GET https://graph.microsoft.com/beta/groups/{id}/members
// 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.Groups["{group-id}"].Members.GetAsync();
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
//other-imports
)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
members, err := graphClient.Groups().ByGroupId("group-id").Members().Get(context.Background(), nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
DirectoryObjectCollectionResponse result = graphClient.groups().byGroupId("{group-id}").members().get();
const options = {
authProvider,
};
const client = Client.init(options);
let members = await client.api('/groups/{id}/members')
.version('beta')
.get();
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$result = $graphServiceClient->groups()->byGroupId('group-id')->members()->get()->wait();
Import-Module Microsoft.Graph.Beta.Groups
Get-MgBetaGroupMember -GroupId $groupId
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta 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.groups.by_group_id('group-id').members.get()
Respuesta
En el ejemplo siguiente se muestra la respuesta.
Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"id": "11111111-2222-3333-4444-555555555555",
"mail": "group1@contoso.com",
"mailEnabled": true,
"mailNickname": "Contoso1",
"securityEnabled": true
}
]
}
Ejemplo 2: Obtenga solo un recuento de todas las pertenencias
Solicitud
En el ejemplo siguiente se muestra la solicitud.
GET https://graph.microsoft.com/beta/groups/{id}/members/$count
ConsistencyLevel: eventual
Respuesta
En el ejemplo siguiente se muestra la respuesta.
HTTP/1.1 200 OK
Content-type: text/plain
893
Ejemplo 3: Use la búsqueda de OData para obtener solo un recuento de pertenencias de usuarios.
Solicitud
En el ejemplo siguiente se muestra la solicitud.
GET https://graph.microsoft.com/beta/groups/{id}/members/microsoft.graph.user/$count
ConsistencyLevel: eventual
Respuesta
En el ejemplo siguiente se muestra la respuesta.
HTTP/1.1 200 OK
Content-type: text/plain
893
Ejemplo 4: Use $search y OData cast para obtener la pertenencia del usuario a grupos con nombres para mostrar que contengan las letras "Pr", incluido un recuento de objetos devueltos.
Solicitud
En el ejemplo siguiente se muestra la solicitud.
GET https://graph.microsoft.com/beta/groups/{id}/members/microsoft.graph.user?$count=true&$orderby=displayName&$search="displayName:Pr"&$select=displayName,id
ConsistencyLevel: eventual
// 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.Groups["{group-id}"].Members.GraphUser.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Count = true;
requestConfiguration.QueryParameters.Orderby = new string []{ "displayName" };
requestConfiguration.QueryParameters.Search = "\"displayName:Pr\"";
requestConfiguration.QueryParameters.Select = new string []{ "displayName","id" };
requestConfiguration.Headers.Add("ConsistencyLevel", "eventual");
});
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
abstractions "github.com/microsoft/kiota-abstractions-go"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphgroups "github.com/microsoftgraph/msgraph-beta-sdk-go/groups"
//other-imports
)
headers := abstractions.NewRequestHeaders()
headers.Add("ConsistencyLevel", "eventual")
requestCount := true
requestSearch := "\"displayName:Pr\""
requestParameters := &graphgroups.ItemMembersGraph.userRequestBuilderGetQueryParameters{
Count: &requestCount,
Orderby: [] string {"displayName"},
Search: &requestSearch,
Select: [] string {"displayName","id"},
}
configuration := &graphgroups.ItemMembersGraph.userRequestBuilderGetRequestConfiguration{
Headers: headers,
QueryParameters: requestParameters,
}
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
graphUser, err := graphClient.Groups().ByGroupId("group-id").Members().GraphUser().Get(context.Background(), configuration)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
UserCollectionResponse result = graphClient.groups().byGroupId("{group-id}").members().graphUser().get(requestConfiguration -> {
requestConfiguration.queryParameters.count = true;
requestConfiguration.queryParameters.orderby = new String []{"displayName"};
requestConfiguration.queryParameters.search = "\"displayName:Pr\"";
requestConfiguration.queryParameters.select = new String []{"displayName", "id"};
requestConfiguration.headers.add("ConsistencyLevel", "eventual");
});
const options = {
authProvider,
};
const client = Client.init(options);
let user = await client.api('/groups/{id}/members/microsoft.graph.user')
.version('beta')
.header('ConsistencyLevel','eventual')
.search('displayName:Pr')
.select('displayName,id')
.orderby('displayName')
.get();
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Groups\Item\Members\Graph\User\UserRequestBuilderGetRequestConfiguration;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestConfiguration = new GraphUserRequestBuilderGetRequestConfiguration();
$headers = [
'ConsistencyLevel' => 'eventual',
];
$requestConfiguration->headers = $headers;
$queryParameters = GraphUserRequestBuilderGetRequestConfiguration::createQueryParameters();
$queryParameters->count = true;
$queryParameters->orderby = ["displayName"];
$queryParameters->search = "\"displayName:Pr\"";
$queryParameters->select = ["displayName","id"];
$requestConfiguration->queryParameters = $queryParameters;
$result = $graphServiceClient->groups()->byGroupId('group-id')->members()->graphUser()->get($requestConfiguration)->wait();
Import-Module Microsoft.Graph.Beta.Groups
Get-MgBetaGroupMemberAsUser -GroupId $groupId -CountVariable CountVar -Sort "displayName" -Search '"displayName:Pr"' -Property "displayName,id" -ConsistencyLevel eventual
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.groups.item.members.graph.user.user_request_builder import UserRequestBuilder
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 = UserRequestBuilder.UserRequestBuilderGetQueryParameters(
count = True,
orderby = ["displayName"],
search = "\"displayName:Pr\"",
select = ["displayName","id"],
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
request_configuration.headers.add("ConsistencyLevel", "eventual")
result = await graph_client.groups.by_group_id('group-id').members.graph_user.get(request_configuration = request_configuration)
Respuesta
En el ejemplo siguiente se muestra la respuesta.
Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/beta/$metadata#users(displayName,id)",
"@odata.count":7,
"value":[
{
"displayName":"Joseph Price",
"id":"11111111-2222-3333-4444-555555555555"
},
{
"displayName":"Preston Morales",
"id":"11111111-2222-3333-4444-555555555555"
}
]
}
Ejemplo 5: Use $filter para obtener las pertenencias a grupos con un nombre para mostrar que inicie con la letra “A”, incluido un recuento de los objetos devueltos.
Solicitud
En el ejemplo siguiente se muestra la solicitud.
GET https://graph.microsoft.com/beta/groups/{id}/members?$count=true&$filter=startswith(displayName, 'a')
ConsistencyLevel: eventual
// 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.Groups["{group-id}"].Members.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Count = true;
requestConfiguration.QueryParameters.Filter = "startswith(displayName, 'a')";
requestConfiguration.Headers.Add("ConsistencyLevel", "eventual");
});
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
abstractions "github.com/microsoft/kiota-abstractions-go"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphgroups "github.com/microsoftgraph/msgraph-beta-sdk-go/groups"
//other-imports
)
headers := abstractions.NewRequestHeaders()
headers.Add("ConsistencyLevel", "eventual")
requestCount := true
requestFilter := "startswith(displayName, 'a')"
requestParameters := &graphgroups.ItemMembersRequestBuilderGetQueryParameters{
Count: &requestCount,
Filter: &requestFilter,
}
configuration := &graphgroups.ItemMembersRequestBuilderGetRequestConfiguration{
Headers: headers,
QueryParameters: requestParameters,
}
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
members, err := graphClient.Groups().ByGroupId("group-id").Members().Get(context.Background(), configuration)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
DirectoryObjectCollectionResponse result = graphClient.groups().byGroupId("{group-id}").members().get(requestConfiguration -> {
requestConfiguration.queryParameters.count = true;
requestConfiguration.queryParameters.filter = "startswith(displayName, 'a')";
requestConfiguration.headers.add("ConsistencyLevel", "eventual");
});
const options = {
authProvider,
};
const client = Client.init(options);
let members = await client.api('/groups/{id}/members')
.version('beta')
.header('ConsistencyLevel','eventual')
.filter('startswith(displayName, \'a\')')
.get();
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Groups\Item\Members\MembersRequestBuilderGetRequestConfiguration;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestConfiguration = new MembersRequestBuilderGetRequestConfiguration();
$headers = [
'ConsistencyLevel' => 'eventual',
];
$requestConfiguration->headers = $headers;
$queryParameters = MembersRequestBuilderGetRequestConfiguration::createQueryParameters();
$queryParameters->count = true;
$queryParameters->filter = "startswith(displayName, 'a')";
$requestConfiguration->queryParameters = $queryParameters;
$result = $graphServiceClient->groups()->byGroupId('group-id')->members()->get($requestConfiguration)->wait();
Import-Module Microsoft.Graph.Beta.Groups
Get-MgBetaGroupMember -GroupId $groupId -CountVariable CountVar -Filter "startswith(displayName, 'a')" -ConsistencyLevel eventual
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.groups.item.members.members_request_builder import MembersRequestBuilder
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 = MembersRequestBuilder.MembersRequestBuilderGetQueryParameters(
count = True,
filter = "startswith(displayName, 'a')",
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
request_configuration.headers.add("ConsistencyLevel", "eventual")
result = await graph_client.groups.by_group_id('group-id').members.get(request_configuration = request_configuration)
Respuesta
En el ejemplo siguiente se muestra la respuesta.
Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/beta/$metadata#groups",
"@odata.count":76,
"value":[
{
"displayName":"AAD Contoso Users",
"mail":"AADContoso_Users@contoso.com",
"mailEnabled":true,
"mailNickname":"AADContoso_Users",
"securityEnabled":true
}
]
}
Ejemplo 6: Uso de la conversión de OData para recuperar las entidades de servicio agregadas como miembros del grupo
Solicitud
En el ejemplo siguiente se muestra la solicitud.
GET https://graph.microsoft.com/beta/groups/3802e9bb-0951-4e18-b9eb-f934b4241194/members/microsoft.graph.servicePrincipal
// 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.Groups["{group-id}"].Members.GraphServicePrincipal.GetAsync();
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
//other-imports
)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
graphServicePrincipal, err := graphClient.Groups().ByGroupId("group-id").Members().GraphServicePrincipal().Get(context.Background(), nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
ServicePrincipalCollectionResponse result = graphClient.groups().byGroupId("{group-id}").members().graphServicePrincipal().get();
const options = {
authProvider,
};
const client = Client.init(options);
let servicePrincipal = await client.api('/groups/3802e9bb-0951-4e18-b9eb-f934b4241194/members/microsoft.graph.servicePrincipal')
.version('beta')
.get();
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$result = $graphServiceClient->groups()->byGroupId('group-id')->members()->graphServicePrincipal()->get()->wait();
Import-Module Microsoft.Graph.Beta.Groups
Get-MgBetaGroupMemberAsServicePrincipal -GroupId $groupId
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta 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.groups.by_group_id('group-id').members.graph_service_principal.get()
Respuesta
En el ejemplo siguiente se muestra la respuesta.
Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals",
"value": [
{
"id": "11111111-2222-3333-4444-555555555555",
"deletedDateTime": null,
"accountEnabled": true,
"appDisplayName": "Contoso Azure App",
"appId": "11111111-2222-3333-4444-555555555555",
}
]
}