Obter um usuário
Namespace: microsoft.graph
Recuperar as propriedades e os relacionamentos do objeto user.
Esta operação retorna, por padrão, apenas um subconjunto das propriedades mais usadas de cada usuário. Essas propriedades padrão estão listadas na seção Propriedades. Para obter propriedades não retornadas por padrão, execute uma operação GET para o usuário e especifique as propriedades em uma opção de consulta $select
do OData. Como o recurso usuário dá suporte a extensões, você também pode usar a operação GET
para obter propriedades personalizadas e dados de extensão em uma instância de usuário.
Os clientes por meio de Microsoft Entra ID para clientes também podem usar essa operação de API para recuperar seus detalhes.
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
Escolha a permissão ou as permissões marcadas como menos privilegiadas para essa API. Use uma permissão ou permissões privilegiadas mais altas somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.
Tipo de permissão | Permissões menos privilegiadas | Permissões privilegiadas mais altas |
---|---|---|
Delegado (conta corporativa ou de estudante) | User.Read | User.ReadWrite, User.ReadBasic.All, User.Read.All, User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All |
Delegado (conta pessoal da Microsoft) | User.Read | User.ReadWrite |
Aplicativo | User.Read.All | User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All |
Dica
- Chamar o ponto de extremidade
/me
exige um usuário conectado e, portanto, uma permissão delegada. Não há suporte para permissões do aplicativo ao usar o ponto de extremidade/me
. - A permissão
User.Read
permite que o aplicativo leia o perfil e descubra relacionamentos como associação ao grupo, relatórios e gerente apenas do usuário conectado.
Solicitação HTTP
Para um usuário específico:
GET /me
GET /users/{id | userPrincipalName}
Dica
- Quando userPrincipalName começa com um caractere
$
, a sintaxe de URL de solicitação GET/users/$x@y.com
falha com um código de erro400 Bad Request
. Isso porque essa URL de solicitação viola a convenção de URL OData que espera que apenas as opções de consulta do sistema sejam prefixadas com um caractere$
. Remova a barra (/) depois/users
e coloque o userPrincipalName entre parênteses e aspas simples, como segue:/users('$x@y.com')
. Por exemplo,/users('$AdeleVance@contoso.com')
. - Para consultar um usuário B2B usando o usuárioPrincipalName, codifique o caractere hash (#). Ou seja, substituir o símbolo
#
por%23
. Por exemplo,/users/AdeleVance_adatum.com%23EXT%23@contoso.com
.
Para o usuário conectado:
GET /me
Parâmetros de consulta opcionais
Esse método dá suporte ao $select
parâmetro de consulta OData para recuperar propriedades específicas do usuário, incluindo aquelas que não são retornadas por padrão.
Por padrão, somente um conjunto limitado de propriedades é retornado (businessPhones, displayName, givenName, id, jobTitle, mail, mobilePhone, officeLocation, preferredLanguage, surname, userPrincipalName).
Para retornar um conjunto de propriedades alternativo, você deve especificar o conjunto desejado das propriedades user usando o parâmetro de consulta OData $select
. Por exemplo, para retornar displayName, givenName e postalCode, adicione a expressão a seguir à 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 . |
Extensões de esquema | Retornado somente com $select . |
Extensões abertas | Retornado somente por meio da operação Obter extensão aberta. |
Extensões de diretório | Retornado somente com $select . |
Cabeçalhos de solicitação
Cabeçalho | Valor |
---|---|
Autorização | {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização. |
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 o código de resposta 200 OK
e o objeto user no corpo da resposta. Retorna as propriedades padrão, a menos que você use $select
para especificar propriedades específicas.
Esse método retorna 202 Accepted
quando a solicitação tenha sido processada com sucesso, mas o servidor requer mais tempo para concluir as operações de segundo plano relacionadas.
Exemplos
Exemplo 1: Solicitação de usuários padrão
Solicitação
Por padrão, somente um conjunto limitado de propriedades é retornado (businessPhones, displayName, givenName, id, jobTitle, mail, mobilePhone, officeLocation, preferredLanguage, surname, userPrincipalName). Este exemplo ilustra a solicitação padrão e a resposta.
GET https://graph.microsoft.com/v1.0/users/87d349ed-44d7-43e1-9a83-5f2406dee5bd
Resposta
HTTP/1.1 200 OK
Content-type: application/json
{
"businessPhones": [
"+1 425 555 0109"
],
"displayName": "Adele Vance",
"givenName": "Adele",
"jobTitle": "Retail Manager",
"mail": "AdeleV@contoso.com",
"mobilePhone": "+1 425 555 0109",
"officeLocation": "18/2111",
"preferredLanguage": "en-US",
"surname": "Vance",
"userPrincipalName": "AdeleV@contoso.com",
"id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
}
Exemplo 2: solicitação de usuário conectado
Você pode obter as informações do usuário para o usuário conectado, substituindo /users/{id | userPrincipalName}
por /me
.
Solicitação
GET https://graph.microsoft.com/v1.0/me
Resposta
HTTP/1.1 200 OK
Content-type: application/json
{
"businessPhones": [
"+1 425 555 0109"
],
"displayName": "Adele Vance",
"givenName": "Adele",
"jobTitle": "Retail Manager",
"mail": "AdeleV@contoso.com",
"mobilePhone": "+1 425 555 0109",
"officeLocation": "18/2111",
"preferredLanguage": "en-US",
"surname": "Vance",
"userPrincipalName": "AdeleV@contoso.com",
"id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
}
Exemplo 3: use $select para recuperar propriedades específicas de um usuário
Para recuperar propriedades específicas, use o parâmetro de $select
OData. Por exemplo, para retornar displayName, givenName, postalCode e identities, você usaria adicionar o seguinte à sua consulta $select=displayName,givenName,postalCode,identities
Solicitação
GET https://graph.microsoft.com/v1.0/users/87d349ed-44d7-43e1-9a83-5f2406dee5bd?$select=displayName,givenName,postalCode,identities
Resposta
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(displayName,givenName,postalCode,identities)/$entity",
"displayName": "Adele Vance",
"givenName": "Adele",
"postalCode": "98004",
"identities": [
{
"signInType": "userPrincipalName",
"issuer": "contoso.com",
"issuerAssignedId": "AdeleV@contoso.com"
}
]
}
Exemplo 4: obter o valor de uma extensão de esquema para um usuário
Neste exemplo, o ID da extensão do esquema é ext55gb1l09_msLearnCourses
.
Solicitação
GET https://graph.microsoft.com/v1.0/users/4562bcc8-c436-4f95-b7c0-4f8ce89dca5e?$select=ext55gb1l09_msLearnCourses
Resposta
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(ext55gb1l09_msLearnCourses)/$entity",
"ext55gb1l09_msLearnCourses": {
"@odata.type": "#microsoft.graph.ComplexExtensionValue",
"courseType": "Developer",
"courseName": "Introduction to Microsoft Graph",
"courseId": 1
}
}
Exemplo 5: obter as atribuições de atributo de segurança personalizadas para um usuário
O exemplo a seguir mostra como obter as atribuições de atributo de segurança personalizadas para um usuário.
Atributo nº 1
- Conjunto de atributos:
Engineering
- Atributo:
Project
- Tipo de dados de atributo: Coleção de cadeias de caracteres
- Valor do atributo:
["Baker","Cascade"]
Atributo nº 2
- Conjunto de atributos:
Engineering
- Atributo:
CostCenter
- Tipo de dados de atributo: Coleção de inteiros
- Valor do atributo:
[1001]
Atributo nº 3
- Conjunto de atributos:
Engineering
- Atributo:
Certification
- Tipo de dados de atributo: Booliano
- Valor do atributo:
true
Atributo nº 4
- Conjunto de atributos:
Marketing
- Atributo:
EmployeeId
- Tipo de dados de atributo: cadeia de caracteres
- Valor do atributo:
"QN26904"
Para obter atribuições do atributo de segurança personalizadas, a entidade de chamada deve receber a função Leitor de Atribuição de Atributo ou Administrador de Atribuição de Atributo e deve receber a permissão CustomSecAttributeAssignment.Read.All ou CustomSecAttributeAssignment.ReadWrite.All.
Para obter mais exemplos de atribuições de atributo de segurança personalizadas, consulte Exemplos: Atribuir, atualizar, listar ou remover atribuições de atributo de segurança personalizadas usando o Microsoft API do Graph.
Solicitação
GET https://graph.microsoft.com/v1.0/users/{id}?$select=customSecurityAttributes
Resposta
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(customSecurityAttributes)/$entity",
"customSecurityAttributes": {
"Marketing": {
"@odata.type": "#microsoft.graph.customSecurityAttributeValue",
"EmployeeId": "QN26904"
},
"Engineering": {
"@odata.type": "#microsoft.graph.customSecurityAttributeValue",
"Project@odata.type": "#Collection(String)",
"Project": [
"Baker",
"Cascade"
],
"CostCenter@odata.type": "#Collection(Int32)",
"CostCenter": [
1001
],
"Certification": true
}
}
}
Se não houver atributos de segurança personalizados atribuídos ao usuário ou se a entidade de chamada não tiver acesso, o seguinte será a resposta:
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(customSecurityAttributes)/$entity",
"customSecurityAttributes": null
}
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de