Compartilhar via


Upsert application (Aplicação upsert)

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 de aplicação se não existir ou atualize as propriedades de um objeto de aplicação existente.

Esta API também pode criar um objeto agentIdentityBlueprint a partir de um agentIdentityBlueprint se não existir ou atualizar as propriedades de um agentIdentityBlueprint existente, quando a propriedade @odata.type estiver definida como #microsoft.graph.agentIdentityBlueprint.

Importante

Não há suporte para o uso do PATCH para definir passwordCredential. Utilize os métodos addPassword e removePassword para atualizar a palavra-passe ou o segredo de uma aplicação.

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.

Tipo de permissão Permissões com menos privilégios Permissões com privilégios superiores
Delegado (conta corporativa ou de estudante) Application.ReadWrite.All Indisponível.
Delegado (conta pessoal da Microsoft) Application.ReadWrite.All Indisponível.
Application Application.ReadWrite.OwnedBy Application.ReadWrite.All

Importante

Em cenários delegados com contas escolares ou profissionais, tem de ser atribuída ao administrador uma função de Microsoft Entra suportada ou uma função personalizada com uma permissão de função suportada. As seguintes funções com menos privilégios são suportadas para esta operação.

  • Um membro não administrador ou convidado com permissões de utilizador predefinidas, a menos que o administrador do inquilino tenha acesso restrito
  • Programador de Aplicações – crie aplicações mesmo quando o administrador tem acesso restrito a membros e convidados; o principal com esta função tem a propriedade atribuída da aplicação que criam
  • Escritores de Diretórios – atualizar as propriedades da extensão
  • Administrador de Identidade Híbrida – atualizar apenas as propriedades básicas
  • Administrador de Segurança
  • Administrador de Aplicativos de Nuvem
  • Administrador de Aplicativos

Solicitação HTTP

Para criar ou atualizar uma aplicação, especifique a chave alternativa fornecida pelo cliente uniqueName .

PATCH /applications(uniqueName='{uniqueName}')

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type application/json. Obrigatório.
Preferir create-if-missing. Necessário para o comportamento de upsert, caso contrário, o pedido é tratado como uma operação de atualização.

Corpo da solicitação

No corpo do pedido, forneça uma representação JSON do objeto da aplicação . O corpo do pedido tem de conter displayName, que é uma propriedade necessária. Especifique outras propriedades graváveis conforme necessário para a sua aplicação, para criação ou atualização.

Resposta

Se não existir uma aplicação ou um objeto agentIdentityBlueprint com uniqueName , este método devolve um 201 Created código de resposta e um novo objeto application ou agentIdentityBlueprint com o valor uniqueName atribuído no corpo da resposta.

Se uma aplicação ou um objeto agentIdentityBlueprint com uniqueName não existir e o Prefer: create-if-missing cabeçalho não for especificado, este método devolve um 404 Not Found código de erro.

Se já existir uma aplicação ou um objeto agentIdentityBlueprint com uniqueName , este método atualiza o objeto application ou agentIdentityBlueprint e devolve um 204 No Content código de resposta.

Exemplos

Exemplo 1: criar uma nova aplicação se não existir

O exemplo seguinte cria uma aplicação porque não existe uma aplicação com o valor uniqueName especificado.

Solicitação

O exemplo a seguir mostra uma solicitação.

PATCH https://graph.microsoft.com/beta/applications(uniqueName='app-65278')
Content-Type: application/json
Prefer: create-if-missing

{
  "displayName": "Display name"
}

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#applications/$entity",
    "id": "03ef14b0-ca33-4840-8f4f-d6e91916010e",
    "deletedDateTime": null,
    "isFallbackPublicClient": null,
    "appId": "631a96bc-a705-4eda-9f99-fdaf9f54f6a2",
    "applicationTemplateId": null,
    "identifierUris": [],
    "createdDateTime": "2019-09-17T19:10:35.2742618Z",
    "displayName": "Display name",
    "isDeviceOnlyAuthSupported": null,
    "groupMembershipClaims": null,
    "optionalClaims": null,
    "addIns": [],
    "publisherDomain": "contoso.onmicrosoft.com",
    "samlMetadataUrl": "https://graph.microsoft.com/2h5hjaj542de/app",
    "signInAudience": "AzureADandPersonalMicrosoftAccount",
    "tags": [],
    "tokenEncryptionKeyId": null,
    "api": {
        "requestedAccessTokenVersion": 2,
        "acceptMappedClaims": null,
        "knownClientApplications": [],
        "oauth2PermissionScopes": [],
        "preAuthorizedApplications": []
    },
    "appRoles": [],
    "publicClient": {
        "redirectUris": []
    },
    "info": {
        "termsOfServiceUrl": null,
        "supportUrl": null,
        "privacyStatementUrl": null,
        "marketingUrl": null,
        "logoUrl": null
    },
    "keyCredentials": [],
    "parentalControlSettings": {
        "countriesBlockedForMinors": [],
        "legalAgeGroupRule": "Allow"
    },
    "passwordCredentials": [],
    "requiredResourceAccess": [],
    "uniqueName": "app-65278",
    "web": {
        "redirectUris": [],
        "homePageUrl": null,
        "logoutUrl": null,
        "implicitGrantSettings": {
            "enableIdTokenIssuance": false,
            "enableAccessTokenIssuance": false
        }
    }, 
    "windows" : null
}

Exemplo 2: Atualizar uma aplicação existente

O exemplo seguinte atualiza a aplicação porque existe uma aplicação com o valor uniqueName especificado.

Solicitação

O exemplo a seguir mostra uma solicitação.

PATCH https://graph.microsoft.com/beta/applications(uniqueName='app-65278')
Content-Type: application/json
Prefer: create-if-missing

{
  "displayName": "Display name"
}

Resposta

O exemplo a seguir mostra a resposta.

HTTP/1.1 204 No Content