application: addKey

Namespace: microsoft.graph

Adicionar uma credencial de chave a um aplicativo. Esse método, juntamente com removeKey , pode ser usado por um aplicativo para automatizar a rolagem de suas chaves expiradas.

Observação

Criar aplicativo e atualizar operações de aplicativo podem continuar a ser usadas para adicionar e atualizar credenciais de chave para qualquer aplicativo com ou sem o contexto de um usuário.

Você só deve fornecer o valor da chave pública ao adicionar uma credencial de certificado ao seu aplicativo. Adicionar um certificado de chave privada ao seu aplicativo corre o risco de comprometer o aplicativo.

Como parte da validação de solicitação para esse método, uma prova de posse de uma chave existente é verificada antes que a ação possa ser executada.

Os aplicativos que não possuem certificados válidos existentes (nenhum certificado foi adicionado ainda ou todos os certificados expiraram) não poderão usar essa ação de serviço. Você pode usar a operação Atualizar aplicativo para executar uma atualização.

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

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

Permissões

Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos 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 com privilégios mais elevados
Delegado (conta corporativa ou de estudante) Application.ReadWrite.All Directory.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application Application.ReadWrite.OwnedBy Application.ReadWrite.All, Directory.ReadWrite.All

Observação

Um aplicativo não precisa de nenhuma permissão específica para rolar suas próprias chaves.

Importante

Para acesso delegado usando contas corporativas ou de estudante, o usuário conectado deve receber uma função do Microsoft Entra com suporte ou uma função personalizada que conceda as permissões necessárias para esta operação. Esta operação dá suporte às seguintes funções internas, que fornecem apenas o menor privilégio necessário:

  • Um usuário membro não administrador com permissões de usuário padrão - para aplicativos que possuem
  • Desenvolvedor de Aplicativos - para aplicativos que possuem
  • Administrador de Aplicativos de Nuvem
  • Administrador de Aplicativos

Solicitação HTTP

Você pode abordar o aplicativo usando sua id ou appId. id e appId são chamados de ID do Objeto e ID do Aplicativo (Cliente), respectivamente, em registros de aplicativo no centro de administração do Microsoft Entra.

POST /applications/{id}/addKey
POST /applications(appId='{appId}')/addKey

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.

Corpo da solicitação

No corpo da solicitação, forneça as seguintes propriedades necessárias.

Propriedade Tipo Descrição
keyCredential keyCredential A nova credencial de chave do aplicativo a ser adicionada. O tipo, o uso e a chave são propriedades obrigatórias para esse uso. Os principais tipos de chaves com suporte são:
  • AsymmetricX509Cert: o uso deve ser Verify.
  • X509CertAndPassword: O uso deve ser Sign
passwordCredential passwordCredential Somente secretText é necessário definir o que deve conter a senha da chave. Esta propriedade é necessária apenas para chaves do tipo X509CertAndPassword. Defina-a como null outra forma.
à prova Cadeia de caracteres Um token JWT autoassinado usado como prova de posse das chaves existentes. Esse token JWT deve ser assinado com uma chave privada que corresponda a um dos certificados válidos existentes associados ao aplicativo. O token deve conter os seguintes argumentos:
  • aud: A audiência precisa ser 00000002-0000-0000-c000-000000000000.
  • iss: O emissor precisa ser a ID do aplicativo que inicia a solicitação.
  • nbf: Não antes do tempo.
  • exp: O tempo de expiração deve ser o valor de nbf + 10 minutos.

Para ver as etapas para gerar esse token de prova de posse, consulte Geração de tokens de prova de posse para chaves de rolagem. Para obter mais informações sobre os tipos de declaração, consulte Carga de declarações.

Resposta

Se for bem-sucedido, esse método retornará um código de 200 OK resposta e um novo objeto keyCredential no corpo da resposta.

Exemplos

Exemplo 1: Adicionar uma nova credencial de chave a um aplicativo

Solicitação

O exemplo a seguir mostra uma solicitação.

POST https://graph.microsoft.com/v1.0/applications/{id}/addKey
Content-type: application/json

{
    "keyCredential": {
        "type": "AsymmetricX509Cert",
        "usage": "Verify",
        "key": "MIIDYDCCAki..."
    },
    "passwordCredential": null,
    "proof":"eyJ0eXAiOiJ..."
}

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#microsoft.graph.keyCredential"
}

Exemplo 2: Adicionar uma credencial de chave e uma senha associada para a chave

Solicitação

O exemplo a seguir mostra uma solicitação.

POST https://graph.microsoft.com/v1.0/applications/{id}/addKey
Content-type: application/json

{
    "keyCredential": {
        "type": "X509CertAndPassword",
        "usage": "Sign",
        "key": "MIIDYDCCAki..."
    },
    "passwordCredential": {
        "secretText": "MKTr0w1..."
    },
    "proof":"eyJ0eXAiOiJ..."
}

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#microsoft.graph.keyCredential"
}