Enumerar las pertenencias de un usuario (directas y transitivas)

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 los grupos, las funciones de directorio y las unidades administrativas de las que es miembro el usuario mediante la pertenencia directa o transitiva.

Esta API está disponible en las siguientes implementaciones en la nube nacional.

Servicio global Administración pública de EE. UU. Gobierno de EE. UU. L5 (DOD) China operado por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use uno o varios permisos con privilegios más altos 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.

Permisos para la pertenencia de los usuarios que han iniciado sesión

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) User.Read Directory.Read.All, Directory.ReadWrite.All, Group.Read.All, GroupMember.Read.All, User.Read.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación No admitida. No admitida.

Permisos para la pertenencia de otro usuario

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) User.Read.All Directory.Read.All, Directory.ReadWrite.All, Group.Read.All, GroupMember.Read.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Application User.Read.All Directory.Read.All, Directory.ReadWrite.All, Group.Read.All, GroupMember.Read.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 id ., mientras que las demás 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.

Sugerencia

  • Para llamar al punto de conexión /me/transitiveMemberOf, se requiere un usuario con la sesión iniciada y, por lo tanto, un permiso delegado. Los permisos de aplicación no se admiten cuando se usa el /me/transitiveMemberOf punto de conexión.
  • Para enumerar los miembros de un grupo con pertenencia oculta, se requiere el Member.Read.Hidden permiso.

Solicitud HTTP

GET /me/transitiveMemberOf

Nota:

Para llamar al punto de conexión /me, se requiere un usuario con la sesión iniciada y, por lo tanto, un permiso delegado. Los permisos de aplicación no se admiten al usar el /me punto de conexión.

GET /users/{id | userPrincipalName}/transitiveMemberOf

Parámetros de consulta opcionales

Este método admite los parámetros de $filterconsulta , $count, $select, $search, $topOData para ayudar a personalizar la respuesta.

  • La conversión de OData también está habilitada. Por ejemplo, puede transmitir para obtener solo la pertenencia transitiva a grupos.
  • $search solo se admite en la propiedad displayName .
  • El tamaño de página predeterminado y máximo son 100 y 999 objetos respectivamente.
  • El uso de parámetros de consulta con esta API solo se admite con parámetros de consulta avanzados. Para obtener más información, vea Funcionalidades avanzadas de consulta en objetos de directorio.

Encabezados de solicitud

Encabezado Valor
Authorization {token} de portador. Obligatorio. Obtenga más información sobre autenticación y 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.

Ejemplos

Ejemplo 1: Obtener grupos, roles de directorio y unidades administrativas de los que es miembro el usuario

Solicitud

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/beta/users/{id}/transitiveMemberOf

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#directoryObjects",
  "value":[
    {
      "@odata.type":"#microsoft.graph.group",
      "displayName":"All_Contoso_Licensing",
      "mailEnabled":true,
      "mailNickname":"ContosoMailNickName",
      "securityEnabled":true
    },
    {
      "@odata.type":"#microsoft.graph.group",
      "displayName":"ContosoAudience_PugetSound",
      "mailEnabled":true,
      "mailNickname":"Contoso_PugetSound",
      "securityEnabled":true
    }
  ]
}

Ejemplo 2: Obtener solo un recuento de pertenencia transitiva en grupos, roles de directorio y unidades administrativas

Solicitud

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/beta/users/{id}/transitiveMemberOf/$count
ConsistencyLevel: eventual

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 200 OK
Content-type: text/plain

893

Ejemplo 3: Usar la conversión de OData para obtener solo un recuento de la pertenencia transitiva en grupos

Solicitud

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/beta/users/{id}/transitiveMemberOf/microsoft.graph.group/$count
ConsistencyLevel: eventual

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 200 OK
Content-type: text/plain

588

Ejemplo 4: Usar $search y OData cast para obtener la pertenencia transitiva a grupos con nombres para mostrar que contienen las letras "tier", incluido un recuento de objetos devueltos

Solicitud

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/beta/users/{id}/transitiveMemberOf/microsoft.graph.group?$count=true&$orderby=displayName&$search="displayName:tier"&$select=displayName,id
ConsistencyLevel: eventual

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(displayName,id)",
  "@odata.count":7,
  "value":[
    {
      "displayName":"Contoso-tier Query Notification",
      "id":"11111111-2222-3333-4444-555555555555"
    }
  ]
}

Ejemplo 5: Usar $filter y OData cast para obtener la pertenencia transitiva a grupos con un nombre para mostrar que comienza con "a", incluido un recuento de objetos devueltos

Solicitud

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/beta/users/{id}/transitiveMemberOf/microsoft.graph.group?$count=true&$orderby=displayName&$filter=startswith(displayName, 'a')
ConsistencyLevel: eventual

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
    }
  ]
}