Compartilhar via


servicePrincipal: addKey

Namespace: microsoft.graph

Adiciona uma credencial de chave a um servicePrincipal. Este método, juntamente com removeKey , pode ser utilizado por um servicePrincipal para automatizar a implementação das chaves prestes a expirar.

Observação

As operações servicePrincipal e Update servicePrincipal podem continuar a ser utilizadas para adicionar e atualizar credenciais de chave para qualquer servicePrincipal com ou sem o contexto de um utilizador.

Como parte da validação do pedido para este método, é verificada uma prova de posse de uma chave existente antes de a ação poder ser executada.

Os ServicePrincipals que não tenham certificados válidos existentes (ou seja, ainda não foram adicionados certificados ou todos os certificados expiraram), não poderão utilizar esta ação de serviço. O servicePrincipal de atualização pode ser utilizado para efetuar uma atualizaçã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 Directory.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application Application.ReadWrite.OwnedBy Application.ReadWrite.All, Directory.ReadWrite.All

Importante

Em cenários delegados com contas escolares ou profissionais, o utilizador com sessão iniciada tem de ter 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 utilizador membro não administrador com permissões de utilizador predefinidas – para aplicações que possui
  • Programador de Aplicações – para aplicações que possuem
  • Administrador de Aplicativos de Nuvem
  • Administrador de Aplicativos

Solicitação HTTP

Pode abordar o principal de serviço com o respetivo ID ou appId. O id e o appId são referidos como o ID do Objeto e o ID da Aplicação (Cliente), respetivamente, nos registos de aplicações no centro de administração do Microsoft Entra.

POST /serviceprincipals/{id}/addKey
POST /servicePrincipals(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 do pedido, forneça as seguintes propriedades necessárias.

Propriedade Tipo Descrição
keyCredential keyCredential A nova credencial de chave servicePrincipal a adicionar. O tipo, a utilização e a chave são propriedades necessárias para esta utilização. Os tipos de chave suportados são:
  • AsymmetricX509Cert: a utilização tem de ser Verify.
  • X509CertAndPassword: a utilização tem de ser Sign
passwordCredential passwordCredential Só é necessário definir secretText que deve conter a palavra-passe da chave. Esta propriedade é necessária apenas para chaves do tipo X509CertAndPassword. Defina-o para o null contrário.
prova Cadeia de caracteres Um token JWT autoassinado utilizado como prova de posse das chaves existentes. Este token JWT tem de ser assinado com uma chave privada que corresponda a um dos certificados válidos existentes associados ao servicePrincipal. O token deve conter os seguintes argumentos:
  • aud: o público tem de ser 00000002-0000-0000-c000-000000000000.
  • iss: O emissor tem de ser o ID do servicePrincipal que inicia o pedido.
  • nbf: Não antes do tempo.
  • exp: O tempo de expiração deve ser o valor de nbf + 10 minutos.

Para obter os passos para gerar este token de prova de posse, veja Gerar tokens de prova de posse para chaves sem interrupção.

Resposta

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

Exemplos

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

Solicitação

O exemplo a seguir mostra uma solicitação.

POST https://graph.microsoft.com/v1.0/servicePrincipals/{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 palavra-passe associada para a chave

Solicitação

O exemplo a seguir mostra uma solicitação.

POST https://graph.microsoft.com/v1.0/servicePrincipals/{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"
}