Compartir a través de


Enumerar usuarios

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.

Recupere una lista de objetos user. Esta API también devuelve objetos agentUser .

Esta operación devuelve de forma predeterminada solo un subconjunto de las propiedades más usadas para cada usuario y agentUser. Estas propiedades predeterminadas se indican en la sección Propiedades. Para obtener propiedades que no se devuelven de forma predeterminada, realice una operación GET y especifique las propiedades de una opción de consulta de OData $select.

Importante

Los usuarios invitados no pueden llamar a esta API. Para obtener más información sobre los permisos para usuarios invitados y miembros, consulte ¿Cuáles son los permisos de usuario predeterminados en Microsoft Entra ID?.

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 Permiso con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) User.ReadBasic.All User.Read.All, User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Application User.Read.All User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All

Permisos para escenarios específicos

  • User-Mail.ReadWrite.All es el permiso con privilegios mínimos para leer y escribir la propiedad otherMails; también permite leer algunas propiedades relacionadas con el identificador en el objeto de usuario.
  • User-PasswordProfile.ReadWrite.All es el permiso con privilegios mínimos para leer y escribir propiedades relacionadas con el restablecimiento de contraseña; también permite leer algunas propiedades relacionadas con el identificador en el objeto de usuario.
  • User-Phone.ReadWrite.All es el permiso con privilegios mínimos para leer y escribir las propiedades businessPhones y mobilePhone ; también permite leer algunas propiedades relacionadas con el identificador en el objeto de usuario.
  • User.EnableDisableAccount.All + User.Read.All es la combinación de permisos con privilegios mínimos para leer y escribir la propiedad accountEnabled .

Solicitud HTTP

La siguiente dirección URL devuelve una lista de objetos user y agentUser , con objetos agentUser que contienen una propiedad @odata.type de #microsoft.graph.agentUser.

GET /users

Parámetros de consulta opcionales

Este método admite parámetros de consulta de OData para ayudar a personalizar la respuesta:

  • $count, $expand, $filter, $orderby, $search, $select, $top. $skip no es compatible.
  • Para filtrar los usuarios del agente del conjunto de resultados, use la isof función : $filter=isof('microsoft.graph.agentUser') devuelve los usuarios del agente solo mientras $filter=not isof('microsoft.graph.agentUser') excluye a los usuarios del agente.
  • Límites de tamaño de página: El tamaño de página predeterminado es de 100 objetos. El tamaño máximo de página es de 999 objetos, excepto cuando se usa $select=signInActivity o $filter=signInActivity, el tamaño máximo de página es 500.
  • Algunas consultas requieren el encabezado ConsistencyLevel establecido en eventual y $count. Para obtener más información, vea Funcionalidades avanzadas de consulta en objetos de directorio.
  • Los $count parámetros y $search no están disponibles en Azure inquilinos de AD B2C.

Las propiedades de extensión también admiten parámetros de consulta como se indica a continuación:

Tipo de extensión Comentarios
onPremisesExtensionAttributes 1-15 Solo se devuelve con $select. Admite $filter (eq, ne y eq en valores null).
Extensiones de esquema Solo se devuelve con $select. Admite $filter (eq, ne y eq en valores null).
Extensiones abiertas Solo se devuelve con $expand, es decir, users?$expand=extensions.
Extensiones de directorio Solo se devuelve con $select. Admite $filter (eq, ne y eq en valores null).

Para los objetos agentUser, las propiedades no aplicables siempre nullson .

Algunas propiedades no se pueden devolver dentro de una colección de usuarios. Las siguientes propiedades solo se admiten al recuperar un único usuario: aboutMe, birthday, hireDate, interests, mySite, pastProjects, preferredName, responsibilities, schools, skills, mailboxSettings.

Las siguientes propiedades no se admiten en cuentas personales de Microsoft y siempre nullson : aboutMe, birthday, interests, mySite, pastProjects, preferredName, responsibilities, schools, skills, streetAddress.

Encabezados de solicitud

Encabezado Valor
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 necesarios cuando se usa $search,o en un uso específico de $filter. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

Cuerpo de la solicitud

No proporcione un cuerpo de solicitud para este método.

Respuesta

Si se ejecuta correctamente, este método devuelve un 200 OK código de respuesta y una colección de objetos user y agentUser en el cuerpo de la respuesta. Los objetos agentUser incluyen una propiedad @odata.type con el valor #microsoft.graph.agentUser para diferenciarlos de los objetos de usuario.

Al intentar usar $select en la /users colección para recuperar propiedades que no se pueden devolver dentro de una colección (por ejemplo, la solicitud ../users?$select=aboutMe), se devuelve un código de 501 Not Implemented error.

Ejemplos

Ejemplo 1: obtener todos los usuarios

Solicitud

En el ejemplo siguiente se muestra la solicitud. La respuesta incluye a los usuarios del agente.

GET https://graph.microsoft.com/beta/users
GET https://graph.microsoft.com/beta/users

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":[
    {
      "displayName":"contoso1",
      "mail":"'contoso1@gmail.com",
      "mailNickname":"contoso1_gmail.com#EXT#",
      "otherMails":["contoso1@gmail.com"],
      "proxyAddresses":["SMTP:contoso1@gmail.com"],
      "userPrincipalName":"contoso1_gmail.com#EXT#@contoso.com"
    }
  ]
}

Ejemplo 2: Obtener solo usuarios del agente

Solicitud

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/beta/users/microsoft.graph.agentUser

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":[
    {
      "@odata.type":"#microsoft.graph.agentUser",      
      "displayName":"contoso1",
      "mail":"'contoso1@gmail.com",
      "mailNickname":"contoso1_gmail.com#EXT#",
      "otherMails":["contoso1@gmail.com"],
      "proxyAddresses":["SMTP:contoso1@gmail.com"],
      "userPrincipalName":"contoso1_gmail.com#EXT#@contoso.com"
    }
  ]
}

Ejemplo 3: Obtención de una cuenta de usuario con un nombre de inicio de sesión

Busque una cuenta de usuario con un nombre de inicio de sesión (también conocido como cuenta local).

Nota: al filtrar por issuerAssignedId, debe proporcionar tanto el emisor como el issuerAssignedId. Sin embargo, el valor del emisor se omitirá en determinados escenarios. Para obtener más información sobre el filtrado por identidades, consulte tipo de recurso objectIdentity.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/beta/users?$select=displayName,id&$filter=identities/any(c:c/issuerAssignedId eq 'j.smith@yahoo.com' and c/issuer eq 'My B2C tenant')

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": [
    {
      "displayName": "John Smith",
      "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
    }
  ]
}

Ejemplo 4: Obtención de usuarios invitados (B2B) de un inquilino o dominio específicos por userPrincipalName

Solicitud

En el ejemplo siguiente se muestra la solicitud. El valor userPrincipalName para los usuarios invitados (colaboración B2B) siempre contiene el identificador "#EXT#". Por ejemplo, userPrincipalName de un usuario en su inquilino principal es AdeleV@adatum.com. Al invitar al usuario a colaborar en el inquilino, contoso.com, su userPrincipalName en el inquilino es "AdeleV_adatum.com#EXT#@contoso.com".

Esta solicitud requiere el encabezado ConsistencyLevel establecido en eventual y la cadena de $count=true consulta porque la solicitud incluye el operador endsWith. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

NOTA: Debe codificar el carácter reservado "#" en el valor userPrincipalName como "%23" en la dirección URL de la solicitud. Para obtener más información, vea Codificación de caracteres especiales.

GET https://graph.microsoft.com/beta/users?$select=id,displayName,mail,identities&$filter=endsWith(userPrincipalName,'%23EXT%23@contoso.com')&$count=true
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#users(id,displayName,mail,identities)",
    "@odata.count": 2,
    "value": [
        {
            "id": "39807bd1-3dde-48f3-8165-81ddd4e46de0",
            "displayName": "Adele Vance",
            "mail": "AdeleV@adatum.com",
            "identities": [
                {
                    "signInType": "userPrincipalName",
                    "issuer": "contoso.com",
                    "issuerAssignedId": "AdeleV_adatum.com#EXT#@cntoso.com"
                }
            ]
        }
    ]
}

Ejemplo 5: Lista de la última hora de inicio de sesión de los usuarios con un nombre para mostrar específico

Solicitud

En el ejemplo siguiente se muestra la solicitud.

Nota:

  • Los detalles de la propiedad signInActivity requieren una licencia Microsoft Entra ID P1 o P2 y el AuditLog.Read.All permiso.
  • Al especificar o al enumerar $select=signInActivity usuarios, el tamaño máximo de página para $top es 500.$filter=signInActivity Solicitudes con $top un conjunto superior a 500 páginas devueltas con hasta 500 usuarios. La propiedad signInActivity admite $filter (eq, ne, not, ge, le), pero no con ninguna otra propiedad filtrable.
GET https://graph.microsoft.com/beta/users?$filter=startswith(displayName,'Eric')&$select=displayName,signInActivity

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/users?$filter=startswith(displayName,'Eric')&$select=displayName,signInActivity",
  "value": [
    {
      "displayName": "Eric Solomon",
      "signInActivity": {
        "lastSignInDateTime": "2021-07-29T15:53:27Z",
        "lastSignInRequestId": "f3149ee1-e347-4181-b45b-99a1f82b1c00",
        "lastNonInteractiveSignInDateTime": "2021-07-29T17:53:42Z",
        "lastNonInteractiveSignInRequestId": "868efa6a-b2e9-40e9-9b1c-0aaea5b50200",
        "lastSuccessfulSignInDateTime": "",
        "lastSuccessfulSignInRequestId": ""
      }
    }
  ]
}

Ejemplo 6: Lista de la última hora de inicio de sesión de los usuarios en un intervalo de tiempo específico

Solicitud

En el ejemplo siguiente se muestra la solicitud.

Nota:

Los detalles de la propiedad signInActivity requieren una licencia Microsoft Entra ID P1 o P2 y el AuditLog.Read.All permiso.

GET https://graph.microsoft.com/beta/users?$filter=signInActivity/lastSignInDateTime le 2021-07-21T00:00:00Z

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/users?filter=signInActivity/lastSignInDateTime le 2021-07-21T00:00:00Z",
  "value": [
    {
      "displayName": "Adele Vance",
      "userPrincipalName": "AdeleV@contoso.com",
      "signInActivity": {
        "lastSignInDateTime": "2021-06-17T16:41:33Z",
        "lastSignInRequestId": "d4d31c40-4c36-4775-ad59-7d1e6a171f00",
        "lastNonInteractiveSignInDateTime": "0001-01-01T00:00:00Z",
        "lastNonInteractiveSignInRequestId": "",
        "lastSuccessfulSignInDateTime": "",
        "lastSuccessfulSignInRequestId": ""
      }
    },
    {
      "displayName": "Alex Wilber",
      "userPrincipalName": "AlexW@contoso.com",
      "signInActivity": {
        "lastSignInDateTime": "2021-07-29T15:53:27Z",
        "lastSignInRequestId": "f3149ee1-e347-4181-b45b-99a1f82b1c00",
        "lastNonInteractiveSignInDateTime": "2021-07-29T17:53:42Z",
        "lastNonInteractiveSignInRequestId": "868efa6a-b2e9-40e9-9b1c-0aaea5b50200",
        "lastSuccessfulSignInDateTime": "",
        "lastSuccessfulSignInRequestId": ""
      }
    }
  ]
}

Ejemplo 7: Obtener solo un recuento de usuarios

Solicitud

En el ejemplo siguiente se muestra la solicitud. Esta solicitud requiere el encabezado ConsistencyLevel establecido en eventual porque $count está en la solicitud. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

Nota: Los parámetros de consulta $count y $search actualmente no están disponibles en inquilinos de Azure AD B2C.

GET https://graph.microsoft.com/beta/users/$count
ConsistencyLevel: eventual

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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

893

Ejemplo 8: Use $filter y $top para obtener un usuario con un nombre para mostrar que comience por "a", incluido un recuento de objetos devueltos.

Solicitud

En el ejemplo siguiente se muestra la solicitud. Esta solicitud requiere el encabezado ConsistencyLevel establecido en eventual y la cadena de consulta $count=true porque la solicitud tiene los parámetros de consulta $orderby y $filter. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

Nota: Los parámetros de consulta $count y $search actualmente no están disponibles en inquilinos de Azure AD B2C.

GET https://graph.microsoft.com/beta/users?$filter=startswith(displayName,'a')&$orderby=displayName&$count=true&$top=1
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#users",
  "@odata.count":1,
  "value":[
    {
      "displayName":"a",
      "mail":"a@contoso.com",
      "mailNickname":"a_contoso.com#EXT#",
      "otherMails":["a@contoso.com"],
      "proxyAddresses":["SMTP:a@contoso.com"],
      "userPrincipalName":"a_contoso.com#EXT#@contoso.com"
    }
  ]
}

Ejemplo 9: Use $filter para obtener todos los usuarios con un correo que termine con ""a@contoso.com, incluido un recuento de objetos devueltos, con los resultados ordenados por userPrincipalName.

Solicitud

En el ejemplo siguiente se muestra la solicitud. Esta solicitud requiere el encabezado ConsistencyLevel establecido en eventual y la cadena de consulta $count=true porque la solicitud tiene los parámetros de consulta $orderby y $filter, y también usa el operador endsWith. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

Nota: Los parámetros de consulta $count y $search actualmente no están disponibles en inquilinos de Azure AD B2C.

GET https://graph.microsoft.com/beta/users?$filter=endswith(mail,'a@contoso.com')&$orderby=userPrincipalName&$count=true
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#users",
  "@odata.count": 1,
  "value": [
    {
      "displayName": "Grady Archie",
      "givenName": "Grady",
      "jobTitle": "Designer",
      "mail": "GradyA@contoso.com",
      "userPrincipalName": "GradyA@contoso.com",
      "id": "e8b753b5-4117-464e-9a08-713e1ff266b3"
      }
    ]
}

Ejemplo 10: Usar $search para obtener usuarios con nombres para mostrar que contengan las letras "wa", incluido un recuento de objetos devueltos

Solicitud

En el ejemplo siguiente se muestra la solicitud. Esta solicitud requiere el encabezado ConsistencyLevel establecido en eventual porque $search está en la solicitud. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

Nota: Los parámetros de consulta $count y $search actualmente no están disponibles en inquilinos de Azure AD B2C.

GET https://graph.microsoft.com/beta/users?$search="displayName:wa"&$orderby=displayName&$count=true
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#users",
  "@odata.count":7,
  "value":[
    {
      "displayName":"Oscar Ward",
      "givenName":"Oscar",
      "mail":"oscarward@contoso.com",
      "mailNickname":"oscward",
      "userPrincipalName":"oscarward@contoso.com"
    }
  ]
}

Ejemplo 11: Use $search para obtener usuarios con nombres para mostrar que contengan las letras "wa" o las letras "ad", incluido un recuento de objetos devueltos.

Solicitud

En el ejemplo siguiente se muestra la solicitud. Esta solicitud requiere el encabezado ConsistencyLevel establecido en eventual porque $search está en la solicitud. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

Nota: Los parámetros de consulta $count y $search actualmente no están disponibles en inquilinos de Azure AD B2C.

GET https://graph.microsoft.com/beta/users?$search="displayName:wa" OR "displayName:ad"&$orderby=displayName&$count=true
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#users",
  "@odata.count":7,
  "value":[
    {
      "displayName":"Oscar Ward",
      "givenName":"Oscar",
      "mail":"oscarward@contoso.com",
      "mailNickname":"oscward",
      "userPrincipalName":"oscarward@contoso.com"
    },
    {
      "displayName":"contosoAdmin1",
      "mail":"'contosoadmin1@gmail.com",
      "mailNickname":"contosoadmin1_gmail.com#EXT#",
      "proxyAddresses":["SMTP:contosoadmin1@gmail.com"],
      "userPrincipalName":"contosoadmin1_gmail.com#EXT#@contoso.com"
    }
  ]
}

Ejemplo 12: Uso de $filter para obtener usuarios a los que se les asigna una licencia específica

Solicitud

En el ejemplo siguiente se muestra la solicitud. Esta solicitud requiere el encabezado ConsistencyLevel establecido en eventual porque $search está en la solicitud. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

Nota: Los parámetros de consulta $count y $search actualmente no están disponibles en inquilinos de Azure AD B2C.

GET https://graph.microsoft.com/beta/users?$select=id,mail,assignedLicenses&$filter=assignedLicenses/any(u:u/skuId eq cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46)

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(id,mail,assignedLicenses)",
  "value": [
    {
      "id": "cb4954e8-467f-4a6d-a8c8-28b9034fadbc",
      "mail": "admin@contoso.com",
      "assignedLicenses": [
        {
          "disabledPlans": [],
          "skuId": "cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46"
        }
      ]
    },
    {
      "id": "81a133c2-bdf2-4e67-8755-7264366b04ee",
      "mail": "DebraB@contoso.com",
      "assignedLicenses": [
        {
          "disabledPlans": [],
          "skuId": "cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46"
        }
      ]
    }
  ]
}

Ejemplo 13: Obtener el valor de una extensión de esquema para todos los usuarios

En este ejemplo, el identificador de la extensión de esquema es ext55gb1l09_msLearnCourses.

Solicitud

GET https://graph.microsoft.com/beta/users?$select=ext55gb1l09_msLearnCourses

Respuesta

En la respuesta siguiente, la propiedad de extensión de esquema ext55gb1l09_msLearnCourses no está asignada en dos de los objetos de usuario.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(ext55gb1l09_msLearnCourses)",
    "value": [
        {},
        {
            "ext55gb1l09_msLearnCourses": {
                "@odata.type": "#microsoft.graph.ComplexExtensionValue",
                "courseType": "Developer",
                "courseName": "Introduction to Microsoft Graph",
                "courseId": 1
            }
        },
        {}
    ]
}

Nota: También puede aplicar $filter en la propiedad de extensión de esquema para recuperar objetos en los que una propiedad de la colección coincida con un valor especificado. La sintaxis es /users?$filter={schemaPropertyID}/{propertyName} eq 'value'. Por ejemplo, GET /users?$select=ext55gb1l09_msLearnCourses&$filter=ext55gb1l09_msLearnCourses/courseType eq 'Developer'. Se admiten los operadores eq y not.

Ejemplo 14: Enumeración de todos los usuarios con una asignación de atributo de seguridad personalizada que es igual a un valor

En el ejemplo siguiente se muestra cómo enumerar todos los usuarios con una asignación de atributos de seguridad personalizada que es igual a un valor. En el ejemplo se recuperan los usuarios con un atributo de seguridad personalizado denominado AppCountry con un valor que es Canadaigual a . El valor del filtro distingue mayúsculas de minúsculas. Debe agregar ConsistencyLevel=eventual en la solicitud o el encabezado . También debe incluir $count=true para asegurarse de que la solicitud se enrute correctamente.

Usuario 1

  • Conjunto de atributos: Marketing
  • Atributo: AppCountry
  • Tipo de datos de atributo: colección de cadenas
  • Valor de atributo: ["India","Canada"]

Usuario 2

  • Conjunto de atributos: Marketing
  • Atributo: AppCountry
  • Tipo de datos de atributo: colección de cadenas
  • Valor de atributo: ["Canada","Mexico"]

Para obtener asignaciones de atributos de seguridad personalizadas, se debe asignar a la entidad de seguridad de llamada el rol Lector de asignación de atributos o Administrador de asignación de atributos y se le debe conceder el permiso CustomSecAttributeAssignment.Read.All o CustomSecAttributeAssignment.ReadWrite.All.

Para obtener ejemplos de asignaciones de atributos de seguridad personalizadas, vea Ejemplos: Asignación, actualización, lista o eliminación de asignaciones de atributos de seguridad personalizados mediante microsoft Graph API.

Solicitud

GET https://graph.microsoft.com/beta/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=customSecurityAttributes/Marketing/AppCountry eq 'Canada'
ConsistencyLevel: eventual

Respuesta

HTTP/1.1 200 OK

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(id,displayName,customSecurityAttributes)",
    "@odata.count": 2,
    "value": [
        {
            "id": "dbaf3778-4f81-4ea0-ac1c-502a293c12ac",
            "displayName": "Jiya",
            "customSecurityAttributes": {
                "Engineering": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "Datacenter@odata.type": "#Collection(String)",
                    "Datacenter": [
                        "India"
                    ]
                },
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "India",
                        "Canada"
                    ],
                    "EmployeeId": "KX19476"
                }
            }
        },
        {
            "id": "6bac433c-48c6-4213-a316-1428de32701b",
            "displayName": "Jana",
            "customSecurityAttributes": {
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "Canada",
                        "Mexico"
                    ],
                    "EmployeeId": "GS46982"
                }
            }
        }
    ]
}

Ejemplo 15: Enumerar todos los usuarios cuya administración está restringida

En el ejemplo siguiente se muestra cómo enumerar todos los usuarios cuya administración está restringida.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/beta/users?$filter=isManagementRestricted eq true&$select=displayName,userPrincipalName

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,userPrincipalName)",
  "value": [
    {
      "displayName": "Adele",
      "userPrincipalName": "Adele@contoso.com"
    },
    {
      "displayName": "Bob",
      "userPrincipalName": "Bob@contoso.com"
    }
  ]
}

Ejemplo 16: Usar $filter y endsWith para obtener usuarios con un dominio de nivel superior especificado en otrosMails

Solicitud

En el ejemplo siguiente se muestra la solicitud. Esta solicitud requiere el encabezado ConsistencyLevel establecido en eventual porque $count está en la solicitud. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

GET https://graph.microsoft.com/beta/users?$filter=otherMails/any(x:endswith(x,'.edu'))&$count=true
ConsistencyLevel: eventual

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",
    "@odata.nextLink": "https://graph.microsoft.com/beta/users?$filter=otherMails%2fany(x%3aendswith(x%2c%27.edu%27))&$skiptoken=m~AQAoOzAzNWVkMDQ1MTE5ZjRlMmNiM2Y2ODQzMmM4YzNiOWJiOzswOzA7Ow",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET users?$select=signInActivity,cloudLicensing",
    "value": [
        {
            "displayName": "Isaiah Langer",
            "mail": "isaiahl@fineartschool.edu",
            "id": "0012cd20-3890-409e-9db3-afc3055ebe22"
        },
        {
            "displayName": "Adele Vance",
            "mail": "adelev@bellowscollege.edu",
            "id": "0012cd20-3890-409e-9db3-afc3055ebe22"
        }
    ]
}

Ejemplo 17: Enumerar todos los usuarios que no son agentes y mostrar solo el nombre para mostrar de los usuarios

Solicitud

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/beta/users?$count=true&$filter=not isof('microsoft.graph.agentUser')&$select=displayName

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)",
    "@odata.count": 3,
    "value": [
        {
            "displayName": "Adrian Smith",
            "id": "04b9f5a2-ee41-4d0e-b500-8de414d178c9"
        },
        {
            "displayName": "Lewis Richardson",
            "id": "0d03514d-35b0-4ffd-9ed9-d8052757e1c4"
        },
        {
            "displayName": "Fung Lu",
            "id": "146f9fcb-64c9-4b6e-b92f-bd4892fabdcd"
        }
  ]
}