Serviço upsertPrincipal

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.

Crie um novo objeto servicePrincipal se ele não existir ou atualize as propriedades de um objeto servicePrincipal existente.

Importante

Não há suporte para a adição de passwordCredential durante a criação de servicePrincipals. Use o método addPassword para adicionar senhas ou segredos para um servicePrincipal.

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) Application.ReadWrite.All Directory.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application Application.ReadWrite.All Application.ReadWrite.OwnedBy, Directory.ReadWrite.All

Para aplicativos multilocatários, o usuário chamador também deve estar em pelo menos uma das seguintes funções de Microsoft Entra:

  • Administrador de Aplicativos
  • Funções de Administrador de Aplicativos na Nuvem

Para aplicativos de locatário único em que o usuário que chama é um usuário não administrador, mas é o proprietário do aplicativo de suporte, o usuário deve ter a função desenvolvedor de aplicativos .

Solicitação HTTP

PATCH /servicePrincipals(appId='appId')

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório.
Content-Type application/json. Obrigatório.
Preferir create-if-missing. Necessário para um comportamento upsert, caso contrário, a solicitação é tratada como uma operação de atualização.

Corpo da solicitação

No corpo da solicitação, forneça uma representação JSON de um objeto servicePrincipal.

Resposta

Se for bem-sucedido, se um servicePrincipal com appId não existir, esse método retornará um código de 201 Created resposta e um novo objeto servicePrincipal no corpo da resposta.

Se um servicePrincipal com appId já existir, esse método atualizará o objeto servicePrincipal e retornará um código de 204 No Content resposta.

Exemplos

Exemplo 1: criar um novo serviçoPrincipal se ele não existir

O exemplo a seguir cria um servicePrincipal porque um servicePrincipal com o valor appId especificado não existe.

Solicitação

O exemplo a seguir mostra uma solicitação.

PATCH https://graph.microsoft.com/beta/servicePrincipals(appId='65415bb1-9267-4313-bbf5-ae259732ee12')
Content-type: application/json
Prefer: create-if-missing

{
  "displayName": "My app instance"
}

Resposta

O exemplo a seguir mostra a resposta.

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

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals/$entity",
    "id": "59e617e5-e447-4adc-8b88-00af644d7c92",
    "deletedDateTime": null,
    "accountEnabled": true,
    "appDisplayName": "My App",
    "appId": "65415bb1-9267-4313-bbf5-ae259732ee12",
    "applicationTemplateId": null,
    "appOwnerOrganizationId": "1bc1c026-2f7b-48a5-98da-afa2fd8bc7bc",
    "appRoleAssignmentRequired": false,
    "displayName": "My app instance",
    "errorUrl": null,
    "homepage": null,
    "loginUrl": null,
    "logoutUrl": null,
    "notificationEmailAddresses": [],
    "preferredSingleSignOnMode": null,
    "preferredTokenSigningKeyEndDateTime": null,
    "preferredTokenSigningKeyThumbprint": null,
    "publisherName": "Contoso",
    "replyUrls": [],
    "samlMetadataUrl": null,
    "samlSingleSignOnSettings": null,
    "servicePrincipalNames": [
        "f1bd758f-4a1a-4b71-aa20-a248a22a8928"
    ],
    "signInAudience": "AzureADandPersonalMicrosoftAccount",
    "tags": [],
    "addIns": [],
    "api": {
        "resourceSpecificApplicationPermissions": []
    },
    "appRoles": [],
    "info": {
        "termsOfServiceUrl": null,
        "supportUrl": null,
        "privacyStatementUrl": null,
        "marketingUrl": null,
        "logoUrl": null
    },
    "keyCredentials": [],
    "publishedPermissionScopes": [],
    "passwordCredentials": []
}

Exemplo 2: atualizar um serviço existentePrincipal

O exemplo a seguir atualiza o servicePrincipal porque existe um servicePrincipal com o valor appId especificado.

Solicitação

O exemplo a seguir mostra uma solicitação.

PATCH https://graph.microsoft.com/beta/servicePrincipals(appId='65415bb1-9267-4313-bbf5-ae259732ee12')
Content-type: application/json
Prefer: create-if-missing

{
  "displayName": "My app instance"
}

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 204 No Content