servicePrincipal : addKey

Espace de noms: microsoft.graph

Ajoute des informations d’identification de clé à un servicePrincipal. Cette méthode, ainsi que removeKey , peut être utilisée par un servicePrincipal pour automatiser le déploiement de ses clés arrivant à expiration.

Remarque

Les opérations Create servicePrincipal et Update servicePrincipal peuvent continuer à être utilisées pour ajouter et mettre à jour les informations d’identification de clé pour n’importe quel servicePrincipal avec ou sans contexte d’utilisateur.

Dans le cadre de la validation de la demande pour cette méthode, une preuve de possession d’une clé existante est vérifiée avant que l’action puisse être effectuée.

Les ServicePrincipals qui n’ont aucun certificat valide existant (c’est-à-dire qu’aucun certificat n’a encore été ajouté ou que tous les certificats ont expiré), ne pourront pas utiliser cette action de service. Update servicePrincipal peut être utilisé pour effectuer une mise à jour à la place.

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) Application.ReadWrite.All Directory.ReadWrite.All
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application Application.ReadWrite.OwnedBy Application.ReadWrite.OwnedBy, Application.ReadWrite.All, Directory.ReadWrite.All

Requête HTTP

Vous pouvez adresser le principal de service à l’aide de son id ou de son appId. id et appId sont respectivement appelés ID d’objet et ID d’application (client) dans les inscriptions d’applications dans le centre d'administration Microsoft Entra.

POST /serviceprincipals/{id}/addKey
POST /servicePrincipals(appId='{appId}')/addKey

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.
Content-Type application/json. Obligatoire.

Corps de la demande

Dans le corps de la demande, fournissez les propriétés requises suivantes.

Propriété Type Description
keyCredential keyCredential Nouvelles informations d’identification de clé servicePrincipal à ajouter. Le type, l’utilisation et la clé sont des propriétés requises pour cette utilisation. Les types de clés pris en charge sont les suivants :
  • AsymmetricX509Cert: l’utilisation doit être Verify.
  • X509CertAndPassword: l’utilisation doit être Sign
passwordCredential passwordCredential Seul secretText doit être défini, qui doit contenir le mot de passe de la clé. Cette propriété est requise uniquement pour les clés de type X509CertAndPassword. Définissez-le sur null dans le cas contraire.
Preuve Chaîne Jeton JWT auto-signé utilisé comme preuve de possession des clés existantes. Ce jeton JWT doit être signé avec une clé privée qui correspond à l’un des certificats valides existants associés au servicePrincipal. Le jeton doit contenir les revendications suivantes :
  • aud : l’audience doit être 00000002-0000-0000-c000-000000000000.
  • iss : l’émetteur doit être l’ID du servicePrincipal qui lance la demande.
  • nbf : Pas avant l’heure.
  • exp : l’heure d’expiration doit être la valeur nbf + 10 minutes.

Pour connaître les étapes de génération de ce jeton de preuve de possession, consultez Génération de jetons de preuve de possession pour les clés propagées.

Réponse

Si elle réussit, cette méthode renvoie un 200 OK code de réponse et un nouvel objet keyCredential dans le corps de la réponse.

Exemples

Exemple 1 : Ajout d’une nouvelle clé d’informations d’identification à un servicePrincipal

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

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

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

Exemple 2 : Ajout d’informations d’identification de clé et d’un mot de passe associé pour la clé

Demande

L’exemple suivant illustre une demande.

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

Réponse

L’exemple suivant illustre la réponse.

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

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