Partilhar via


servicePrincipal: addKey

Namespace: microsoft.graph

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

Observação

Criar serviçosPrincipal e Atualizar Operaçõesprincipal podem continuar a ser usadas para adicionar e atualizar credenciais de chave para qualquer serviçoPrincipal com ou sem o contexto de um usuário.

Como parte da validação da 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 o serviçoPrincipal pode ser usado para executar uma atualização.

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.OwnedBy Application.ReadWrite.All, Directory.ReadWrite.All

Solicitação HTTP

Você pode abordar a entidade de serviço usando sua id ou appId. Id e appId são chamados de ID de Objeto e ID do Aplicativo (Cliente), respectivamente, em registros de aplicativo 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 da solicitação, forneça as seguintes propriedades necessárias.

Propriedade Tipo Descrição
keyCredential keyCredential A nova credencial de chave servicePrincipal a ser adicionada. 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. Defina-o como caso null contrário.
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 serviçoPrincipal. O token deve conter os seguintes argumentos:
  • aud: O público precisa ser 00000002-0000-0000-c000-000000000000.
  • iss: o emissor precisa ser a ID do servicePrincipal 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 obter etapas para gerar essa prova de token de posse, consulte Gerando a prova de tokens de posse para chaves de rolamento.

Resposta

Se for bem-sucedido, esse método retornará 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 serviçoPrincipal

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 senha 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"
}