Namespace: microsoft.graph
Importante
As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.
Atualize as propriedades de um utilizador. Para utilizar esta API para atualizar um agentUser, especifique uma propriedade @odata.type com um valor de #microsoft.graph.agentUser no corpo do pedido.
- Nem todas as propriedades podem ser atualizadas por utilizadores Membros ou Convidados com as respetivas permissões predefinidas sem funções de administrador.
Compare as permissões padrão de membros e convidados para ver as propriedades que eles podem gerenciar.
- Os clientes através de ID externa do Microsoft Entra em inquilinos externos também podem utilizar esta operação de API para atualizar os respetivos detalhes. Veja Permissões de utilizador predefinidas em inquilinos externos para obter a lista de propriedades que podem atualizar.
- Para os utilizadores sincronizados, a capacidade de atualizar determinadas propriedades é ainda determinada pela origem da autoridade e se a sincronização está ativada.
Esta API está disponível nas seguintes implementações de cloud nacionais.
| Serviço global |
US Government L4 |
US Government L5 (DOD) |
China operada pela 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Permissões
Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.
Permissões para atualizar utilizadores
| Tipo de permissão |
Permissões com menos privilégios |
Permissões com privilégios superiores |
| Delegado (conta corporativa ou de estudante) |
User.ReadUpdate.All |
User.ReadWrite.All, Directory.ReadWrite.All |
| Delegado (conta pessoal da Microsoft) |
User.ReadWrite |
Indisponível. |
| Application |
User.ReadUpdate.All |
User.ReadWrite.All, Directory.ReadWrite.All |
Permissões para cenários específicos
-
User.ReadWrite é a permissão com menos privilégios para atualizar os detalhes do utilizador com sessão iniciada.
- A sua conta Microsoft pessoal tem de estar associada a um inquilino Microsoft Entra para atualizar o seu perfil com a permissão delegada User.ReadWrite numa conta Microsoft pessoal.
- Para atualizar a propriedade employeeLeaveDateTime :
- Em cenários delegados, o administrador precisa da função de Administrador Global ; a aplicação tem de ter as permissões delegadas User.Read.All e User-LifeCycleInfo.ReadWrite.All .
- Em cenários apenas de aplicações com permissões do Microsoft Graph, a aplicação tem de ter as permissões User.Read.All e User-LifeCycleInfo.ReadWrite.All .
- Para atualizar a propriedade customSecurityAttributes :
- Em cenários delegados, tem de ser atribuída ao administrador a função Administrador de Atribuição de Atributos e a aplicação concedeu a permissão CustomSecAttributeAssignment.ReadWrite.All .
- Em cenários apenas de aplicações com permissões do Microsoft Graph, a aplicação tem de ter a permissão CustomSecAttributeAssignment.ReadWrite.All .
-
User-Mail.ReadWrite.All é a permissão com menos privilégios para atualizar a propriedade otherMails .
-
User-PasswordProfile.ReadWrite.All é a permissão com menos privilégios para atualizar a propriedade passwordProfile .
-
User-Phone.ReadWrite.All é a permissão com menos privilégios para atualizar as propriedades businessPhones e mobilePhone .
-
User.EnableDisableAccount.All + User.Read.All é a combinação menos privilegiada de permissões para atualizar a propriedade accountEnabled .
-
User.ManageIdentities.All é necessário para atualizar a propriedade identities .
Solicitação HTTP
Atualize as suas próprias propriedades de utilizador.
Observação
Chamar o ponto de extremidade /me exige um usuário conectado e, portanto, uma permissão delegada. As permissões de aplicação não são suportadas ao utilizar o /me ponto final.
PATCH /me
Atualize as propriedades de outro utilizador.
PATCH /users/{id | userPrincipalName}
| Cabeçalho |
Valor |
| Autorização |
{token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização. |
| Content-Type |
application/json |
Corpo da solicitação
No corpo do pedido, forneça apenas os valores das propriedades a atualizar. As propriedades existentes que não estão incluídas no corpo do pedido mantêm os valores anteriores ou são recalculadas com base em alterações a outros valores de propriedade.
A tabela a seguir especifica as propriedades que podem ser atualizadas.
Para utilizar esta API para atualizar um agentUser, tem de especificar o @odata.type como #microsoft.graph.agentUser no corpo do pedido.
| Propriedade |
Tipo |
Descrição |
| aboutMe |
String |
Um campo de entrada de texto em forma livre para o usuário se descrever. |
| accountEnabled |
Booliano |
true se a conta estiver habilitada; caso contrário, false. Essa propriedade é obrigatória quando um usuário é criado.
User.EnableDisableAccount.All + User.Read.All é a combinação menos privilegiada de permissões necessárias para atualizar esta propriedade. Em cenários delegados, o Administrador de Autenticação Privilegiada é a função com menos privilégios que tem permissão para atualizar esta propriedade para todos os administradores no inquilino. Em geral, o utilizador com sessão iniciada tem de ter uma função de administrador com privilégios superior, conforme indicado em Quem pode realizar ações confidenciais. Em cenários apenas de aplicações, além das permissões do Microsoft Graph, a aplicação tem de ter uma função de administrador com privilégios superior, conforme indicado em Quem pode realizar ações confidenciais. |
| ageGroup |
ageGroup |
Define a faixa etária do usuário. Valores permitidos: null, Minor, NotAdult e Adult. Confira as definições de propriedades da faixa etária legal para obter mais informações. |
| assignedLicenses |
Coleção assignedLicense |
As licenças que são atribuídas ao usuário. Não anulável. |
| birthday |
DateTimeOffset |
O aniversário do usuário. O tipo Timestamp representa informações de data e hora usando o formato ISO 8601 e está sempre no horário UTC. Por exemplo, meia-noite UTC em 1 de janeiro de 2014 é 2014-01-01T00:00:00Z |
| businessPhones |
String collection |
Números de telefone para o usuário.
NOTA: Embora se trata de uma coleção de cadeias, apenas um número pode ser definido para esta propriedade.
User-Phone.ReadWrite.All é a permissão com menos privilégios para atualizar esta propriedade. |
| city |
String |
A cidade em que o usuário está localizado. |
| CompanyName |
String |
O nome da empresa à qual o utilizador está associado. Essa propriedade pode ser útil para descrever a empresa de onde procede um usuário externo. O tamanho máximo é de 64 caracteres. |
| consentProvidedForMinor |
consentProvidedForMinor |
Define se o consentimento foi obtido para menores. Valores permitidos: null, Granted, Deniede NotRequired. Confira as definições de propriedades da faixa etária legal para obter mais informações. |
| country |
Cadeia de caracteres |
O país/região em que o usuário está localizado; por exemplo, US ou UK. |
| customSecurityAttributes |
customSecurityAttributeValue |
Um tipo complexo aberto que contém o valor de um atributo de segurança personalizado atribuído a um objeto de diretório. Para atualizar esta propriedade em cenários delegados, o principal de chamada tem de ter atribuída a função Administrador de Atribuição de Atributos e a aplicação concedeu a permissão CustomSecAttributeAssignment.ReadWrite.All delegated.Para atualizar esta propriedade em cenários apenas de aplicações com permissões do Microsoft Graph, tem de ser concedida a permissão de aplicação CustomSecAttributeAssignment.ReadWrite.All . |
| department |
String |
O nome do departamento no qual o usuário trabalha. |
| displayName |
String |
O nome exibido para o usuário no catálogo de endereços. Geralmente é a combinação do nome, da inicial do nome do meio e do sobrenome do usuário. Esta propriedade é necessária quando um utilizador é criado e não pode ser limpa durante as atualizações. |
| employeeId |
String |
O identificador de funcionário atribuído ao usuário pela organização. O comprimento máximo é de 16 caracteres. |
| employeeType |
String |
Captura o tipo de trabalhador corporativo. Por exemplo, Employee, Contractor, Consultant ou Vendor. |
| givenName |
String |
O nome fornecido (nome) do usuário. |
| employeeHireDate |
DateTimeOffset |
A data de contratação do usuário. O tipo Timestamp representa informações de data e hora usando o formato ISO 8601 e está sempre no horário UTC. Por exemplo, meia-noite UTC em 1 de janeiro de 2014 é 2014-01-01T00:00:00Z. |
| employeeLeaveDateTime |
DateTimeOffset |
A data e hora em que o utilizador saiu ou sairá da organização. O tipo de carimbo de data/hora representa informações de data e hora com o formato ISO 8601 e está sempre na hora UTC. Por exemplo, meia-noite UTC em 1 de janeiro de 2014 é 2014-01-01T00:00:00Z. Para atualizar esta propriedade, a aplicação de chamadas tem de ter as permissões User-LifeCycleInfo.Read.All e User.Read.All . Para atualizar esta propriedade em cenários delegados, o administrador precisa da função de Administrador Global. |
| employeeOrgData |
employeeOrgData |
Representa os dados da organização (por exemplo, divisão e costCenter) associados a um utilizador. Inclua ambos os valores de propriedade ao atualizar employeeOrgData; se omitir algum, o sistema define-os como null. |
| Identidades |
Coleção objectIdentity |
Representa as identidades que podem ser usadas para entrar nesta conta de usuário. Uma identidade pode ser fornecida pela Microsoft, por organizações ou por provedores de identidade social, como o Facebook, Google e Microsoft, e está vinculada a uma conta de usuário. Qualquer atualização às identidades substitui toda a coleção e tem de fornecer a identidade userPrincipalName signInType na coleção.
NOTA: A adição de uma conta local B2C a um objeto de utilizador existente não é permitida, a menos que o objeto de utilizador já contenha uma identidade de conta local. |
| interests |
Coleção de cadeias de caracteres |
Uma lista para o usuário descrever os interesses dele. |
| jobTitle |
String |
O cargo do usuário. |
| email |
String |
O endereço SMTP do usuário, por exemplo, jeff@contoso.com. Para Azure AD contas B2C, esta propriedade pode ser atualizada até 10 vezes com endereços SMTP exclusivos. As alterações a esta propriedade também atualizam a coleção proxyAddresses do utilizador para incluir o valor como um endereço SMTP. Não é possível atualizar para null. |
| mailNickname |
String |
O alias de email do usuário. Essa propriedade deve ser especificada quando um usuário é criado. |
| mobilePhone |
String |
O número de celular principal do usuário.
User-Phone.ReadWrite.All é a permissão com menos privilégios para atualizar esta propriedade. Em cenários delegados, o Administrador de Autenticação Privilegiada é a função com menos privilégios que tem permissão para atualizar esta propriedade para todos os administradores no inquilino. Em geral, o utilizador com sessão iniciada tem de ter uma função de administrador com privilégios superior, conforme indicado em Quem pode realizar ações confidenciais. Em cenários apenas de aplicações, além das permissões do Microsoft Graph, a aplicação tem de ter uma função de administrador com privilégios superior, conforme indicado em Quem pode realizar ações confidenciais. |
| mySite |
String |
A URL do site pessoal do usuário. |
| officeLocation |
String |
A localização do escritório no local de trabalho do usuário. |
| onPremisesExtensionAttributes |
onPremisesExtensionAttributes |
Contém extensionAttributes 1-15 para o usuário. Os atributos de extensão individuais não são selecionáveis ou filtráveis. Para um usuário do onPremisesSyncEnabled, a fonte de autoridade desse conjunto de propriedades é o local e é somente para leitura. Esses atributos de extensão também são conhecidos como atributos personalizados do Exchange 1-15. |
| onPremisesImmutableId |
String |
Esta propriedade é utilizada para associar uma conta de utilizador Active Directory local ao respetivo objeto de utilizador Microsoft Entra. Esta propriedade tem de ser especificada ao criar uma nova conta de utilizador no Graph se estiver a utilizar um domínio federado para a propriedade userPrincipalName (UPN) do utilizador.
Importante: Os $ carateres e _ não podem ser utilizados ao especificar esta propriedade. |
| otherMails |
Coleção String |
Uma lista de endereços de email adicional para o usuário; Por exemplo: ["bob@contoso.com", "Robert@fabrikam.com"]. Para atualizar esta propriedade, transmita todos os endereços de e-mail que pretende que o utilizador tenha; caso contrário, os valores existentes são substituídos pelos valores que especificar. Pode armazenar até 250 valores, cada um com um limite de 250 carateres.
User-Mail.ReadWrite.All é a permissão com menos privilégios para atualizar esta propriedade. Em cenários delegados, o Administrador de Autenticação Privilegiada é a função com menos privilégios que tem permissão para atualizar esta propriedade para todos os administradores no inquilino. Em geral, o utilizador com sessão iniciada tem de ter uma função de administrador com privilégios superior, conforme indicado em Quem pode realizar ações confidenciais. Em cenários apenas de aplicações, além das permissões do Microsoft Graph, a aplicação tem de ter uma função de administrador com privilégios superior, conforme indicado em Quem pode realizar ações confidenciais. |
| passwordPolicies |
String |
Especifica as políticas de senha do usuário. Este valor é uma enumeração com um valor possível sendo DisableStrongPassword, que permite que senhas mais fracas do que a política padrão sejam especificadas.
DisablePasswordExpiration também pode ser especificado. Os dois podem ser especificados em conjunto; por exemplo: DisablePasswordExpiration, DisableStrongPassword. |
| passwordProfile |
passwordProfile |
Especifica o perfil de senha do usuário. O perfil contém a senha do usuário. A senha no perfil deve atender a requisitos mínimos, conforme especificado pela propriedade passwordPolicies. Por padrão, é obrigatória uma senha forte. Como melhor prática, defina sempre forceChangePasswordNextSignIn como true. Isto não pode ser utilizado para utilizadores federados.
User-PasswordProfile.ReadWrite.All é a permissão com menos privilégios para atualizar esta propriedade. Em cenários delegados, a função de Administrador de UtilizadoresMicrosoft Entra é a função de administrador com menos privilégios suportada para atualizar esta propriedade para utilizadores não administradores.
O Administrador de Autenticação Privilegiada é a função com menos privilégios que tem permissão para atualizar esta propriedade para todos os administradores no inquilino. Em geral, o utilizador com sessão iniciada tem de ter uma função de administrador com privilégios superior, conforme indicado em Quem pode repor palavras-passe. Em cenários apenas de aplicações, a aplicação de chamadas tem de ter uma permissão suportada e, pelo menos, a função Microsoft Entra Administrador de Utilizadores. |
| pastProjects |
Coleção de cadeias de caracteres |
Uma lista para o usuário enumerar seus projetos anteriores. |
| postalCode |
String |
O código postal do endereço postal do usuário. O código postal é específico para o país/região do usuário. Nos Estados Unidos, esse atributo contém o CEP. |
| preferredLanguage |
String |
O idioma preferencial do usuário. Deve seguir o Código ISO 639-1; por exemplo, en-US. |
| responsibilities |
Coleção de cadeias de caracteres |
Uma lista para o usuário enumerar suas responsabilidades. |
| schools |
Coleção de cadeias de caracteres |
Uma lista para o utilizador enumerar as escolas que frequentavam. |
| skills |
Coleção de cadeias de caracteres |
Uma lista para o usuário enumerar suas qualificações. |
| state |
String |
O estado ou município no endereço do usuário. |
| streetAddress |
String |
O endereço do local de trabalho do usuário. |
| surname |
String |
O sobrenome do usuário (nome de família ou sobrenome). |
| usageLocation |
String |
Um código de duas letras (padrão ISO 3166). Necessário para os utilizadores a que serão atribuídas licenças devido ao requisito legal para marcar para disponibilidade de serviços em países/regiões. Os exemplos incluem:US,JP e GB. Não anulável. |
| userPrincipalName |
String |
O nome UPN do usuário. O UPN é um nome de início de sessão ao estilo da Internet para o utilizador com base no RFC 822 padrão da Internet. Por convenção, ele deve ser mapeado para o nome de email do usuário. O formato geral é alias@domain, onde o domínio deve estar presente na coleta de domínios verificados pelo locatário. Os domínios verificados para o locatário podem ser acessados pela propriedade verifiedDomains de organization. NOTA: esta propriedade não pode conter carateres de destaque. Somente os seguintes caracteres são permitidos A - Z, a - z, 0 - 9, ' . - _ ! # ^ ~. Para obter a lista completa de caracteres permitidos, consulte as políticas de nome de usuário. |
| userType |
String |
Um valor de string que pode ser usado para classificar tipos de usuário em seu diretório, como Member e Guest. |
Uma vez que o recurso de utilizador suporta extensões, pode utilizar a PATCH operação para adicionar, atualizar ou eliminar os seus próprios dados específicos da aplicação em propriedades personalizadas de uma extensão numa instância de utilizador existente.
Observação
- As propriedades a seguir não podem ser atualizadas por um aplicativo apenas com permissões de aplicativo: aboutMe, birthday, employeeHireDate, interests, mySite, pastProjects, responsabilidades, escolas e habilidades.
- Para atualizar as propriedades a seguir, você deve especificá-las em sua própria solicitação PATCH, sem incluir as outras propriedades listadas na tabela acima: aboutMe, aniversário, interesses, mySite, pastProjects, responsabilidades, escolas e habilidades.
Gerenciar extensões e dados associados
Use essa API para gerenciar o diretório, o esquema e as extensões abertas e seus dados para os usuários, da seguinte maneira:
- Adicionar, atualizar e armazenar dados nas extensões de um utilizador existente
- Para extensões de diretório e esquema, remova todos os dados armazenados definindo o valor da propriedade de extensão personalizada como
null. Para extensões abertas, use a API Excluir a extensão aberta.
Resposta
Se tiver êxito, este método retornará um código de resposta 204 No Content.
Se o ID pertencer a um agentUser e não especificar o @odata.type como #microsoft.graph.agentUser no corpo do pedido, este método devolve um 400 Bad Request código de erro.
Exemplo
Exemplo 1: atualizar as propriedades do usuário conectado
Solicitação
O exemplo a seguir mostra uma solicitação.
PATCH https://graph.microsoft.com/beta/me
Content-type: application/json
{
"businessPhones": [
"+1 425 555 0109"
],
"officeLocation": "18/2111"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new User
{
BusinessPhones = new List<string>
{
"+1 425 555 0109",
},
OfficeLocation = "18/2111",
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Me.PatchAsync(requestBody);
// 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"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewUser()
businessPhones := []string {
"+1 425 555 0109",
}
requestBody.SetBusinessPhones(businessPhones)
officeLocation := "18/2111"
requestBody.SetOfficeLocation(&officeLocation)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
me, err := graphClient.Me().Patch(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
User user = new User();
LinkedList<String> businessPhones = new LinkedList<String>();
businessPhones.add("+1 425 555 0109");
user.setBusinessPhones(businessPhones);
user.setOfficeLocation("18/2111");
User result = graphClient.me().patch(user);
const options = {
authProvider,
};
const client = Client.init(options);
const user = {
businessPhones: [
'+1 425 555 0109'
],
officeLocation: '18/2111'
};
await client.api('/me')
.version('beta')
.update(user);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\User;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new User();
$requestBody->setBusinessPhones(['+1 425 555 0109', ]);
$requestBody->setOfficeLocation('18/2111');
$result = $graphServiceClient->me()->patch($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Users
$params = @{
businessPhones = @(
"+1 425 555 0109"
)
officeLocation = "18/2111"
}
# A UPN can also be used as -UserId.
Update-MgBetaUser -UserId $userId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.user import User
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = User(
business_phones = [
"+1 425 555 0109",
],
office_location = "18/2111",
)
result = await graph_client.me.patch(request_body)
Resposta
O exemplo a seguir mostra a resposta.
HTTP/1.1 204 No Content
Exemplo 2: Atualizar as propriedades de um utilizador especificado por ID
Solicitação
O exemplo a seguir mostra uma solicitação. Uma vez que o pedido não contém a propriedade @odata.type , o Microsoft Graph espera o {id} de um objeto de utilizador e não um objeto agentUser .
PATCH https://graph.microsoft.com/beta/users/{id}
Content-type: application/json
{
"businessPhones": [
"+1 425 555 0109"
],
"officeLocation": "18/2111",
"authorizationInfo": {
"certificateUserIds": [
"5432109876543210@mil"
]
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new User
{
BusinessPhones = new List<string>
{
"+1 425 555 0109",
},
OfficeLocation = "18/2111",
AuthorizationInfo = new AuthorizationInfo
{
CertificateUserIds = new List<string>
{
"5432109876543210@mil",
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].PatchAsync(requestBody);
// 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"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewUser()
businessPhones := []string {
"+1 425 555 0109",
}
requestBody.SetBusinessPhones(businessPhones)
officeLocation := "18/2111"
requestBody.SetOfficeLocation(&officeLocation)
authorizationInfo := graphmodels.NewAuthorizationInfo()
certificateUserIds := []string {
"5432109876543210@mil",
}
authorizationInfo.SetCertificateUserIds(certificateUserIds)
requestBody.SetAuthorizationInfo(authorizationInfo)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
users, err := graphClient.Users().ByUserId("user-id").Patch(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
User user = new User();
LinkedList<String> businessPhones = new LinkedList<String>();
businessPhones.add("+1 425 555 0109");
user.setBusinessPhones(businessPhones);
user.setOfficeLocation("18/2111");
AuthorizationInfo authorizationInfo = new AuthorizationInfo();
LinkedList<String> certificateUserIds = new LinkedList<String>();
certificateUserIds.add("5432109876543210@mil");
authorizationInfo.setCertificateUserIds(certificateUserIds);
user.setAuthorizationInfo(authorizationInfo);
User result = graphClient.users().byUserId("{user-id}").patch(user);
const options = {
authProvider,
};
const client = Client.init(options);
const user = {
businessPhones: [
'+1 425 555 0109'
],
officeLocation: '18/2111',
authorizationInfo: {
certificateUserIds: [
'5432109876543210@mil'
]
}
};
await client.api('/users/{id}')
.version('beta')
.update(user);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\User;
use Microsoft\Graph\Beta\Generated\Models\AuthorizationInfo;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new User();
$requestBody->setBusinessPhones(['+1 425 555 0109', ]);
$requestBody->setOfficeLocation('18/2111');
$authorizationInfo = new AuthorizationInfo();
$authorizationInfo->setCertificateUserIds(['5432109876543210@mil', ]);
$requestBody->setAuthorizationInfo($authorizationInfo);
$result = $graphServiceClient->users()->byUserId('user-id')->patch($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Users
$params = @{
businessPhones = @(
"+1 425 555 0109"
)
officeLocation = "18/2111"
authorizationInfo = @{
certificateUserIds = @(
"5432109876543210@mil"
)
}
}
Update-MgBetaUser -UserId $userId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.user import User
from msgraph_beta.generated.models.authorization_info import AuthorizationInfo
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = User(
business_phones = [
"+1 425 555 0109",
],
office_location = "18/2111",
authorization_info = AuthorizationInfo(
certificate_user_ids = [
"5432109876543210@mil",
],
),
)
result = await graph_client.users.by_user_id('user-id').patch(request_body)
Resposta
O exemplo a seguir mostra a resposta.
HTTP/1.1 204 No Content
Exemplo 3: Atualizar a palavra-passePerficheiro de um utilizador e repor a palavra-passe
O exemplo seguinte mostra um pedido que repõe a palavra-passe de outro utilizador. Como melhor prática, defina sempre forceChangePasswordNextSignIn como true.
-
User-PasswordProfile.ReadWrite.All é a permissão com menos privilégios para atualizar a propriedade passwordProfile .
- Em cenários delegados, a aplicação de chamadas tem de ter uma permissão suportada e uma função de Microsoft Entra suportada.
-
O Administrador de Autenticação Privilegiada é a função com menos privilégios que tem permissão para atualizar esta propriedade para todos os administradores no inquilino.
- Em geral, o utilizador com sessão iniciada tem de ter uma função de administrador com privilégios superior, conforme indicado em Quem pode repor palavras-passe.
- Em cenários apenas de aplicações com permissões de aplicação do Microsoft Graph, User-PasswordProfile.ReadWrite.All é a permissão com menos privilégios.
Solicitação
PATCH https://graph.microsoft.com/beta/users/{id}
Content-type: application/json
{
"passwordProfile": {
"forceChangePasswordNextSignIn": true,
"password": "xWwvJ]6NMw+bWH-d"
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new User
{
PasswordProfile = new PasswordProfile
{
ForceChangePasswordNextSignIn = true,
Password = "xWwvJ]6NMw+bWH-d",
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].PatchAsync(requestBody);
// 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"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewUser()
passwordProfile := graphmodels.NewPasswordProfile()
forceChangePasswordNextSignIn := true
passwordProfile.SetForceChangePasswordNextSignIn(&forceChangePasswordNextSignIn)
password := "xWwvJ]6NMw+bWH-d"
passwordProfile.SetPassword(&password)
requestBody.SetPasswordProfile(passwordProfile)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
users, err := graphClient.Users().ByUserId("user-id").Patch(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
User user = new User();
PasswordProfile passwordProfile = new PasswordProfile();
passwordProfile.setForceChangePasswordNextSignIn(true);
passwordProfile.setPassword("xWwvJ]6NMw+bWH-d");
user.setPasswordProfile(passwordProfile);
User result = graphClient.users().byUserId("{user-id}").patch(user);
const options = {
authProvider,
};
const client = Client.init(options);
const user = {
passwordProfile: {
forceChangePasswordNextSignIn: true,
password: 'xWwvJ]6NMw+bWH-d'
}
};
await client.api('/users/{id}')
.version('beta')
.update(user);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\User;
use Microsoft\Graph\Beta\Generated\Models\PasswordProfile;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new User();
$passwordProfile = new PasswordProfile();
$passwordProfile->setForceChangePasswordNextSignIn(true);
$passwordProfile->setPassword('xWwvJ]6NMw+bWH-d');
$requestBody->setPasswordProfile($passwordProfile);
$result = $graphServiceClient->users()->byUserId('user-id')->patch($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Users
$params = @{
passwordProfile = @{
forceChangePasswordNextSignIn = $true
password = "xWwvJ]6NMw+bWH-d"
}
}
Update-MgBetaUser -UserId $userId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.user import User
from msgraph_beta.generated.models.password_profile import PasswordProfile
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = User(
password_profile = PasswordProfile(
force_change_password_next_sign_in = True,
password = "xWwvJ]6NMw+bWH-d",
),
)
result = await graph_client.users.by_user_id('user-id').patch(request_body)
Resposta
HTTP/1.1 204 No Content
Exemplo 4: Atribuir um atributo de segurança personalizado com um valor de cadeia a um utilizador
O exemplo seguinte mostra como atribuir um atributo de segurança personalizado com um valor de cadeia a um utilizador.
- Conjunto de atributos:
Engineering
- Atributo:
ProjectDate
- Tipo de dados de atributo: cadeia de caracteres
- Valor do atributo:
"2022-10-01"
Para atribuir atributos de segurança personalizados, o principal de chamada deve ser atribuído à função de Administrador de Atribuição de Atributo e deve receber a permissão CustomSecAttributeAssignment.ReadWrite.All.
Para obter exemplos de atribuições de atributos de segurança personalizadas, veja Exemplos: Atribuir, atualizar, listar ou remover atribuições de atributos de segurança personalizadas com o Microsoft API do Graph.
Solicitação
PATCH https://graph.microsoft.com/beta/users/{id}
Content-type: application/json
{
"customSecurityAttributes":
{
"Engineering":
{
"@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
"ProjectDate":"2022-10-01"
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
using Microsoft.Kiota.Abstractions.Serialization;
var requestBody = new User
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary<string, object>
{
{
"Engineering" , new UntypedObject(new Dictionary<string, UntypedNode>
{
{
"@odata.type", new UntypedString("#Microsoft.DirectoryServices.CustomSecurityAttributeValue")
},
{
"projectDate", new UntypedString("2022-10-01")
},
})
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].PatchAsync(requestBody);
// 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"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewUser()
customSecurityAttributes := graphmodels.NewCustomSecurityAttributeValue()
additionalData := map[string]interface{}{
engineering := graph.New()
projectDate := "2022-10-01"
engineering.SetProjectDate(&projectDate)
customSecurityAttributes.SetEngineering(engineering)
}
customSecurityAttributes.SetAdditionalData(additionalData)
requestBody.SetCustomSecurityAttributes(customSecurityAttributes)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
users, err := graphClient.Users().ByUserId("user-id").Patch(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
User user = new User();
CustomSecurityAttributeValue customSecurityAttributes = new CustomSecurityAttributeValue();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
engineering = new ();
engineering.setOdataType("#Microsoft.DirectoryServices.CustomSecurityAttributeValue");
engineering.setProjectDate("2022-10-01");
additionalData.put("Engineering", engineering);
customSecurityAttributes.setAdditionalData(additionalData);
user.setCustomSecurityAttributes(customSecurityAttributes);
User result = graphClient.users().byUserId("{user-id}").patch(user);
const options = {
authProvider,
};
const client = Client.init(options);
const user = {
customSecurityAttributes:
{
Engineering:
{
'@odata.type':'#Microsoft.DirectoryServices.CustomSecurityAttributeValue',
ProjectDate: '2022-10-01'
}
}
};
await client.api('/users/{id}')
.version('beta')
.update(user);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\User;
use Microsoft\Graph\Beta\Generated\Models\CustomSecurityAttributeValue;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new User();
$customSecurityAttributes = new CustomSecurityAttributeValue();
$additionalData = [
'Engineering' => [
'@odata.type' => '#Microsoft.DirectoryServices.CustomSecurityAttributeValue',
'projectDate' => '2022-10-01',
],
];
$customSecurityAttributes->setAdditionalData($additionalData);
$requestBody->setCustomSecurityAttributes($customSecurityAttributes);
$result = $graphServiceClient->users()->byUserId('user-id')->patch($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Users
$params = @{
customSecurityAttributes = @{
Engineering = @{
"@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
ProjectDate = "2022-10-01"
}
}
}
Update-MgBetaUser -UserId $userId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.user import User
from msgraph_beta.generated.models.custom_security_attribute_value import CustomSecurityAttributeValue
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = User(
custom_security_attributes = CustomSecurityAttributeValue(
additional_data = {
"engineering" : {
"@odata_type" : "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
"project_date" : "2022-10-01",
},
}
),
)
result = await graph_client.users.by_user_id('user-id').patch(request_body)
Resposta
HTTP/1.1 204 No Content
Exemplo 5: Adicionar ou atualizar os valores de uma extensão de esquema para um utilizador
Você pode atualizar ou atribuir um valor a uma única propriedade ou a todas as propriedades na extensão.
Solicitação
PATCH https://graph.microsoft.com/beta/users/4562bcc8-c436-4f95-b7c0-4f8ce89dca5e
Content-type: application/json
{
"ext55gb1l09_msLearnCourses": {
"courseType": "Admin"
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
using Microsoft.Kiota.Abstractions.Serialization;
var requestBody = new User
{
AdditionalData = new Dictionary<string, object>
{
{
"ext55gb1l09_msLearnCourses" , new UntypedObject(new Dictionary<string, UntypedNode>
{
{
"courseType", new UntypedString("Admin")
},
})
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].PatchAsync(requestBody);
// 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"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewUser()
additionalData := map[string]interface{}{
ext55gb1l09_msLearnCourses := graph.New()
courseType := "Admin"
ext55gb1l09_msLearnCourses.SetCourseType(&courseType)
requestBody.SetExt55gb1l09_msLearnCourses(ext55gb1l09_msLearnCourses)
}
requestBody.SetAdditionalData(additionalData)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
users, err := graphClient.Users().ByUserId("user-id").Patch(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
User user = new User();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
ext55gb1l09MsLearnCourses = new ();
ext55gb1l09MsLearnCourses.setCourseType("Admin");
additionalData.put("ext55gb1l09_msLearnCourses", ext55gb1l09MsLearnCourses);
user.setAdditionalData(additionalData);
User result = graphClient.users().byUserId("{user-id}").patch(user);
const options = {
authProvider,
};
const client = Client.init(options);
const user = {
ext55gb1l09_msLearnCourses: {
courseType: 'Admin'
}
};
await client.api('/users/4562bcc8-c436-4f95-b7c0-4f8ce89dca5e')
.version('beta')
.update(user);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\User;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new User();
$additionalData = [
'ext55gb1l09_msLearnCourses' => [
'courseType' => 'Admin',
],
];
$requestBody->setAdditionalData($additionalData);
$result = $graphServiceClient->users()->byUserId('user-id')->patch($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Users
$params = @{
ext55gb1l09_msLearnCourses = @{
courseType = "Admin"
}
}
Update-MgBetaUser -UserId $userId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.user import User
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = User(
additional_data = {
"ext55gb1l09_ms_learn_courses" : {
"course_type" : "Admin",
},
}
)
result = await graph_client.users.by_user_id('user-id').patch(request_body)
Para remover o valor da extensão de esquema do objeto de utilizador, defina a propriedade ext55gb1l09_msLearnCourses como null.
Resposta
HTTP/1.1 204 No Content
Conteúdo relacionado