Listar usuários

Namespace: microsoft.graph

Recupere uma lista de objetos user.

Observação: Essa solicitação pode ter atrasos de replicação para usuários que foram criados, atualizados ou excluídos recentemente.

Essa API está disponível nas seguintes implantações nacionais de nuvem.

Serviço global Governo dos EUA L4 GOVERNO DOS EUA L5 (DOD) China operada pela 21Vianet

Permissões

Uma das seguintes permissões é necessária para chamar esta API. Para saber mais, incluindo como escolher permissões, confira Permissões.

Tipo de permissão Permissões (da com menos para a com mais privilégios)
Delegado (conta corporativa ou de estudante) User.ReadBasic.All, User.Read.All, User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte.
Aplicativo User.Read.All, User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All

Os convidados não podem chamar essa API. Para obter mais informações sobre as permissões para membros e convidados, consulte Quais são as permissões de usuário padrão no Microsoft Entra ID?

Solicitação HTTP

GET /users

Parâmetros de consulta opcionais

Esse método dá suporte aos $countparâmetros de consulta , $expand, $filter, $orderby, $search, $selecte $topOData para ajudar a personalizar a resposta. $skip não é compatível. Você deve especificar $select=signInActivity ou $filter=signInActivity , ao listar usuários, pois a propriedade signInActivity não é retornada por padrão.

Algumas consultas são suportadas somente quando se usa o cabeçalho ConsistencyLevel definido como eventual e $count. Para obter mais informações, consulte Recursos avançados de consulta em objetos de diretório. Os parâmetros $count e $search não estão disponíveis no momento em locatários do Azure AD B2C.

Por padrão, apenas um conjunto limitado de propriedades é retornado (businessPhones, displayName, givenName, id, jobTitle, mail, mobilePhone, officeLocation, preferredLanguage, surname e userPrincipalName).Para retornar um conjunto de propriedades alternativo, especifique o conjunto desejado de propriedades de usuário usando o parâmetro de consulta $select OData. Por exemplo, para retornardisplayName, givenName e postalCode, adicione o seguinte à sua consulta $select=displayName,givenName,postalCode.

As propriedades de extensão também dão suporte a parâmetros de consulta da seguinte maneira:

Tipo de extensão Comentários
onPremisesExtensionAttributes 1-15 Retornado somente com $select. Suporte $filter (eq, ne, e eq no null valores).
Extensões de esquema Retornado somente com $select. Suporte $filter (eq, ne, e eq no null valores).
Extensões abertas Retornado somente com $expand, ou seja, users?$expand=extensions.
Extensões de diretório Retornado somente com $select. Suporte $filter (eq, ne, e eq no null valores).

Determinadas propriedades não podem ser retornadas em uma coleção de usuários. As propriedades a seguir só têm suporte ao recuperar um único usuário: aboutMe, birthday, hireDate, interests, mySite, pastProjects, preferredName, responsibilities, schools, skills, mailboxSettings.

As propriedades a seguir não têm suporte em contas pessoais da Microsoft e serão null: aboutMe, birthday, interests, mySite, pastProjects, preferredName, responsibilities, schools, skills, streetAddress.

Cabeçalhos de solicitação

Cabeçalho Valor
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
ConsistencyLevel eventualmente. Este cabeçalho e $count são necessários quando se utiliza $search, ou em uso específico de $filter. Para obter mais informações sobre o uso de ConsistencyLevel e $count, consulte Recursos avançados de consulta em objetos de diretório.

Corpo da solicitação

Não forneça um corpo de solicitação para esse método.

Resposta

Se bem-sucedido, este método retorna um código de resposta 200 OK e uma coleção de objetos user no corpo da resposta. Se uma coleção grande de usuários for retornada, você poderá usar a paginação no seu aplicativo.

Tentar usar $select na /users coleção para recuperar propriedades que não podem ser retornadas em uma coleção de usuários (por exemplo, a solicitação ../users?$select=aboutMe) retorna um 501 Not Implemented código de erro.

Exemplos

Exemplo 1: Obter todos os usuários

Solicitação

O exemplo a seguir mostra uma solicitação.

GET https://graph.microsoft.com/v1.0/users

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
    "value": [
        {
            "businessPhones": [],
            "displayName": "Conf Room Adams",
            "givenName": null,
            "jobTitle": null,
            "mail": "Adams@contoso.com",
            "mobilePhone": null,
            "officeLocation": null,
            "preferredLanguage": null,
            "surname": null,
            "userPrincipalName": "Adams@contoso.com",
            "id": "6ea91a8d-e32e-41a1-b7bd-d2d185eed0e0"
        },
        {
            "businessPhones": [
                "425-555-0100"
            ],
            "displayName": "MOD Administrator",
            "givenName": "MOD",
            "jobTitle": null,
            "mail": null,
            "mobilePhone": "425-555-0101",
            "officeLocation": null,
            "preferredLanguage": "en-US",
            "surname": "Administrator",
            "userPrincipalName": "admin@contoso.com",
            "id": "4562bcc8-c436-4f95-b7c0-4f8ce89dca5e"
        }
    ]
}

Exemplo 2: Obter uma conta de usuário usando um nome de entrada

Solicitação

O exemplo a seguir mostra uma solicitação.

Observação: ao filtrar em issuerAssignedId, você deve fornecer emissor e issuerAssignedId. Entretanto, o valor do emissor será ignorado em determinados cenários. Para obter mais informações sobre filtragem em identidades, consulte objectIdentity resource type

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

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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

{
  "value": [
    {
      "displayName": "John Smith",
      "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
    }
  ]
}

Exemplo 3: obter apenas uma contagem de usuários

Solicitação

O exemplo a seguir mostra uma solicitação. Esta solicitação exige o cabeçalho ConsistencyLevel definido como eventual porque $count está na solicitação. Para obter mais informações sobre o uso de ConsistencyLevel e $count, consulte Recursos avançados de consulta em objetos de diretório.

Observação: os parâmetros de consulta $count e $search não estão disponíveis atualmente nos locatários do Azure Active Directory B2C.

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

Resposta

O exemplo a seguir mostra a resposta.

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

893

Exemplo 4: utilize $filter e $top para obter um usuário com um nome de exibição que comece com a letra 'a', incluindo uma contagem de objetos retornados

Solicitação

O exemplo a seguir mostra uma solicitação. Esta solicitação exige o cabeçalho ConsistencyLevel definido como eventual e a cadeia de caracteres de consulta $count=true porque a solicitação tem os parâmetros de consulta $orderby e $filter. Para obter mais informações sobre o uso de ConsistencyLevel e $count, consulte Recursos avançados de consulta em objetos de diretório.

Observação: os parâmetros de consulta $count e $search não estão disponíveis atualmente nos locatários do Azure Active Directory B2C.

GET https://graph.microsoft.com/v1.0/users?$filter=startswith(displayName,'a')&$orderby=displayName&$count=true&$top=1
ConsistencyLevel: eventual

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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

{
  "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users",
  "@odata.count":1,
  "value":[
    {
      "displayName":"a",
      "mail":"a@contoso.com",
      "mailNickname":"a_contoso.com#EXT#",
      "userPrincipalName":"a_contoso.com#EXT#@contoso.com"
    }
  ]
}

Exemplo 5: use $filter para obter todos os usuários com um email que termina com 'a@contoso.com', incluindo uma contagem de objetos retornados, com os resultados ordenados pelo usuárioPrincipalName

Solicitação

O exemplo a seguir mostra uma solicitação. Esta solicitação exige o cabeçalho ConsistencyLevel definido como eventual e a cadeia de consulta $count=true porque a solicitação tem os parâmetros de consulta $orderby e $filter, e também usa o operador endsWith. Para obter mais informações sobre o uso de ConsistencyLevel e $count, consulte Recursos avançados de consulta em objetos de diretório.

Observação: os parâmetros de consulta $count e $search não estão disponíveis atualmente nos locatários do Azure Active Directory B2C.

GET https://graph.microsoft.com/v1.0/users?$filter=endswith(mail,'a@contoso.com')&$orderby=userPrincipalName&$count=true
ConsistencyLevel: eventual

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$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"
      }
    ]
}

Exemplo 6: utilize $pesquisa para obter usuários com nomes de exibição que contenham as letras 'wa', incluindo uma contagem de objetos retornados

Solicitação

O exemplo a seguir mostra uma solicitação. Esta solicitação exige o cabeçalho ConsistencyLevel definido como eventual porque $search está na solicitação. Para obter mais informações sobre o uso de ConsistencyLevel e $count, consulte Recursos avançados de consulta em objetos de diretório.

Observação: os parâmetros de consulta $count e $search não estão disponíveis atualmente nos locatários do Azure Active Directory B2C.

GET https://graph.microsoft.com/v1.0/users?$search="displayName:wa"&$orderby=displayName&$count=true
ConsistencyLevel: eventual

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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

{
  "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users",
  "@odata.count":7,
  "value":[
    {
      "displayName":"Oscar Ward",
      "givenName":"Oscar",
      "mail":"oscarward@contoso.com",
      "userPrincipalName":"oscarward@contoso.com"
    }
  ]
}

Exemplo 7: Use $search para obter usuários com nomes de exibição que contenham as letras 'wa' ou as letras 'ad', incluindo uma contagem de objetos retornados

Solicitação

O exemplo a seguir mostra uma solicitação. Esta solicitação exige o cabeçalho ConsistencyLevel definido como eventual porque $search está na solicitação. Para obter mais informações sobre o uso de ConsistencyLevel e $count, consulte Recursos avançados de consulta em objetos de diretório.

Observação: os parâmetros de consulta $count e $search não estão disponíveis atualmente nos locatários do Azure Active Directory B2C.

GET https://graph.microsoft.com/v1.0/users?$search="displayName:wa" OR "displayName:ad"&$orderbydisplayName&$count=true
ConsistencyLevel: eventual

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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

{
  "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users",
  "@odata.count":7,
  "value":[
    {
      "displayName":"Oscar Ward",
      "givenName":"Oscar",
      "mail":"oscarward@contoso.com",
      "userPrincipalName":"oscarward@contoso.com"
    },
    {
      "displayName":"contosoAdmin1",
      "givenName":"Contoso Administrator",
      "mail":"'contosoadmin1@fabrikam.com",
      "userPrincipalName":"contosoadmin1_fabrikam.com#EXT#@contoso.com"
    }
  ]
}

Exemplo 8: Obter usuários convidados (B2B) de um locatário ou domínio específico por userPrincipalName

Solicitação

O exemplo a seguir mostra uma solicitação. O valor userPrincipalName para usuários convidados (colaboração B2B) sempre contém o identificador "#EXT#". Por exemplo, o usuárioPrincipalName de um usuário em seu locatário doméstico é AdeleV@adatum.com. Quando você convida o usuário a colaborar em seu locatário, contoso.com, seu usuárioPrincipalName em seu locatário é "AdeleV_adatum.com#EXT#@contoso.com".

Essa solicitação requer o cabeçalho ConsistencyLevel definido como eventual e a $count=true cadeia de caracteres de consulta porque a solicitação inclui o operador endsWith. Para obter mais informações sobre o uso de ConsistencyLevel e $count, consulte Recursos avançados de consulta em objetos de diretório.

NOTA: Você deve codificar o caractere reservado "#" no valor userPrincipalName como "%23" na URL de solicitação. Para obter mais informações, confira Codificar caracteres especiais.

GET https://graph.microsoft.com/v1.0/users?$select=id,displayName,mail,identities&$filter=endsWith(userPrincipalName,'%23EXT%23@contoso.com')&$count=true
ConsistencyLevel: eventual

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$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"
                }
            ]
        }
    ]
}

Exemplo 9: use $filter para obter usuários que recebem uma licença específica

Solicitação

O exemplo a seguir mostra uma solicitação.

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

Resposta

O exemplo a seguir mostra a resposta.

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$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"
        }
      ]
    }
  ]
}

Exemplo 10: obter o valor de uma extensão de esquema para todos os usuários

Neste exemplo, o ID da extensão do esquema é ext55gb1l09_msLearnCourses.

Solicitação

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

Resposta

Na resposta a seguir, a propriedade de extensão de esquema ext55gb1l09_msLearnCourses não está designada em dois dos objetos de usuário.

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

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

Observação: você também pode aplicar $filter na propriedade de extensão do esquema para recuperar objetos em que uma propriedade na coleção corresponde a um valor especificado. A sintaxe é /users?$filter={schemaPropertyID}/{propertyName} eq 'value'. Por exemplo, GET /users?$select=ext55gb1l09_msLearnCourses&$filter=ext55gb1l09_msLearnCourses/courseType eq 'Developer'. Os eq e not operadores são compatíveis.

Exemplo 11: obter usuários incluindo seu último tempo de entrada

Solicitação

O exemplo a seguir mostra uma solicitação. Os detalhes da propriedade signInActivity exigem uma licença P1 ou P2 Microsoft Entra ID e a permissão AuditLog.Read.All.

Nota: Quando você especifica $select=signInActivity ou $filter=signInActivity ao listar usuários, o tamanho máximo da página para $top é 120. Solicitações com $top configuração superior a 120 retornarão páginas com até 120 usuários. signInActivity dá suporte (eq, , ne, not, ge, le) mas não com outras $filter propriedades filtradas.

GET https://graph.microsoft.com/v1.0/users?$select=displayName,userPrincipalName,signInActivity

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(displayName,userPrincipalName,signInActivity)",
  "value": [
    {
      "displayName": "Adele Vance",
      "userPrincipalName": "AdeleV@contoso.com",
      "id": "1aecaf40-dc3a-461f-88a8-d06994e12898",
      "signInActivity": {
        "lastSignInDateTime": "2021-06-17T16:41:33Z",
        "lastSignInRequestId": "d4d31c40-4c36-4775-ad59-7d1e6a171f00",
        "lastNonInteractiveSignInDateTime": "0001-01-01T00:00:00Z",
        "lastNonInteractiveSignInRequestId": ""
      }
    },
    {
      "displayName": "Alex Wilber",
      "userPrincipalName": "AlexW@contoso.com",
      "id": "f0662ee5-84b1-43d6-8338-769cce1bc141",
      "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"
      }
    }
  ]
}