servicePrincipal: addKey

Namespace: microsoft.graph

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

Observação

Criar servicePrincipal e Atualizar service As operaçõesPrincipal podem continuar a ser usadas para adicionar e atualizar credenciais de chave para qualquer servicePrincipal com ou sem o contexto de um usuário.

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.

ServicePrincipals que não têm certificados válidos existentes (ou seja: nenhum certificado foi adicionado ainda, ou todos os certificados expiraram), não poderão usar essa ação de serviço. Atualizar servicePrincipal pode ser usado para executar uma atualização.

Permissões

Tipo de permissão Permissões (da com menos para a com mais privilégios)
Delegado (conta corporativa ou de estudante) Application.ReadWrite.All, Directory.ReadWrite.All
Delegado (conta pessoal da Microsoft) Nenhum.
Aplicativo Application.ReadWrite.OwnedBy, Application.ReadWrite.All, Directory.ReadWrite.All

Solicitação HTTP

POST /servicePrincipals/{id}/addKey

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório.
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 servicePrincipal a ser acrescentada. O tipo, o uso e a chave são propriedades necessárias para esse uso. Os tipos de chave com suporte são:
  • AsymmetricX509Cert: O uso deve ser Verify.
  • X509CertAndPassword: O uso deve ser Sign
passwordCredential passwordCredential Somente secretText é necessário para ser definido que deve conter a senha da chave. Essa propriedade é necessária apenas para chaves do tipo X509CertAndPassword. De defini-lo como null caso contrário.
proof Cadeia de caracteres Um token JWT auto-assinado usado como prova de posse das chaves existentes. Esse token JWT deve ser assinado usando a chave privada de um dos certificados válidos existentes do servicePrincipal. O token deve conter os seguintes argumentos:
  • aud – A audiência deve ser 00000002-0000-0000-c000-000000000000.
  • iss - O emissor precisa ser a id do servicePrincipal que está fazendo a chamada.
  • nbf – Não antes da hora.
  • exp – O tempo de expiração deve ser "nbf" + 10 min.

Aqui está um exemplo de código que pode ser usado para gerar essa prova de token de posse.

Resposta

Se tiver êxito, este método retornará um 200 OK código de resposta e um novo objeto keyCredential no corpo da resposta.

Exemplos

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

Solicitação

Este é um exemplo de 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

Este é um exemplo de 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 à chave

Solicitação

Este é um exemplo de 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

Este é um exemplo de resposta.

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.keyCredential"
}